1
我正在開發攜帶版本號的架構定義。是否有可能將元素和組標記爲僅對特定修訂有效?在同一個定義文件中有多個版本的xml架構
我正在開發攜帶版本號的架構定義。是否有可能將元素和組標記爲僅對特定修訂有效?在同一個定義文件中有多個版本的xml架構
不使用XSD,no。如果我想用共享結構的單一來源維護一個模式的多個版本,我會使用某種形式的識字編程系統,或者(更可能)爲此目的創造一種新的識字編程系統。
[幾個小時後...]
一個簡單的方法是在任何模式的構建將被列入僅適用於特定版本的自己的名字空間使用version
屬性; version
屬性的值將是空格分隔的版本標識符列表。例如:
<xs:schema targetNamespace="http://example.com/multiver"
xmlns:mv="http://example.com/multiver">
<xs:element name="e" mv:ver="1.0">
<!--* 1.0 version of element 'e' *-->
</xs:element>
<xs:element name="e" mv:ver="1.1">
<!--* 1.1 version of element 'e' *-->
</xs:element>
<xs:element name="f">
<!--* element 'f' is not version-dependent ... *-->
</xs:element>
...
</xs:schema>
它易於使用XSLT或XQuery提取不僅僅是那些攜帶適當的MV聲明:版本值。
如果版本數量超過5或10,這種簡單的方法可能會變得乏味,你可能會決定你想要某些東西讓你能夠說出「up through version 3.2」和「from version 3.3到版本4.34,包括「。 section 4.2.2 of XSD 1.1中描述的條件包含屬性說明了解決該問題的一種可能方式。