2011-09-09 22 views
1

特定の複合型の値を特定の列挙型の異なる名前空間から検証するXSDを作成する必要があります。この特定のケースで子参照要素のXSD検証値

XMLは次のようになります。それはすべての値がGCOとして検証requiremementがある

  <Format> 
       <name> 
        <gco:CharacterString>IMG</gco:CharacterString> 
       </name> 
       <version> 
        <gco:CharacterString>Version 1.0</gco:CharacterString> 
       </version> 
      </Format> 

:文字列:(これは本当に簡単XSで別々の名前空間から参照した文字列他の名前空間に入力しますが、参照する必要があります)。子ノードをの文字列:

は、私は彼らのGCO内部の値の特定の列挙に検証するバージョンを必要としています。の文字列:

名: IMG GEO NIT

バージョン: バージョン1.0 バージョン2.0 バージョン3.0

私は、次の列挙が存在し、 GCOのために有効であることを検証する。この場合

参照番号に列挙を追加するgco:Characterstringは、両方とも固有である必要があるため、オプションではありません。バージョンの名前はです。これをXSDに設定することは可能ですか?

答えて

1

XMLスキーマ1.0には含まれていません。 XMLスキーマ1.1で

- のようなもの:それはXSD 1.0にはできません

<assert test="(name/gco:CharacterString eq 'IMG) 
       and (version/gco:CharacterString eq 'Version 1.0')"/> 
0

。ある名前空間が別の名前空間をインポートする場合、第2の名前空間の要素の規則は、要素のどこに依存するのではないというXSDの組み込み仮説が存在します。名前空間を「適切に」使用しないことをお勧めします。

+0

お客様はXML仕様を提供しており、変更することはできません。私はまだ有効なエントリのXMLを検証することができるXSDの方法を探しています。 – Eric