如何允许具有字符串内容的元素上的属性?
How to allow an attribute on an element with string content?
我正在尝试为以下 XML 写一个 XSD:
<users>
<user id='u1'>A</user>
<user id='u2'>B</user>
<user id='u3'>C</user>
</users>
这是我目前的情况:
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="users">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="user" maxOccurs="unbounded" type="xsd:string">
<xsd:attribute name="id" type="xsd:string"/>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
但是 returns 错误:
Element
'{http://www.w3.org/2001/XMLSchema}element': The content is not valid.
Expected is (annotation?, ((simpleType | complexType)?, (unique | key
| keyref)*))
id属性是用户的id。
知道我该如何解决这个问题吗?
这里是如何使用 simpleContent
(xsd:string
) 和 XSD 中的属性定义元素:
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="users">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="user" maxOccurs="unbounded">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute name="id" type="xsd:string"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
(您的错误与 maxOccurs
不受限制无关。它与您的 user
元素的内容模型有关。)
我正在尝试为以下 XML 写一个 XSD:
<users>
<user id='u1'>A</user>
<user id='u2'>B</user>
<user id='u3'>C</user>
</users>
这是我目前的情况:
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="users">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="user" maxOccurs="unbounded" type="xsd:string">
<xsd:attribute name="id" type="xsd:string"/>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
但是 returns 错误:
Element '{http://www.w3.org/2001/XMLSchema}element': The content is not valid. Expected is (annotation?, ((simpleType | complexType)?, (unique | key | keyref)*))
id属性是用户的id。 知道我该如何解决这个问题吗?
这里是如何使用 simpleContent
(xsd:string
) 和 XSD 中的属性定义元素:
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="users">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="user" maxOccurs="unbounded">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute name="id" type="xsd:string"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
(您的错误与 maxOccurs
不受限制无关。它与您的 user
元素的内容模型有关。)