== 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; '''コメント''' . . --を含まないこと