Xml

「有効なxml」と「整形式のxml」の間に違いはありますか?



Is There Any Difference Betweenvalid Xmlandwell Formed Xml



解決:

はい、違いがあります。

XML標準に準拠するXMLは整形式であると見なされ、DTDに準拠するxmlは有効であると見なされます。




整形式vs有効なXML

整形式 これは、テキストオブジェクトがXMLであるためのW3C要件を満たしていることを意味します。

有効 整形式のXMLは、指定されたスキーマによって指定された追加の要件を満たしていることを意味します。




公式の定義

XMLに関するW3C勧告によると:

[定義:データオブジェクトはXMLドキュメントである場合 整形式 、この仕様で定義されているとおり。さらに、XMLドキュメントは 有効 それが特定のさらなる制約を満たしている場合。]


観察:

  • 整形式でないドキュメントはXMLではありません。 (( 整形式のXML 一般的に使用されますが、技術的に冗長です。)
  • 有効であるということは、整形式であることを意味します。
  • 整形式であることは、有効であることを意味するものではありません。
  • XMLに関するW3C勧告では、有効性はDTDに反すると定義されていますが、従来の使用では、XSD、RELAX NG、Schematron、またはその他の方法で指定されたXMLスキーマへの準拠にこの用語を適用できます。

ドキュメントの原因の例...

整形式ではありません:



  • 要素に終了タグがありません(自己終了ではありません)。
  • 要素は適切なネストなしでオーバーラップします:
  • 属性値に、開始引用符と一致する終了引用符がありません。
  • < or &ではなくコンテンツで使用されている&ltまたは&。
  • 複数のルート要素が存在します。
  • 複数のXML宣言が存在するか、XML宣言がドキュメントの上部以外に表示されます。

無効

  • 要素または属性がありませんが、XMLスキーマに必要です。
  • 要素または属性が使用されていますが、XMLスキーマによって定義されていません。
  • 要素のコンテンツが、XMLスキーマで指定されたコンテンツと一致しません。
  • 属性の値が、XMLスキーマで指定されたタイプと一致しません。

名前空間-整形式

技術的には、XMLのコンポーネント名にコロン文字を使用できます。ただし、コロン したほうがいい 名前空間の目的でのみ名前に使用されます。

ノート:

XML推奨の名前空間[XMLNames]は、コロン文字を含む名前に意味を割り当てます。したがって、作成者は名前空間の目的を除いてXML名にコロンを使用しないでください。ただし、XMLプロセッサはコロンを名前文字として受け入れる必要があります。

したがって、別の用語、 名前空間-整形式 は、XML 1.0 W3C勧告の名前空間で定義されており、整形式性のためのすべてのXMLルールを暗示しています。 もっと 名前空間と名前空間プレフィックスを管理するもの。

口語的に、用語 整形式 よく使用されます 名前空間-整形式 より正確になります。ただし、これはマイナーな技術的方法であり、 整形式のXMLと有効なXML この回答で説明されています。


有効なXMLは、DTDに対する検証に成功するXMLです。

整形式のXMLは、すべてのタグが適切な順序で閉じられているXMLであり、宣言がある場合は、ファイル内で最初に適切な属性を使用します。

言い換えれば、妥当性はセマンティクスを指し、整形式性は構文を指します。

したがって、無効な整形式XMLを使用できます。