![](/img/trans.png)
[英]How to define XML element in xsd schema to make all child elements to have same attribute value?
[英]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.