医薬品チームブログ
投稿日:2016.03.29
更新日:2022.08.01
<stafflist> <staff> <name>大光太郎</name> <age>22</age> <dept>営業部</dept> </staff> <staff> <name>大光花子</name> <age>20</age> <dept>開発部</dept> </staff> </stafflist>このサンプルでは2人の社員、「大光太郎・22歳・営業部」、「大光花子・20歳・開発部」の情報をXMLで表現した時の一例です。実際のXMLもう少し記述が必要ですが、核の部分は大体こんな感じです。 XMLはマークアップ言語なので、その構造単位はタグです。「<」と「>」で囲まれた<stafflist>や<staff>等がそれです。 タグは基本的に「開始タグ」と「終了タグ」のセットです。「開始タグ」と「終了タグ」は「<」と「>」で囲まれた部分は同じですが、「終了タグ」は「/」から始まります。 <stafflist>の場合、<stafflist>が開始タグ、</stafflist>が終了タグになります。 タグの見方がわかると、上記のサンプルの構造が見えてくると思います。 「stafflist」という大きなタグの中に、「staff」というタグが2つ存在し、 その中には「name」「age」「dept」の3つのタグが存在します。 「name」「age」「dept」のタグにはそれぞれ、名前、年齢、部署の情報が記載されているという構造です。 コンピューターがこのXMLの構造を理解して、情報を抽出、編集、追加、削除したり出来ます。 利用方法としては、例えば、名前だけを抽出して社員リストを作成したり、組版ソフトで情報を読み込んで名刺のレイアウトを自動組版したり、部署毎に情報をまとめて会社の組織図を作成したり、等々です。 多くのXMLを利用した技術やサービスも、基本的な考え方は上記の例と同様です。膨大な数と種類のタグを使い分けて、多種多様な情報を表現している訳です。
リレーショナルデータベースのデータは、表組みになっているのでデータをカッチリ管理しやすく、解りやすいです。 反面、新たに列を追加したり、不要な列を削除したり、後から仕様をすることにはあまり向いていません。 テーブルでデータを管理する時に困るのは下記の様な例です。
リレーショナルデータベースのイメージ 名前 年齢 部署 大光太郎 22 営業部 大光花子 20 開発部
大光太郎さんが、ものすごく多趣味でもっともっと趣味を書きたい場合、現状だと3つ以上は書けません。 列を追加すればいいですが、あといくつ趣味を書きたいのか決めてもらわないと、何列追加したらいいのかわかりません。それに、大光花子さんは趣味が2つしかないので、これ以上趣味の列を増やすのは、ブランクのセルが増えてしまって無駄です。 こんなとき、XMLだと下記のようにデータを格納できます。<hobby>というタグで趣味を記述するとします。
リレーショナルデータベースで困る例 名前 年齢 部署 趣味1 趣味2 趣味3 大光太郎 22 営業部 釣り 読書 ドライブ 大光花子 20 開発部 料理 手芸
<stafflist> <staff> <name>大光太郎</name> <age>22</age> <dept>営業部</dept> <hobby>釣り</hobby> <hobby>読書</hobby> <hobby>ドライブ</hobby> <hobby>写真</hobby> <hobby>園芸</hobby> </staff> <staff> <name>大光花子</name> <age>20</age> <dept>開発部</dept> <hobby>料理</hobby> <hobby>手芸</hobby> </staff> </stafflist>これなら、<hobby>タグを何度も使うことで、大光太郎さんは趣味を無限に書き連ねることが出来ますし、花子さんのデータに無駄がうまれません。 XMLデータベースはテーブル(表)ではなく、このようなXML形式でデータを格納する事が出来ます。 自由度の高いデータを格納する事の出来る、データベースの形式の1つです。
Officeデータを編集して保存するたび、このXMLが書き換えられています。XMLはこのように裏方的に仕事をしてくれている事が多いです。出典:Wikipedia
- Microsoft Office をインストールされていない環境でもファイルの読み書きが可能
- パーツの再利用が容易になる
- パーツに分けることによりファイル破損のリスクを限定する事ができる
- zip圧縮されることでファイルサイズが小さくなる
SVGで表現した円 <svg xmlns=”http://www.w3.org/2000/svg”> <circle cx=”50″ cy=”50″ r=”50″ fill=”red”></circle> </svg> ソースXMLなので当然この円もタグで表現されています。例えばこの円の場合は、<circle>というタグを使用しています。ソースの詳細な解説は省きますが、<circle>タグに、座標位置(cx、cy)、半径(r)、塗りつぶしの色(fill)にそれぞれ値を記述すると上記の様な円を表現出来ます。 文字ばかりのデータが視覚的に表現出来るのは面白いですね。Adobe社のイラストレーター等でもSVGを作成・編集出来ますので、複雑な図柄も作れます。 アニメーションを表現する事も出来るので、スタイリッシュなWebデザインを支える技術の1つでもあります。
MathMLで表現した二次方程式の解の公式MathMLを表現できるブラウザの場合、下記の画像の様な数式が表示されているはずです。 二次方程式の解の公式の例はソースが複雑ですが、単純な分数、例えば2分の1(1/2)を表現する場合は以下の様な感じです。
<mfrac> <mrow><mn>1</mn></mrow> <mrow><mn>2</mn></mrow> </mfrac><mfrac>タグで囲まれた部分が「分数」、<mrow>タグで囲まれた部分がそれぞれ「分子」「分母」、<mn>で囲まれた部分は「数値」を表しています。 MathMLは数式のレイアウト出来るだけではなく、数式の意味をコンピューターに理解させられます。たとえば、「分母が2の数式」といった条件で上記の数式を検索したりも出来るわけです。