次のようなものを含む XML 構造があります。
<goal id="doStuff" .. />
<score goal="doStuff" value="true" points="10" />
うまく機能します...入力がより複雑になるまで: スコアは複数の目標に依存できるようになりました。私たちは次のことを考慮しました:
<goal id="doStuff" .. />
<goal id="doOtherStuff" .. />
<goal id="dontDoThis" .. />
<score goal1="doStuff" value1="true" points="10" />
<score goal1="doOtherStuff" value1="true" goal2="dontDoThis" value2="false" points="20" />
しかし、スコアが依存できるゴール数に制限はないため、ある時点でこの形式が壊れる可能性があります。最終的に、次のようになりました。
<goal id="doStuff" .. />
<goal id="doOtherStuff" .. />
<goal id="dontDoThis" .. />
<score doStuff="true" points="10" />
<score doOtherStuff="true" dontDoThis="false" points="20" />
これはアプリケーション自体では機能しますが、これを適切に検証するための XML スキーマの記述方法を理解できませんでした。別の要素によって定義された要素に有効な名前を付けることができないようです (XML スキーマ仕様のパート 0 しか読んでいないことを認めなければなりません。パート 1 とパート 2 で Ctrl+F を 2 回だけ使用しました)。
スコアは、私の制御の及ばないルールに従って計算する必要があります。たとえば、目標の定義方法を変更することは選択肢ではありません。私が持っている唯一の柔軟性は、XML の構造です。XMLスキーマで検証できるように、指定された構造をXMLにエンコードする方法を誰かが提案できますか?