簡體   English   中英

XSD:使用屬性和其他子元素定義復雜元素

[英]XSD: define complex element with attribute and other child elements

我想定義一個這樣的元素:

<A id='1'>
  <name>jack</name>
</A>

有了這個,我可以定義元素A的屬性id

<xs:complexType name="A">
    <xs:simpleContent>
      <xs:extension base="xs:string">
        <xs:attribute type="xs:int" name="id"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

實際上它不正確,上面的XSD定義了一個元素<A id="1">hi</A> 我不知道如何丟棄<xs:extension>元素的基本屬性。

使用下面的XSD,我可以定義內部元素<name>

<xs:element name = "A">
    <xs:complexType>
        <xs:sequence>

            <xs:element name = "name" type="xs:string"/>

        </xs:sequence>
    </xs:complexType>
</xs:element>

我可以將這兩個結合起來,如下所示嗎? 我無法正確理解語法。

    <xs:element name = "A">
        <xs:complexType>
            <xs:sequence>
                <xs:element name = "name" type="xs:string"/>                       
            </xs:sequence>
        </xs:complexType>
        <xs:simpleContent>
          <xs:extension>
            <xs:attribute type="xs:int" name="id"/>
          </xs:extension>
        </xs:simpleContent>
    </xs:element>

XML或規定的約束中沒有任何內容表示此處需要xs:extension

以下簡單的XSD,

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="A">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="name" type="xs:string"/>
      </xs:sequence>
      <xs:attribute name="id" type="xs:int"/>
    </xs:complexType>
  </xs:element>
</xs:schema>

將驗證您的XML,

<A id='1'>
  <name>jack</name>
</A>

按照要求。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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