我试图将可选的元素放置在simpleType元素中,因此我将其更改为complexType。现在我有了complexType在complexType中,验证器说它是错误的,我如何修复它?
<glowne_role>
<aktor>William H. Macy</aktor>
<aktor>
Frances McDormand
<komentarz>Prywatnie aktorka jest żoną reżysera.</komentarz>
</aktor>
</glowne_role>
<xs:element name="komentarz" type="xs:string" />
<xs:complexType name="glowne_role">
<xs:complexType name="aktor" minOccurs="1" maxOccurs="3" type="xs:string">
<xs:element ref="komentarz" minOccurs="0"/>
</xs:complexType>
</xs:complexType>发布于 2016-11-27 01:15:52
您可以在xs:complexType中使用xs:complexType,但不能直接使用。基于您的XML,您希望定义一个元素,glowne_role,它是由一个aktor元素序列组成的复杂类型,然后每个元素也可以是复杂类型的。注意,为了允许文本出现在komentarz之前或后面,您可以在父xs:complexType上设置mixed="true"。
总之,这个XSD将成功地验证您的XML:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="komentarz" type="xs:string"/>
<xs:element name="glowne_role">
<xs:complexType>
<xs:sequence>
<xs:element name="aktor" minOccurs="1" maxOccurs="3">
<xs:complexType mixed="true">
<xs:sequence>
<xs:element ref="komentarz" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>https://stackoverflow.com/questions/40824083
复制相似问题