== XML概要 ==
XMLはeXtensible Markup Languageの略です。<
>
日本語では「拡張可能なマーク付け言語」といいます。
----
=== XMLは構造を持った文書です ===
これまでいろいろなアプリケーションやそのバージョンごとに異なった形式で文書が作成されてきました。ところがデータの再利用、他のアプリケーションでの利用を考えると、独自の形式を使っていたのでは困難です。一方でアプリケーションごとに異なった機能があるわけですから、個別に特殊なデータを埋め込んで保存する要求もあるわけです。
もっとも互換性のあるデータ形式は'''テキストファイル'''です。
テキストファイルとは文字だけが並んだファイルです。ここで言う文字とはアルファベットや数字、記号、漢字、かな、改行、タブなどのことです。
ワープロで作成する文書とは異なり、テキストファイルには文字の大きさ、位置、色などを指定することはできません。
文字以外の情報は'''タグ'''という仕組みを使ってテキストファイル内に記述します。
Webページで使われるHTMLでもタグが使われています。HTMLでは使えるタグがあらかじめ決められていますが、XMLでは利用者が新しいタグを定義することができます。
----
=== HTML ===
XMLに似たものにHTMLがあります。<
>
Webページの記述に用いられるHTMLの例を示します。
{{{
sample page
lesson 1
タグを使って属性を記述します。
}}}
< と > で挟まれた部分を'''タグ'''と言います。
例では、、、、、 、、
、、、
、
、、のタグが使われています。
タグは強調を意味し、ブラウザで表示するととで挟まれた部分が太字になります。
----
=== XMLの例 ===
XML文書の例を示します。
{{{
Hello, world!
}}}
HTMLと違って、書き方(文法)がきっちり決まっています。
また、タグを自由に作り出して使うことができます。
例ではというタグが使われています。
. 1行目はこれがXMLドキュメントであるという宣言です。
. 2行目はこのXMLドキュメントがどんなデータなのかを示すための宣言です。
. 3行目からがXMLのデータです。この例では1行しかありません。
XML宣言、DOCTYPE宣言は文書により書き方が決まっています。指示されたとおりに書いてください。
. データ部はタグを使って書きます。
. タグを複数個使って構造化することができます。
. データは1つのルート要素でできていること。
----
=== 要素の書き方は2通りあります ===
要素の書き方(1)
「開始タグ」 「内容」 「終了タグ」
{{{
This is a pen.
}}}
要素の書き方(2)
「単独タグ」
{{{
}}}
「開始タグ」は
または
のように書きます。
. タグ名(tagname)は英数字で自由につけられます。ふつうは英字の小文字を用います。
. 属性(attribute)とその値(value)は複数個書くこともできます。属性名も自由につけられます。
. 値の指定にはダブルクオートが必要です。
「終了タグ」は
のようになります。
/ の後ろは開始タグの名前と同じものです。
「内容」にはふつうのテキスト(文字列)のほかに、要素(タグを使った項目)を含むこともできます。
「単独タグ」は「内容」が必要のないときに使います。
のような形で /> で終わります。
属性の無い場合もあります。
----
=== 属性 ===
開始タグ、単独タグ内には属性を書くことができます。空白で区切って複数個書くこともできます。属性は
attribute="value"
のように書きます。
attributeの部分を属性の名前、valueの部分を属性の値といいます。XMLでは属性の値を省略できません。ダブルクオートも必要です。
----
'''空白'''
. スペース、タブ、改行
. いくつ並べても同じ
. S ::= (#x20 | #x9 | #xD | #xA)+
. <>
'''名前'''
. 英数字、ピリオド、ハイフンを並べたもの
. 先頭は英字
. !NameChar ::= Letter | Digit | '.' | '-' | '_' | ':' | !CombiningChar | Extender
. Name ::= (Letter | '_' | ':') (!NameChar)*
. コロンは使えるが使わない方がよい
'''リテラル'''
. "....." または '...'
'''特殊な文字の表し方'''
. < は ''&''lt;
. > は ''&''gt;
. & は ''&''amp;
. ' は ''&''apos;
. " は ''&''quot;
'''コメント'''
.
. --を含まないこと