[英]Defining complex type in XSD
試圖定義一個也可以具有屬性的復雜元素。 XML看起來像
<dummy id="asdsa">
<Item>
</Item>
<Item>
</Item>
<dummy>
我做:
<schema xmlns="http://www.w3.org/2001/XMLSchema">
<element name="dummy">
<complexType>
<attribute name="id"/>
<sequence>
<element name="Item" minOccurs="0" maxOccurs="unbounded">
</element>
</sequence>
</complexType>
</element>
</schema>
更新:如果我將屬性放在序列后面,則它會起作用。 如果有人可以給我答案,為什么,我給他們答復的問號:
<schema xmlns="http://www.w3.org/2001/XMLSchema">
<element name="dummy">
<complexType>
<sequence>
<element name="Item" minOccurs="0" maxOccurs="unbounded">
</element>
</sequence>
<attribute name="id"/>
</complexType>
</element>
</schema>
嘗試這樣的事情:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:element name="numero_etiqueta">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:minLength value="13"/>
<xs:maxLength value="13"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="codigo_objeto_cliente">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="20"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="objeto_postal">
<xs:complexType>
<xs:sequence>
<xs:element ref="numero_etiqueta"/>
<xs:element ref="codigo_objeto_cliente"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
如您所知,對於復雜類型聲明, xs:attribute
聲明必須在模型組的聲明之后。 原因很簡單,這就是XML Schema語法所需要的。 模式(s4s)元模式的模式相關摘錄為
<xs:group name="complexTypeModel">
<xs:choice>
<xs:element ref="xs:simpleContent"/>
<xs:element ref="xs:complexContent"/>
<xs:sequence>
<xs:group ref="xs:typeDefParticle" minOccurs="0"/>
<xs:group ref="xs:attrDecls"/>
</xs:sequence>
</xs:choice>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.