1

リビジョン番号を持つスキーマ定義を開発しています。要素とグループを特定のリビジョンに対してのみ有効であるとマークすることは可能ですか?

4

1 に答える 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 に答える