0

私は XML 文書の作成と検証の基本事項についてはまったくの初心者です。そのため、些細な質問をしていることを願っています。

ドキュメントで説明されているトピックとサブトピックの階層があります。

<topics>
  <topic> <name>First Topic</name>
     <subtopic> <name> Subtopic 1 </name> </subtopic>
     <subtopic> <name> Subtopic 2 </name> </subtopic>
  </topic>
  <topic> <name>Second Topic</name>
     <subtopic> <name> Subtopic 3 </name> </subtopic>
     <subtopic> <name> Subtopic 4 </name> </subtopic>
  </topic>
</topics>

そして、トピックとサブトピックを含む別のドキュメント:

<mydoc>
   <topic>First Topic</topic>
   <subtopic>Subtopic 1</subtopic>
   ... rest of the doc ...
</mydoc>

有効なトピック/サブトピックの組み合わせのみが含まれ、簡単に検証されていることを確認したい. これを行うためのアプローチがどうあるべきかわかりません。

私は最初、可能な組み合わせを概説するためにスキーマで複雑な型を定義できると考えましたが、最初のいくつかはトートロジーをもたらし、完全には理解できませんでした。

私が考えた 2 番目の考えは、上で示したとおりです。トピック/サブトピックを別のドキュメントに入れ、おそらく各サブトピックに一意の 'id' 属性を与えます。次に、代わりに次のようなものを使用できます。

<mydoc subtopic_id="st4"> ... </mydoc>

おそらく、mydoc にはドキュメント内に存在する subtopic_id のみが含まれていることを検証できます。しかし、私はそれを検証する方法を理解するために頭を悩ませてきました。そして、これは、作成者が覚えておく必要がある ID キーを作成する必要があったことを意味します。

では、標準的なアプローチは何ですか?

理想的には、oxygenXML などの XML エディターを使用して、(スキーマから生成された) を作成し、有効なトピック/サブトピックの組み合わせのみを入力できるようにエディターを支援してもらいたいと考えています。

これは可能ですか?

私はしばらくこれについて頭を悩ませてきましたが、もし何か知恵の言葉があれば、非常に感謝しています。

4

2 に答える 2

1

XML スキーマは、ドキュメント間の関係を検証するようには設計されていません。1 つのアプローチは、単一のスーパー ドキュメントを構築し、それに XSD 検証を適用することです。ただし、検証前の前処理に依存するすべてのアプローチは、ドキュメントが無効な場合に適切な診断を行うことが困難です。したがって、カスタム XSLT スタイルシートを使用して検証を行うことをお勧めします。

このような検証をオーサリング ツールに統合することは、難しいと言えます。

于 2013-04-25T22:57:03.067 に答える