XMLコードライティングのコーディングとバリデーションの簡単な紹介
エンコーディング
エンコーディングは、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 バージョン = "1.0"。 エンコーディング = "UTF-8"。 <スパン スタンドアロン = <スパン "no"。 ? >
UTF-16エンコーディングの構文は以下のとおりです。
- <? xml バージョン = "1.0"。 エンコーディング = "UTF-16"。 <スパン スタンドアロン = <スパン "no"。 ? >
例
次の例は、コーディング宣言を示しています。
- <? xml バージョン = "1.0"。 エンコーディング = "UTF-8"。 <スパン スタンドアロン = <スパン "no"。 ? >
- <スパン <スパン < コンタクトインフォ >
- <スパン <スパン < 名称 > タンメイ・パティル </ 名称 >
- <スパン <スパン < 会社 > チュートリアルポイント </ 会社 >
- <スパン <スパン < 電話 > (011) 123-4567 <スパン </ 電話 >
- <スパン <スパン </ コンタクトインフォ >
上記の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 バージョン = "1.0"。 エンコーディング = "UTF-8"。 <スパン スタンドアロン = <スパン "はい"。 ? >
- <!DOCTYPE アドレス
- [
- <スパン <!ELEMENT アドレス (名前,会社,電話) >
- <!ELEMENT name (#PCDATA) >
- <!ELEMENT 会社 (#PCDATA) >
- <!ELEMENT phone (#PCDATA) >
- ] >
- <スパン <スパン < アドレス >
- <スパン <スパン < 名称 > タンメイ・パティル </ 名称 >
- <スパン <スパン < 会社 > チュートリアルポイント </ 会社 >
- <スパン <スパン < 電話 > (011) 123-4567 <スパン </ 電話 >
- <スパン <スパン </ アドレス >
上記の例は、以下の理由で整形済みとみなされます。
ドキュメントタイプを定義しています。そして、ここでは、文書型は要素型である。
addressというルート要素を含む。
子要素のname、company、phoneは、それぞれ適切に閉じられた自明なタグである。
タグは正しい順序で並んでいます。
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
ASP.NET 2.0でXMLページを表示できない。XSLスタイルシートを使用してXML入力を表示することはできません。
-
XML入門チュートリアル。XMの解析
-
WAPチュートリアル(8):WML変数 - XML/XSLT
-
WAPチュートリアル(11):WAPフォーラムとオープンモバイルアライアンス・フォーラム - XML/XSLT
-
初心者のためのXMLの基本を学ぶ(XMLの役割を認識する)
-
XML基本概念入門ラーニングガイド
-
XMLにおけるドキュメントと宣言の使い分けを解説
-
XML Resolution:XMLアプリケーションノート
-
XML義姉妹」テキスタイル:SOAP
-
Firefox 2.0のXML処理に関する改良点を数える