素朴な言葉で説明してください。
XML検証とは実際には何を意味するのでしょうか?
「XML データの検証」、「XML 文書の検証」、「XML スキーマの検証」は同じ意味ですか?
XSD ドキュメントは、XML ドキュメント/データ/スキーマの検証にどのように役立ちますか?
注: XML 検証に関する記事は多数あります。しかし、それらは複雑です。議論は専門用語を使用し、その結果、理解できません。
素朴な言葉で説明してください。
XML検証とは実際には何を意味するのでしょうか?
「XML データの検証」、「XML 文書の検証」、「XML スキーマの検証」は同じ意味ですか?
XSD ドキュメントは、XML ドキュメント/データ/スキーマの検証にどのように役立ちますか?
注: XML 検証に関する記事は多数あります。しかし、それらは複雑です。議論は専門用語を使用し、その結果、理解できません。
たぶん、この簡単な説明が役立ちます:
XML ドキュメントの「正確さ」にはさまざまなレベルがあります。
まず整形式です。タグが正しくネストされて閉じられている、命名規則が守られているなど、XML ファイル用に定められた構文規則に準拠している場合、文書は整形式です。
XML ドキュメントは、純粋に XML 標準に基づいて整形式かどうかをチェックできます。XML ドキュメントに含まれるデータとその構造について、何も知る必要はありません。
これが検証の出番です。
DTD (ドキュメント タイプ定義) または XSD は、特定のタイプの XML ドキュメントを構築する方法の規則を指定します。正しく処理されます。
たとえば、タグを ID フィールドとして定義した場合、その値は XML ファイルに 1 回しか存在しない場合があります。
これをプログラミング言語と比較してください。
Python では、次のようになりますSyntaxError
。
f("Hello) # not "well-formed"
以下は構文的には正しいですが、関数が正しく使用されていないために失敗します。
def f(a):
return a+1
f("Hello") # "well-formed" but invalid (TypeError)
スキーマは、「有効な」ドキュメントと「無効な」ドキュメントを区別する一連のルールです。特定のスキーマに対するドキュメントの検証は、ドキュメントがそのスキーマのルールを満たしているかどうかを判断するプロセスです。
簡単に言えば、スキーマ (XSD、RelaxNG などのドキュメント) は XML ドキュメントの文法を定義します。
プロセッサは、XML ファイルを解析し、スキーマで定義された文法に対して有効かどうかをチェックできる必要があります。
スキーマは通常、要素の階層、属性のクラス、および属性値のデータ型を (とりわけ) 指定します。
w3schools での紹介は非常に役立ちます。IMO: http://www.w3schools.com/schema/schema_intro.asp
ある時点でRelaxNGをチェックしたいかもしれませんが:http://relaxng.org/tutorial-20011203.html