リビジョン番号を持つスキーマ定義を開発しています。要素とグループを特定のリビジョンに対してのみ有効であるとマークすることは可能ですか?
1 に答える
0
XSD を使用していません。共有コンストラクトの単一のソースを使用してスキーマの複数のバージョンを維持したい場合は、なんらかの形式のリテラシー プログラミング システムを使用するか、(少し可能性が高いですが) その目的のために新しい形式のリテラシー プログラミング システムを発明します。
【数時間後・・・】
簡単な方法の 1 つ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:ver 値を持つ宣言だけを抽出するのは簡単です。
バージョンの数が 5 つまたは 10 を超えると、この単純なアプローチは少し退屈になる可能性があり、「バージョン 3.2 まで」や「バージョン 3.3 からバージョン 4.34 まで」などのことを言うことができるものが必要になる場合があります。包括的」。XSD 1.1 のセクション 4.2.2 で説明されている条件付き包含属性は、この問題にアプローチする 1 つの可能な方法を示しています。
于 2013-04-03T16:32:27.167 に答える