W3Cという標準化団体がホームページ作成時の『つくる為のお約束事』を整備してくれていますが、この一つがHTMLタグで実に様々なものがあり、要素やエレメントと呼ばれる事もあります。
XMLは「拡張可能なマークアップ言語」といわれるように、このタグを自分で定義作成する事ができます。
1.<【要素名】>【要素内容】</【要素名】>
2.開始タグから要素内容、そして終了タグまでの1全体を【要素】
3.<要素名>や</要素名>などをそれぞれ【タグ】
|
・要素/Element
・(要素)内容/(Element) Content
|
と言い、また、
例 <!ATTLIST xml:lang CDATA 'en' >
|
のように開始タグの中に記述する、この場合[ xml:lang ]が【属性名】、その属性に設定する、この場合['en']を【属性値】と言います。
また、XMLでは、DTDという文書タイプ(DOCTYPE/DOCUMENT TYPE)定義、名前空間、スキーマに沿ったタグを新たに作成する事ができ、新たなタグで作った要素開始タグと要素の終了タグの間に更にタグをネストする事ができます。
このネストされたタグは、その直前にあるタグを親要素として(例えばCDという親タグに囲まれたCDタイトルという要素やCDの値段という要素のように)親要素を構成する中身の要素として意味づけるタグを作成する事ができ、こうした要素を【子要素】と言います。
※CDATAはシステム定義文字列であり、この喩えの音楽CDとは関係ありません。
例 <【親要素名】>
<【子要素名】>【値】</【子要素名】>
</【親要素名】>
|
のように記述できますが、この時の子要素に囲まれた値もまた【(子)要素内容】です。
前述のようにXMLタグは自分で作る事ができます(拡張可能です)が、どこにも定義されていないタグを記述するとパーサー(ほとんどの場合ブラウザに組み込まれる機能)でエラーとなってしまいます。
XMLタグを利用する場合には、属性がある場合には、属性や必要であれば属性値の範囲についてDTD、名前空間、スキーマのいずれかで予め定義する必要があります。
尚、DTDではXML文書内に記述できる内部DTDと別ファイルとして定義する外部DTDがありますが、名前空間、スキーマは、定義だけをまとめた別ファイルとして作成します。
この点は、HTMLに馴れている方でJavaScriptやCSSを別ファイルで作成した事があったり、何らかのシステム開発でプログラミング言語を利用されたことがある方にとってはライブラリやクラスを作成するのと似たようなイメージと言えます。
ちなみにスタイルシート設定は、HTMLではCSSを利用しますが、XMLでは、CSS2含む以降やXSLやXSLTを利用します。