XSD: Error: Element 'attribute' is invalid, misplaced, or occurs too often
XSD: Error: Element 'attribute' is invalid, misplaced, or occurs too often
我的 XSD 文档出现以下错误:
Element 'attribute' is invalid, misplaced, or occurs too often.
我不知道为什么。
这是我的 XSD 文件:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="bookcollection">
<xs:complexType>
<xs:sequence>
<xs:element name="book" maxOccurs="unbounded">
<xs:complexType mixed="true">
<xs:sequence>
<xs:element name="name" type="xs:string"/>
<xs:element name="image" type="xs:anyURI"/>
<xs:element name="quantity" type="xs:string"/>
<xs:element name="price">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:decimal"/>
<xs:attribute name="currency" default="EUR"
maxOccurs="unbounded"/>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="EUR"/>
<xs:enumeration value="DOLLARS"/>
<xs:enumeration value="ISK"/>
</xs:restriction>
</xs:simpleType>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="shipping" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
要更正该错误,请将 xs:attribute
元素移动到 xs:extension
中,而不是像当前显示的那样移动到它之后。
将出现的下一个错误可以通过在 xs:attribute
内移动 xs:simpleType
来更正,而不是像当前出现的那样移动到它之后。
总而言之,以下 XSD 应用了两个更正并且没有进一步的错误:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="bookcollection">
<xs:complexType>
<xs:sequence>
<xs:element name="book" maxOccurs="unbounded">
<xs:complexType mixed="true">
<xs:sequence>
<xs:element name="name" type="xs:string"/>
<xs:element name="image" type="xs:anyURI"/>
<xs:element name="quantity" type="xs:string"/>
<xs:element name="price">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:decimal">
<xs:attribute name="currency" default="EUR">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="EUR"/>
<xs:enumeration value="DOLLARS"/>
<xs:enumeration value="ISK"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="shipping" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
最后一点,除非您真的想在 book
的子元素之间允许文本,否则请从其 xs:complexType
声明中删除 mixed="true"
。
我的 XSD 文档出现以下错误:
Element 'attribute' is invalid, misplaced, or occurs too often.
我不知道为什么。
这是我的 XSD 文件:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="bookcollection">
<xs:complexType>
<xs:sequence>
<xs:element name="book" maxOccurs="unbounded">
<xs:complexType mixed="true">
<xs:sequence>
<xs:element name="name" type="xs:string"/>
<xs:element name="image" type="xs:anyURI"/>
<xs:element name="quantity" type="xs:string"/>
<xs:element name="price">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:decimal"/>
<xs:attribute name="currency" default="EUR"
maxOccurs="unbounded"/>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="EUR"/>
<xs:enumeration value="DOLLARS"/>
<xs:enumeration value="ISK"/>
</xs:restriction>
</xs:simpleType>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="shipping" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
要更正该错误,请将 xs:attribute
元素移动到 xs:extension
中,而不是像当前显示的那样移动到它之后。
将出现的下一个错误可以通过在 xs:attribute
内移动 xs:simpleType
来更正,而不是像当前出现的那样移动到它之后。
总而言之,以下 XSD 应用了两个更正并且没有进一步的错误:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="bookcollection">
<xs:complexType>
<xs:sequence>
<xs:element name="book" maxOccurs="unbounded">
<xs:complexType mixed="true">
<xs:sequence>
<xs:element name="name" type="xs:string"/>
<xs:element name="image" type="xs:anyURI"/>
<xs:element name="quantity" type="xs:string"/>
<xs:element name="price">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:decimal">
<xs:attribute name="currency" default="EUR">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="EUR"/>
<xs:enumeration value="DOLLARS"/>
<xs:enumeration value="ISK"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="shipping" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
最后一点,除非您真的想在 book
的子元素之间允许文本,否则请从其 xs:complexType
声明中删除 mixed="true"
。