我正在尝试为以下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>
但它返回errror:
元素 '{http://www.w3.org/2001/XMLSchema}元素':内容无效。 预期是(注释?,((simpleType | complexType)?,(唯一|键 | keyref)*))
id属性是用户的id。 知道如何解决这个问题吗?
答案 0 :(得分:1)
以下是如何使用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
元素的内容模型有关。)