XML Schema anyAttribute 元素
定義和用法
anyAttribute 元素使創(chuàng)作者可以通過未被 schema 規(guī)定的屬性來擴展 XML 文檔。
元素信息
項目 | 說明 |
---|---|
出現(xiàn)次數(shù) | 無限制 |
父元素 | complexType、restriction (simpleContent)、extension (simpleContent)、restriction (complexContent)、extension (complexContent)、attributeGroup |
內(nèi)容 | annotation |
語法
<anyAttribute id=ID namespace=namespace processContents=lax|skip|strict any attributes > (annotation?) </anyAttribute>
(? 符號聲明該元素可在 anyAttribute 元素內(nèi)出現(xiàn)零次或一次。)
屬性
id
可選。規(guī)定該元素的唯一的 ID。
namespace
可選。規(guī)定包含可以使用的元素的命名空間。如果沒有指定命名空間,則 ##any 為默認值。如果指定命名空間,則必須是以下值之一。
- ##any - 來自任何命名空間的元素都可以出現(xiàn)(默認)。
- ##other - 來自該元素的父元素的目標命名空間之外的任何命名空間的元素都可以出現(xiàn)。
- ##local - 未由命名空間限定的元素可以出現(xiàn)。
- ##targetNamespace - 來自包含該元素的父元素的目標命名空間的元素可以出現(xiàn)。
- {URI references of namespaces, ##targetNamespace, ##local} 的列表 - 來自通過空格分隔的命名空間列表的元素可以出現(xiàn)。 該列表可以包含以下內(nèi)容: 命名空間 ##targetNamespace 和 ##local 的 URI 引用。
processContents
可選。一個指示符,指示應用程序或 XML 處理器應如何根據(jù)由該 any 元素指定的元素處理 XML 文檔的驗證。 如果沒有指定 processContents 屬性,則默認為 strict。 如果指定了 processContents,必須是以下值之一。
- strict - XML 處理器必須獲得所需命名空間的架構,并且必須驗證來自這些命名空間的所有元素。(默認)
- lax - 與 strict 相同;但是,即使不能獲取該架構,也不會發(fā)生任何錯誤。
- skip - XML 處理器不嘗試驗證來自指定命名空間的所有元素。
any attributes
可選。規(guī)定帶有 non-schema 命名空間的任何其他屬性。
實例
下面的例子展示了針對 "person" 元素的一個聲明。通過使用 <anyAttribute> 元素,創(chuàng)作者能夠向 "person" 元素添加任意數(shù)量的屬性:
<xs:element name="person"> <xs:complexType> <xs:sequence> <xs:element name="firstname" type="xs:string"/> <xs:element name="lastname" type="xs:string"/> </xs:sequence> <xs:anyAttribute/> </xs:complexType> </xs:element>