簡體   English   中英

在XSD中定義復雜類型

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM