ボルボックス


すべてをすばやくムダなく
volvox

第06話:テキストをおさめる場所 (ツリー構造とXML)

ツリー構造をおさめられるしくみってないの?
あるよ。なかでもXMLは、W3Cが策定したツリー構造をあらわす形式のひとつ。ウェブのコンテンツ管理によく合う……HTMLをXMLであらわすXHTMLっていう仕様もあるくらいだから:
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>
      title001
    </title>
  </head>
  <body>
    comment001
  </body>
</html>
HTMLと似ているね……というかそっくり。
XMLはツリー構造ならなんでもあらわせるし、それをタグで記述するからね。それにテキストをファイルに直接かけるから、エディタ・ソフトでそのまま編集できる。

 

ならCMSのテキストはXMLにおさめればいいじゃない。
ただXMLはファイルに書くことが多いし、ひとつのファイルにたくさん書けば書くほど、取り出すのが遅くなる。[※1]
ならやっぱり、CMSのテキストはRDBにおさめる方がいいってこと?
ただRDBは大量/高速なんだけれど、テキストは厳密に関係モデルのカタチでないといけないし、そのままエディタで編集することもできない。

 

……
ちなみに、XMLならこんな書き方もできるよ:
<record>
  <id>001</id>
  <date>2020.10.20</date>
  <title>title001</title>
  <comment><p>...<b>...</b>...</p></comment>
</record>

<record>
  <id>002</id>
  <date>2020.12.20</date>
  <title>title002</title>
  <comment><p>...<b>...</b>...</p></comment>
</record>
XMLでRDBを表現できるんだ……それに表のカタチ(関係モデル)と文書の構造(ツリー構造)が、境目なくつながっている……
たぶん基本はXMLなのかも。組織も業務もたえず変わっていくからね……CMSも通常のテキストはXMLにして、文書のカタチをそのときどきの環境に適応させながら、大量/高速が要求される部分については、十分に仕様を詰めたうえでRDBにする、というのがいいんじゃないかな。
※1
W3C(world wide web consortium )……ウェブの標準を決める団体。
※2
XML(extensible markup language)……ツリー構造を基にした言語仕様。
※3
XMLの構造をそのまま格納できる専用のデータベース(ネイティブXMLデータベース)もあります。最近はフリーのXMLDBも安定してきており、サーバの条件があえば、比較的安価に採用することができます。