XSD-与えられた属性を持つ特定の要素の存在をどのように確認できますか?

StackOverflow https://stackoverflow.com/questions/283616

  •  08-07-2019
  •  | 
  •  

質問

jdpl プロセスに追加の検証を追加しようとしていますXSDを使用した-definitionファイル。

追加したいルールがいくつかあります。しかし、私に問題を引き起こしているのは、「ノード」が1つ存在する必要があることです。 " name"を持つ要素属性="問題"。

これは有効です:

<process-definition name='sample'>
    <node name="Problem">
    </node>
    <node name="Do Work">
    </node>
</process-definition>

これはそうではありません

<process-definition name='sample'>
    <node name="Do Work">
    </node>
</process-definition>

つまり、要約すると、施行する必要があるルールは次のとおりです

  • 値が&quot; Problem&quot;のノード属性
  • name =&quot; Problem&quot;を持つ1つのノードの存在
  • 他の名前を持つ任意の数のノードを許可する

アイデアはありますか?

役に立ちましたか?

解決

XSDでは不可能です。

パフォーマンス上の理由により、XML-Schemaは、現在のノードを先読みしたり、先読みしたりしないように設計されています。つまり、スキーマツリー内のバリデーターが存在する場所で常に定義する必要があります。そのため、このような要件をXSDで定義することは不可能です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top