XML Schema 教學課程login
XML Schema 教學課程
作者:php.cn  更新時間:2022-04-20 14:13:02

XML Schema 屬性


XSD 屬性


所有的屬性都是以簡易類型來宣告。


什麼是屬性?

簡易元素無法擁有屬性。假如某個元素擁有屬性,它就會被當作某種複合型別。但是屬性本身總是作為簡易類型被宣告的。


如何宣告屬性?

定義屬性的語法是

<xs:attribute name="xxx" type="yyy"/>

在此處,xxx 指屬性名稱,yyy 則規定屬性的資料型態。 XML Schema 擁有許多內建的資料型別。

最常用的型別是:

  • xs:string

  • xs:decimal

  • ##xs:integer

  • xs:boolean

  • #xs:date

  • xs :time

實例

這是帶有屬性的XML 元素:

<lastname lang="EN">Smith< ;/lastname>
這是對應的屬性定義:

#<xs:attribute name="lang" type="xs:string"/>


屬性的預設值和固定值

屬性可擁有指定的預設值或固定值。

當沒有其他的值被規定時,預設值就會自動指派給元素。

在下面的範例中,預設值是"EN":

<xs:attribute name="lang" type="xs:string" default="EN "/>
固定值同樣會自動指派給元素,且您無法規定另外的值。

在下面的範例中,固定值是"EN":

<xs:attribute name="lang" type="xs:string" fixed="EN" />


可選的和必要的屬性

在預設的情況下,屬性是可選的。如需規定屬性為必選,請使用"use" 屬性:

<xs:attribute name="lang" type="xs:string" use="required"/>


對內容的限定

當XML 元素或屬性擁有被定義的資料類型時,就會在元素或屬性的內容中新增限定。

假如 XML 元素的類型是 "xs:date",而其包含的內容是類似 "Hello World" 的字串,元素將不會(通過)驗證。

透過 XML schema,您也可為您的 XML 元素及屬性新增自己的限定。這些限定稱為 facet(編者註:意為(多面體的)面,可譯為限定面)。您將在下一節中了解更多有關 facet 的知識。

#