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 元素和屬性新增自己的限制。這些限制稱為“約束”(facets)。您可以在下一章中閱讀有關約束的更多資訊。