XML概要

XMLはeXtensible Markup Languageの略です。
日本語では「拡張可能なマーク付け言語」といいます。

XMLは構造を持った文書です

これまでいろいろなアプリケーションやそのバージョンごとに異なった形式で文書が作成されてきました。ところがデータの再利用、他のアプリケーションでの利用を考えると、独自の形式を使っていたのでは困難です。一方でアプリケーションごとに異なった機能があるわけですから、個別に特殊なデータを埋め込んで保存する要求もあるわけです。

もっとも互換性のあるデータ形式はテキストファイル です。 テキストファイルとは文字だけが並んだファイルです。ここで言う文字とはアルファベットや数字、記号、漢字、かな、改行、タブなどのことです。 ワープロで作成する文書とは異なり、テキストファイルには文字の大きさ、位置、色などを指定することはできません。

文字以外の情報はタグ という仕組みを使ってテキストファイル内に記述します。 Webページで使われるHTMLでもタグが使われています。HTMLでは使えるタグがあらかじめ決められていますが、XMLでは利用者が新しいタグを定義することができます。

HTML

XMLに似たものにHTMLがあります。
Webページの記述に用いられるHTMLの例を示します。

<html> <head> <title>sample page</title> </head> <body> <h1>lesson 1</h1> <div>タグを使って<strong>属性</strong>を記述します。</div> </body> </html>

< と > で挟まれた部分をタグ と言います。 例では<html>、<head>、<title>、</title>、</head>、 <body>、<h1>、</h1>、<div>、<strong>、 </strong>、</div>、</body>、</html>のタグが使われています。 <strong>タグは強調を意味し、ブラウザで表示すると<strong>と</strong>で挟まれた部分が太字になります。

XMLの例

XML文書の例を示します。

<?xml version="1.0"?> <!DOCTYPE greeting SYSTEM "hello.dtd"> <greeting>Hello, world!</greeting>

HTMLと違って、書き方（文法）がきっちり決まっています。 また、タグを自由に作り出して使うことができます。 例では<greeting>というタグが使われています。

１行目はこれがXMLドキュメントであるという宣言です。

２行目はこのXMLドキュメントがどんなデータなのかを示すための宣言です。

３行目からがXMLのデータです。この例では１行しかありません。

XML宣言、DOCTYPE宣言は文書により書き方が決まっています。指示されたとおりに書いてください。

データ部はタグを使って書きます。

タグを複数個使って構造化することができます。

データは１つのルート要素でできていること。

要素の書き方は２通りあります

要素の書き方（１）

「開始タグ」 「内容」 「終了タグ」

<text>This is a pen.</text>

要素の書き方（２）

「単独タグ」

<break />

「開始タグ」は

<tagname> または <tagneme attribute="value">

のように書きます。

タグ名(tagname)は英数字で自由につけられます。ふつうは英字の小文字を用います。

属性(attribute)とその値(value)は複数個書くこともできます。属性名も自由につけられます。

値の指定にはダブルクオートが必要です。

「終了タグ」は

</tagname>

のようになります。

/ の後ろは開始タグの名前と同じものです。

「内容」にはふつうのテキスト（文字列）のほかに、要素（タグを使った項目）を含むこともできます。

「単独タグ」は「内容」が必要のないときに使います。

<tagneme 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;

コメント

<!-- ここにコメントを書く、数行にわたっても良い -->

--を含まないこと