我是XSD的新手,對於何時使用屬性以及何時使用元素,我感到很困惑。XSD:元素和屬性之間的區別
爲什麼不能我們指定屬性minOccurs和maxOccurs的?
另外,爲什麼我們不能在元素中指定use =「required」?
我是XSD的新手,對於何時使用屬性以及何時使用元素,我感到很困惑。XSD:元素和屬性之間的區別
爲什麼不能我們指定屬性minOccurs和maxOccurs的?
另外,爲什麼我們不能在元素中指定use =「required」?
元素是XML元素 - 一個開放的標籤,有些內容,關閉標籤 - 他們是你的XML文檔的基石:
<test>someValue</test>
在這裏,「測試」將是一個元素。
屬性是在標籤上的其他信息 - 這是一個「附加」或額外的元素上的信息,但絕不能單獨存在:
<test id="5">somevalue</test>
「ID」是一個屬性。
你不能有一個標籤相同名稱的多個屬性 - >的minOccurs/maxOccurs的是沒有意義的。你可以定義一個屬性的必要(或不),其他任何東西都沒有意義。
這些元素是由它們在複雜類型中的出現定義的 - 例如,如果你有一個複雜的類型與<xs:sequence>
內 - 您所定義的所有元素必須存在,並且必須在這個特定的順序:
<xs:complexType name="SomeType">
<xs:sequence>
<xs:element name="Element1" type="xs:string" />
<xs:element name="Element2" type="xs:string" />
</xs:sequence>
</xs:complexType>
該類型的元素在裏面,子元素「部件1」和「元素2」是必需的,必須按此順序出現 - 不需要「必需」或不需要(如使用屬性)。是否需要元素是由minOccurs和maxOccurs的使用定義的;默認情況下兩者都是= 1,例如,該元素必須發生,並且只能發生一次。通過調整這些設置,可以將元素定義爲可選(minOccurs = 0),或者允許它顯示多次(maxOccurs> 1)。
我強烈建議你檢查出W3Schools Tutorial on XML Schema和學習一些更多的XML模式。
馬克
<element myAttribute="value">
<subElement />
<subElement anotherAttribute="this is an attribute's value">Element value</subElement>
</element>
您不能在XML中擁有多個具有相同名稱的屬性,因此您無法對屬性使用minOccurs和maxOccurs。
你不需要使用=「需要」的元素,因爲你可以的minOccurs =「1」代替。
何時使用屬性以及何時使用元素是您的選擇。下面是一些指導原則:http://www.ibm.com/developerworks/xml/library/x-eleatt.html
實施例:XSD格式
<xs:complexType name="contactInformation">
<xs:all>
<xs:element name="firstName" type="xs:string" minOccurs="0"/>
<xs:element name="workCountryId" type="xs:long" minOccurs="0"/>
</xs:all>
<xs:attribute name="id" type="xs:long"/>
</xs:complexType>
XML格式
<contactInformation id=100>
<firstname>VELU</firstname>
<workCountryId>120</workCountryId>
</contactInformation>
attribute
是默認可選的。若要指定該屬性是必需的,請使用use
屬性:
<xs:attribute name="id" type="xs:long" use="required"/>
更多關於attributes和elements。
A complexType
元素是包含其他元素和/或屬性的XML元素。
all
元素指定子元素可以按任何順序出現,並且每個子元素可以出現零次或一次。
maxOccurs
可選。指定元素可以發生的最大次數。該值必須爲1.
minOccurs
可選。指定元素可以發生的最小次數。值可以是0或1.默認值是1
可能的[XML屬性vs XML元素]的副本(http://stackoverflow.com/questions/33746/xml-attribute-vs-xml-element) – kjhughes 2016-08-05 12:32:55