五月综合缴情婷婷六月,色94色欧美sute亚洲线路二,日韩制服国产精品一区,色噜噜一区二区三区,香港三级午夜理伦三级三

您現(xiàn)在的位置: 365建站網(wǎng) > 建站教程 > Schema 教程 > XSD 元素替換(Element Substitution)

XSD 元素替換(Element Substitution)

此節(jié)有 285 人學(xué)習(xí)過(guò)     參與評(píng)論

通過(guò) XML Schema,一個(gè)元素可對(duì)另一個(gè)元素進(jìn)行替換。

元素替換

讓我們舉例說(shuō)明:我們的用戶來(lái)自英國(guó)和挪威。我們希望有能力讓用戶選擇在 XML 文檔中使用挪威語(yǔ)的元素名稱還是英語(yǔ)的元素名稱。

為了解決這個(gè)問(wèn)題,我們可以在 XML schema 中定義一個(gè) substitutionGroup。首先,我們聲明主元素,然后我們會(huì)聲明次元素,這些次元素可聲明它們能夠替換主元素。

<xs:element name="name" type="xs:string"/>
<xs:element name="navn" substitutionGroup="name"/>

在上面的例子中,"name" 元素是主元素,而 "navn" 元素可替代 "name" 元素。

請(qǐng)看一個(gè) XML schema 的片段:

<xs:element name="name" type="xs:string"/>
<xs:element name="navn" substitutionGroup="name"/>

<xs:complexType name="custinfo">
  <xs:sequence>
    <xs:element ref="name"/>
  </xs:sequence>
</xs:complexType>

<xs:element name="customer" type="custinfo"/>
<xs:element name="kunde" substitutionGroup="customer"/>

有效的 XML 文檔類似這樣(根據(jù)上面的 schema):

<customer>
  <name>John Smith</name>
</customer>

或類似這樣:

<kunde>
  <navn>John Smith</navn>
</kunde>

阻止元素替換

為防止其他的元素替換某個(gè)指定的元素,請(qǐng)使用 block 屬性:

<xs:element name="name" type="xs:string" block="substitution"/>

請(qǐng)看某個(gè) XML schema 的片段:

<xs:element name="name" type="xs:string" block="substitution"/>
<xs:element name="navn" substitutionGroup="name"/>

<xs:complexType name="custinfo">
  <xs:sequence>
    <xs:element ref="name"/>
  </xs:sequence>
</xs:complexType>

<xs:element name="customer" type="custinfo" block="substitution"/>
<xs:element name="kunde" substitutionGroup="customer"/>

合法的 XML 文檔應(yīng)該類似這樣(根據(jù)上面的 schema):

<customer>
  <name>John Smith</name>
</customer>

但是下面的文檔不再合法:

<kunde>
  <navn>John Smith</navn>
</kunde>

使用 substitutionGroup

可替換元素的類型必須和主元素相同,或者從主元素衍生而來(lái)。假如可替換元素的類型與主元素的類型相同,那么您就不必規(guī)定可替換元素的類型了。

請(qǐng)注意,substitutionGroup 中的所有元素(主元素和可替換元素)必須被聲明為全局元素,否則就無(wú)法工作!

什么是全局元素(Global Elements)?

全局元素指 "schema" 元素的直接子元素!本地元素(Local elements)指嵌套在其他元素中的元素。

如對(duì)本文有疑問(wèn),請(qǐng)?zhí)峤坏浇涣髡搲?,廣大熱心網(wǎng)友會(huì)為你解答!! 點(diǎn)擊進(jìn)入論壇

您可能感興趣的文章:

發(fā)表評(píng)論 (285人查看0條評(píng)論)
請(qǐng)自覺(jué)遵守互聯(lián)網(wǎng)相關(guān)的政策法規(guī),嚴(yán)禁發(fā)布色情、暴力、反動(dòng)的言論。
昵稱:
最新評(píng)論
------分隔線----------------------------
Schema 教程目錄

其它欄目

· 建站教程
· 365學(xué)習(xí)

業(yè)務(wù)咨詢

· 技術(shù)支持
· 服務(wù)時(shí)間:9:00-18:00
365建站網(wǎng)二維碼

Powered by 365建站網(wǎng) RSS地圖 HTML地圖

copyright © 2013-2024 版權(quán)所有 鄂ICP備17013400號(hào)