第 4 章 XML 構文
概要:
1. XML 構文規則 2. 要素構文 3. コメント構文 4. CDATA 構文 5. ネームスペース構文 6. エンティティ構文 7. DTD 構文
これまでの 3 章を学習することで、XML とは何か、その実装原理、および関連用語についてはすでに理解できました。次に、XML の構文仕様を学習し、独自の XML ドキュメントを作成します。
1.XML構文規則
XML ドキュメントは HTML の元のコードに似ており、コンテンツを識別するためにタグも使用します。 XML ドキュメントを作成するときは、次の重要なルールに従う必要があります。
ルール 1: XML 宣言ステートメントが必要であることについては、前の章ですでに説明しました。宣言は XML ドキュメントの最初の文であり、その形式は次のとおりです。
<?xml version="1.0" スタンドアロン="はい/いいえ" エンコーディング="UTF-8"?>
宣言の目的は、このドキュメントが XML ドキュメントであることをブラウザまたは他の処理プログラムに伝えることです。宣言ステートメントのバージョンは、ドキュメントが準拠する XML 仕様のバージョンを示します。スタンドアロンは、ドキュメントに DTD ファイルが付属するかどうかを示します。付属する場合、パラメータは、ドキュメントで使用される言語エンコーディングを示します。デフォルトはUTF-8です。
ルール 2: DTD ファイルが存在するかどうか。ドキュメントが「有効な XML ドキュメント」(前の章を参照) の場合、ドキュメントは対応する DTD ファイルを持ち、DTD ファイルによって設定された仕様に厳密に準拠している必要があります。 DTD ファイルの宣言ステートメントは、次の形式の XML 宣言ステートメントの後に続きます。
<!DOCTYPE ドキュメントの種類 SYSTEM/PUBLIC "dtd-name">
で:
「!DOCTYPE」は、DOCTYPE を定義することを意味します。
「type-of-doc」はユーザーが定義したドキュメント タイプの名前で、通常は DTD ファイル名と同じです。
2 つのパラメータ「SYSTEM/PUBLIC」のうち 1 つだけを使用します。 SYSTEM はドキュメントで使用されるプライベート DTD ファイルの URL を指し、PUBLIC はドキュメントで使用されるパブリック DTD ファイルの URL を指します。
「dtd-name」は、DTD ファイルの URL と名前です。すべての DTD ファイルには「.dtd」という接尾辞が付いています。
上記の例を引き続き使用しますが、次のように記述する必要があります。
<?xml version="1.0"standalone="no"encode="UTF-8"?>
<!DOCTYPE ファイルリスト システム "filelist.dtd">
ルール 3: 大文字と小文字の区別に注意する XML ドキュメントでは、大文字と小文字の違いがあります。 <P> と <p> は異なる識別子です。要素を記述するときは、前部と後部の識別子の大文字と小文字を同じにする必要があることに注意してください。例: <著者>ajie</author>。<著者>ajie</author> と書くのは間違いです。
すべて大文字にするか、すべて小文字にするか、最初の文字を大文字にするかのいずれかを習慣づけたほうがよいでしょう。これにより、大文字と小文字の不一致によって引き起こされる文書化エラーが減少します。
ルール 4: 属性値に引用符を追加する HTML コードでは、属性値を引用符で囲むことも、引用符で囲むこともできません。たとえば、<font color=red>word</font> と <font color="red">word</font> は両方ともブラウザで正しく解釈できます。
ただし、XMLではすべての属性値を引用符(一重引用符でも二重引用符でも可)で囲むことが規定されており、そうでないとエラーとみなされます。
ルール 5: すべてのタグには、対応する終了タグが必要です。HTML では、?lt;br> など、タグをペアで使用することはできません。 XML では、開始タグがある場合は、すべてのタグがペアで存在する必要があると規定されています。それ以外の場合はエラーとみなされます。
ルール 6: 空のタグはすべて閉じられている必要があります。空のタグは、タグのペアの間にコンテンツが含まれていないタグです。たとえば、<br>、<img>、その他のタグです。 XML では、すべてのタグに終了タグが必要と規定されており、このような空タグの場合、XML での処理方法は、元のタグの最後に / を追加するだけです。例えば:
<br> は <br /> と書く必要があります。
<META name="keywords" content="XML, SGML, HTML"> は、<META name="keywords" content="XML, SGML, HTML" /> として記述する必要があります。
<IMG src= "cool.gif"> は <IMG src= "cool.gif" /> として記述する必要があります。
第 4 章 XML 構文
2. 要素の構文
要素は、一対の識別子とその内容で構成されます。このように:アジエ。要素の名前と識別子の名前は同じです。アイデンティティは、属性を使用してさらに説明できます。
XML には予約語がないため、任意の単語を要素名として使用できます。ただし、次の規制も遵守する必要があります。
1. 名前には文字、数字、その他の文字を含めることができます。
2. 名前を数字または「_」(アンダースコア)で始めることはできません。
3. 名前を文字 xml (または XML または Xml ..) で始めることはできません。
4. 名前にスペースを含めることはできません。
5. 名前に「:」(コロン)を含めることはできません。
要素を読みやすく、理解し、操作しやすくするために、さらにいくつかの提案があります。
1. 名前には「.」を使用しないでください。多くのプログラミング言語では、「.」がオブジェクトの属性として使用されるためです (例: font.color)。同様の理由で、「-」を使用する必要がある場合は使用しないことをお勧めします。
2. 名前はできるだけ短くしてください。
3. 名前の大文字と小文字の区別には同じ基準を使用するようにしてください。
4. 名前には中国語などの英語以外の文字を使用できます。ただし、ソフトウェアによっては対応していない場合があります。 (IE5 は現在中国語要素をサポートしています。)
さらに、プロパティについて少し説明を追加します。 HTML では、属性を使用して要素の表示形式を定義できます。たとえば、<font color="red">word</font> は単語を赤色で表示します。 XML では、属性は単なる識別子の説明であり、要素の内容の表示とは何の関係もありません。たとえば、同じ文: <font color="red">単語</font> では、単語は赤色で表示されません。 (それで、ネットユーザーの中には「XML でテキストを赤色で表示するにはどうすればよいですか?」と尋ねる人もいます。これには CSS または XSL を使用する必要があります。これについては後で詳しく説明します。)
3. コメントの構文
コメントは、読みやすく理解するために XML ドキュメントに追加されるものであり、プログラムによって解釈されたり、ブラウザによって表示されたりすることはありません。
コメントの構文は次のとおりです。
<!-- ここにコメント情報があります -->
ご覧のとおり、HTML のコメント構文と同じであり、非常に簡単です。良いコメントの習慣を身につけると、ドキュメントの管理や共有が容易になり、よりプロフェッショナルな文書に見えるようになります。
4. CDATAの構文
CDATA の正式名は文字データであり、文字データとして変換されます。 XML ドキュメントを作成するとき、文字、数字、および「<」などのその他の記号自体を表示する必要がある場合があります。XML では、これらの文字にはすでに特別な意味があります。これには、CDATA 構文を使用する必要があります。構文形式は次のとおりです。
<![CDATA[ここに表示する文字を配置します]]>
例えば:
<![CDATA[<AUTHOR sex="女性">アジエ</AUTHOR>]]>
ページに表示されるコンテンツは「<AUTHOR sex="女性">ajie</AUTHOR>」となります。
第 4 章 XML 構文
5. 名前空間の構文
ネームスペースは名前空間と訳されます。名前空間は何をするのでしょうか? XML ドキュメント内で他人の DTD ファイルや複数の DTD ファイルを使用すると、このような矛盾が生じます。XML 内の識別子は自分で作成したものであるため、異なる DTD ファイルでは、識別子名は同じであっても意味が異なる場合があります。データの混乱を引き起こします。
たとえば、ドキュメント <table>wood table</table> では、<table> はテーブルを表します。
別のドキュメント <table>namelist</table> では、<table> はテーブルを表します。両方のドキュメントを同時に作業する必要がある場合、名前の競合が発生します。
この問題を解決するために、名前空間の概念を導入しました。ネームスペースは、識別子名に URL を追加することで、同じ名前を持つこれらの識別子を区別します。
名前空間は XML ドキュメントの先頭でも宣言する必要があります。宣言の構文は次のとおりです。
<ドキュメントxmlns:あなたの名前='URL'>
ここで、yourname はユーザーが定義した名前空間の名前、URL は名前空間の URL です。
上記の「table <table>」ドキュメントが http://www.zhuozi.com からのものであると仮定すると、次のように宣言できます。
<ドキュメント xmlns:zhuozi='http://www.zhuozi.com'>
次に、定義された名前空間を後続のタグで使用します。
<zhuozi:table>木製テーブル</table>
これにより 2 つの <table> が区別されます。注: URL を設定するということは、このロゴをその URL から読み取る必要があるという意味ではなく、区別するための記号に過ぎません。
6. エンティティの構文
エンティティは「実体」と訳されます。その機能は Word の「マクロ」に似ており、DW のテンプレートとしても理解できます。エンティティを事前定義して 1 つのドキュメント内で複数回呼び出すことも、複数のドキュメントで同じエンティティを呼び出すこともできます。
エンティティには文字、テキストなどを含めることができます。エンティティを使用する利点は次のとおりです。 1. ドキュメント内の複数の同一部分を 1 回入力するだけで済みます。 2. メンテナンス効率が向上します。たとえば、すべてに著作権エンティティが含まれる 40 個のドキュメントがある場合、この著作権を変更する必要がある場合、すべてのファイルを変更する必要はなく、最初に定義されたエンティティ ステートメントを変更するだけで済みます。
XML は 2 種類のエンティティを定義します。 1 つはここで説明している XML ドキュメントで使用される通常のエンティティで、もう 1 つは DTD ファイルで使用されるパラメータ エンティティです。
エンティティの定義構文は次のとおりです。
<!DOCTYPE ファイル名 [
<!ENTITY エンティティ名 "エンティティコンテンツ"
】
>
たとえば、著作権情報を定義したいとします。
<!DOCTYPE 著作権 [
<!ENTITY copyright "Copyright 2001, Ajie.All Rights Reserved"
】
>
自分の著作権情報コンテンツを XML ファイルで他のユーザーと共有する場合は、外部呼び出しメソッドを使用することもできます。構文は次のとおりです。
<!DOCTYPE 著作権 [
<!ENTITY copyright SYSTEM "http://www.sample.com/copyright.xml">
】
>
ドキュメント内で定義されたエンティティの参照構文は次のとおりです。 &entity-name;
例えば、上で定義した著作権情報は、?copyright; と記述されます。
完全な例は次のとおりです。これをコピーして copyright.xml として保存すると、例を表示できます。
<?xml バージョン="1.0" エンコーディング="GB2312"?>
<!DOCTYPE 著作権 [
<!ENTITY copyright "Copyright 2001, Ajie.All Rights Reserved">
]>
<マイファイル>
<title>XML</title>
<著者>アジエ</著者>
<電子メール>[email protected]</電子メール>
<日付>20010115</日付>
©権利;
</myfile>
第 4 章 XML 構文
7. DTD 構文
DTDは「有効なXML文書」に必要なファイルであり、文書内の要素や識別子の規則や相互関係を定義するために使用されます。 DTD ファイルを作成するにはどうすればよいですか?一緒に学びましょう:
1. 要素を設定する
要素は、XML ドキュメントの基本的な構成要素です。 DTD で要素を定義し、それを XML ドキュメントで使用する必要があります。要素の定義構文は次のとおりです: <!ELEMENT DESCRIPTION (#PCDATA, DEFINITION)*>
例証します:
「<!ELEMENT」は要素の宣言であり、定義したいものが要素であることを示します。
ステートメントの後の「DESCRIPTION」は要素の名前です。
「(#PCDATA, DEFINITION)*>」がこの要素の使用規則です。ルールは、要素に何を含めることができるか、および要素がどのように相互に関連するかを定義します。次の表は、要素の規則の概要を示しています。
2. 要素ルールテーブル: