Xml 使用限制定义元素和属性
我需要定义XSD,它具有带有可选属性的元素序列。我还需要限制元素和属性的字符串长度。使用以下代码,我似乎无法定义“限制”:Xml 使用限制定义元素和属性,xml,xsd,Xml,Xsd,我需要定义XSD,它具有带有可选属性的元素序列。我还需要限制元素和属性的字符串长度。使用以下代码,我似乎无法定义“限制”: <xs:element name="PeopleMentioned" minOccurs="0"> <xs:complexType> <xs:sequence> <xs:element name="Person" minOccurs="1" maxOccurs="unbounded">
<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>
我需要限制“Person”和“PersonTopic”的长度,就像通常对简单类型所做的那样:
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="18" />
</xs:restriction>
</xs:simpleType>
定义具有限制的元素和属性,即
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>
谢谢@kjhughes。我需要两个单独的长度,但根据你的回答,我定义了两个简单的类型(String18和String50)。我编辑了你的标题。请参阅“”,其中的共识是“不,他们不应该”。