1. ホーム
  2. Web制作
  3. XML/XSLT

XMLコードライティングのコーディングとバリデーションの簡単な紹介

2022-01-15 17:28:10

エンコーディング

エンコーディングは、Unicode文字を同等のバイナリ表現に変換するプロセスです。XMLプロセッサがXML文書を読むとき、エンコーディングのタイプに依存して文書をエンコードします。したがって、XML宣言の中でエンコーディングの種類を指定する必要があります。

エンコーディングの種類
エンコードには大きく分けて2種類あります。

UTF-8
UTF-16
UTFはUCSの変換形式を表し、それ自体がUniversal Character Setを意味する。8または16という数字は、文字をレンダリングするためのビット数を示します。8(1バイト)または16(2バイト)である。エンコーディング情報のない文書では、デフォルトでUTF-8が使用されます。

構文
エンコーディング情報は、XML文書のプリアンブルに記載される。UTF-8エンコーディングの構文は以下のとおりである。

XML/HTMLコード 内容をクリップボードにコピーする
  1. <? xml バージョン = "1.0"。 エンコーディング = "UTF-8"。 <スパン スタンドアロン = <スパン "no"。 ? >

UTF-16エンコーディングの構文は以下のとおりです。

XML/HTMLコード 内容をクリップボードにコピーする
  1. <? xml バージョン = "1.0"。 エンコーディング = "UTF-16"。 <スパン スタンドアロン = <スパン "no"。 ? >

次の例は、コーディング宣言を示しています。

XML/HTMLコード 内容をクリップボードにコピーする
  1. <? xml バージョン = "1.0"。 エンコーディング = "UTF-8"。 <スパン スタンドアロン = <スパン "no"。 ? >
  2. <スパン <スパン <

    コンタクトインフォ >
  3. <スパン <スパン <

    名称 > タンメイ・パティル </ 名称 >
  4. <スパン <スパン <

    会社 > チュートリアルポイント </ 会社 >
  5. <スパン <スパン <

    電話 > (011) 123-4567 <スパン </ 電話 >
  6. <スパン <スパン </ コンタクトインフォ >

上記のencoding="UTF-8"の例では、8ビット表現が指定されています。16を表現に使うには、UTF-16エンコーディングを使用します。

UTF-8でエンコードされたXMLファイルは、UTF-16形式のファイルよりサイズが小さくなります。

バリデーション

バリデーションは、XML文書を検証するプロセスである。文書は,その内容が要素,属性及び関連する文書型定義(DTD)に一致し,かつ,bで表される制約に適合する場合に有効とみなされる。 XMLパーサを通じて検証を処理する方法には,2つの方法がある。それらは

整形されたXML文書
有効なXML文書
整形されたXML文書
XML文書は、以下の規則に従っている場合、整形式とみなされます。

DTDを持たないXML文書では、amp(&)、apos(シングルクォート)、g(>)、quot(ダブルクォート)の処理に定義済み文字エンティティを使用しなければなりません。
タグの順序に従わなければならない。例えば、内部タグは外部タグが閉じられる前に閉じられなければならない。
各開始タグは終了タグを持つか、自己閉鎖タグ(<title>... </title> または <title />)でなければなりません。
開始タグの属性は1つだけで、引用符で囲む必要があります。
amp(&)以外のapos(シングルクォート)、g(>)、quot(ダブルクォート)エンティティは使用前に宣言する必要があります。

以下は、整形式のXML文書の例である。

XML/HTMLコード 内容をクリップボードにコピーする
  1. <? xml バージョン = "1.0"。 エンコーディング = "UTF-8"。 <スパン スタンドアロン = <スパン "はい"。 ? >
  2. <!DOCTYPE アドレス   
  3. [   
  4. <スパン <!ELEMENT アドレス (名前,会社,電話) >
  5.     <!ELEMENT name (#PCDATA) >
  6.     <!ELEMENT 会社 (#PCDATA) >
  7.     <!ELEMENT phone (#PCDATA) >
  8. ] >
  9. <スパン <スパン <

    アドレス >
  10. <スパン <スパン <

    名称 > タンメイ・パティル </ 名称 >
  11. <スパン <スパン <

    会社 > チュートリアルポイント </ 会社 >
  12. <スパン <スパン <

    電話 > (011) 123-4567 <スパン </ 電話 >
  13. <スパン <スパン </ アドレス >

上記の例は、以下の理由で整形済みとみなされます。

ドキュメントタイプを定義しています。そして、ここでは、文書型は要素型である。
addressというルート要素を含む。
子要素のname、company、phoneは、それぞれ適切に閉じられた自明なタグである。
タグは正しい順序で並んでいます。