我需要定义具有可选属性的元素序列的XSD。我还需要限制元素和属性的字符串长度。使用以下代码我似乎无法定义'限制':
<xs:element name="PeopleMentioned" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="Person" minOccurs="1" maxOccurs="unbounded">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="PersonTopic" type="xs:string" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
我需要限制“人物”的长度。和&#39; PersonTopic&#39;,就像通常用于简单类型一样:
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="18" />
</xs:restriction>
</xs:simpleType>
答案 0 :(得分:1)
要使用限制定义元素和属性,即Person
和PersonTopic
是最大长度为18的字符串:
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
version="1.0">
<xsd:element name="PeopleMentioned">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Person" minOccurs="1" maxOccurs="unbounded">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base="String18">
<xsd:attribute name="PersonTopic" type="String18"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:simpleType name="String18">
<xsd:restriction base="xsd:string">
<xsd:maxLength value="18" />
</xsd:restriction>
</xsd:simpleType>
</xsd:schema>