XML 文書は 2 つの部分から構成されている

初稿: 2005-08-22

複雑な XML 文書をできるだけ単純に

XML 文書を知っている人の中にはそれが非常に複雑だと思っている人がいるかもしれません。実際に XML 文書を細かく見ていくとたくさんのルールがあって、とても単純とはいえません。でもここではあえて XML 文書の大まかな構造を見ることによって、できるだけ単純に考えてみます。

宣言と要素だけで構成される

実際に一般的な XML 文書の大まかな構造を見てみましょう。

<?xml version="1.0"?>
<!DOCTYPE bookshelf SYSTEM "bookshelf.dtd">

<bookshelf>
  <book code="ISBN0-0000-0000-1">
    <title>はじめての XML</title>
    <author>桃 太郎</author>
  </book>
  <book code="ISBN0-0000-0000-2">
    <title>XML 入門</title>
    <author>金 太郎</author>
  </book>
</bookshelf>

上記で強調された部分は、序文 (Prolog) です。序文には「XML 宣言 (XML declaration)」と「文書型宣言 (Document type declaration)」があり、XML 文書についての情報を記述している部分です。この場合、序文は 2 行だけとなっていますが、文書によっては DTD という定義が宣言中にされている場合があります。その場合、序文は非常に大きくなる可能性があります。一般的には序文はコンピューターが XML を解析する際に使われるもので、XML 文書の本質的な内容は次の要素の部分に記述されています。

<?xml version="1.0"?>
<!DOCTYPE bookshelf SYSTEM "bookshelf.dtd">

<bookshelf>
  <book code="ISBN0-0000-0000-1">
    <title>はじめての XML</title>
    <author>桃 太郎</author>
  </book>
  <book code="ISBN0-0000-0000-2">
    <title>XML 入門</title>
    <author>金 太郎</author>
  </book>
</bookshelf>

上記で強調された部分は、要素 (Element) です。大きな文書になればなるほどこの部分大きくなり、一見複雑に見えますが、見方を変えるととても単純に捉えることができます。実はこの部分は常にたった一つの要素であるということです。上記の場合、内容がどれだけ増えても たった一つの bookshelf 要素でしかありません。このような要素を「ルート要素 (Root element)」、または「文書要素 (Document element)」と呼びます。つまり XML 文書とは、序文と一つの要素から構成されているわけです。

他の部分はないの?

序文にも要素にもあたらない部分が実は存在します。例えばコメントは XML 文書中のどこに記述しても構わなくて、その他の部分になります。コメントの他には処理命令という記述もこれにあたります。ただし、XML 文書の構造を考える上で柱となるのは序文と要素です。そのため通常は序文と要素だけを意識すれば問題ないはずです。


目次へ戻る