8

仕事で xsd スキーマ ファイルを頻繁に使用していますが、xsd スキーマ言語用の xsd スキーマ ファイルを作成することは可能でしょうか? これは、スキーマ言語を文書化するための明白な方法のように思えます。開発者が最初に試みることの 1 つになると思います。しかし、検索用語が明らかなそのようなファイルを見つけることができませんでした。それが不可能なら、なぜですか?可能であれば、誰かがそれを行ったことがありますか?また、そのようなファイルをダウンロードできる場所はありますか?

ノート:

  1. ウィキペディアは、「コンテンツと属性の宣言は属性または要素のコンテキストに依存できない」ため、xsd スキーマ言語は「100% 自己記述的ではない」ことを示唆しています。もしそうなら、そのようなコンテキストを必要とするために表現できない xsd の機能の例を提供できますか?

  2. この質問は純粋に学術的なものではありません。近い将来、xsd スキーマ ファイルを処理するプログラムを作成する必要があるかもしれませんが、(generateDS などのツールを使用して) xsd からソース コードを生成することは、簡単に開始できます。

4

2 に答える 2

5

XSD は「100% 自己記述的ではない」というウィキペディアの声明は、schema-for-schema-documents (S4SD) に準拠するすべてのドキュメントが有効なスキーマを生成できるわけではないという意味で正しいです。この理由の 1 つは、XSD で表現できない制約があることです (たとえば、xpath 属性のコンテンツは構文的に有効な XPath 式でなければならないなど)。もう 1 つは、XSD は 1 つのドキュメントに対する制約しか表現できないのに対し、スキーマが有効であるためには、複数のドキュメントに適用される一貫性の制約があります。

S4SD が XSD 1.1 の機能を最大限に活用した場合、すべての「XML 表現」ルールを 100% に近づけることができます。私はこれを試みたいと思っていましたが、実現することはありませんでした。まだいくつかのギャップがあるでしょう。

スキーマ ドキュメントを処理するソフトウェアを作成する計画は、慎重に検討する必要があります。未加工のスキーマ ドキュメントから情報を抽出するのは簡単ではありません。これは、スキーマの作成者が同じことを表現する方法が非常に多いためです。もう 1 つの方法は、スキーマ プロセッサが生の入力ドキュメントから作成する「スキーマ コンポーネント」(要素宣言や型定義など) へのアクセスを提供する API を使用することです。いくつかのスキーマ プロセッサは、このような API を提供しています。Saxon-EE は、SCM と呼ばれる XML 表現でスキーマ コンポーネントを提供します。これは、生の XSD ドキュメントよりも処理がはるかに簡単です。

于 2013-07-19T08:21:38.957 に答える