①Title:XMLとSGMLの比較

②用語記述: SGML、HTML、XML

③解説:
目的:SGMLにより作成された言語、HTMLはインターネットを急速に普及させた大きな技術要因になった。その後、インターネットの更なる普及に伴い、さまざまな情報をインターネット上で公開交換しようという機運が高まってきた。しかし、「データ交換」という観点でみると、既存のHTMLでは機能が不十分で、そこで、情報の公開と交換をより柔軟に行えるような技術が要求されるようになってきた。
SGMLとは:異なる環境のコンピュータがネットワークで接続される中、SGML (Standard Generalized Markup Language)はスムーズな電子文書の交換を目的にして開発された。SGMLは2つの大きな特徴をもつ。一つ目の特徴は、SGMLが「言語を作る言語」、メタ言語と呼ばれるものである。コンピュータ間で電子文書の交換を行う際、各コンピュータに共通の言語のフォーマットを規定する必要がある。その一方、文書交換を行う目的はユーザにより異なるため、フォーマットが固定していると電子文書交換の用途が制限されてしまう。SGMLは、「文書交換のフォーマットを作成する言語」であり、SGMLそのものは、言語ではない。SGMLにより、ユーザの環境に合わせたフォーマットを作成することができる。作成したフォーマットを通信するユーザ間で共有することにより、ユーザのコンピュータ環境(H/W、S/W)に依存せずに、電子文書の交換が行えるわけである。二つ目の特徴は、SGMLはマークアップ言語であるということである。マークアップ言語とは、テキストファイルの中に内容と同時に特定の記号を利用して付加情報を記述したものである。
「桜がとてもきれいです。」
『とても』の文字列部分だけ太字で表示するという機能をマークアップすると、以下のようになる。
「桜が<STRONG>とても</STRONG>きれいです。」
マークアップ言語を利用した文書の特徴は、データはあくまでテキストであり、通常のテキストエディタで操作することはもちろん、UNIX環境などで多数開発されている、さまざまなテキスト変換ソフトウェアなどを利用して操作できる。
XMLとHTMLの違い:インターネットを介した情報公開、交換をする際のXMLの優位性について、HTMLと比較してみる。

書籍番号:4-8342-5104-7
書籍名:カイマナヒラの家 Hawaiian sketches
著者名:池沢夏樹
単価:1,800
の書籍情報を、以下のようなHTMLのデータをアプリケーションに渡して処理を行うことを考える。
<table >
  <tr>
  <td>4-8342-5104-7 </td>
  <td >カイマナヒラの家 Hawaiian sketches </td>
  <td>池沢夏樹</td>
  <td>1,800</td>
  </tr>
</table>
すると、「カイマナヒラの家 Hawaiian sketches」が書籍名であることは、HTMLの記述を眺めていてもわからない。データ交換を行う双方が「表の2列目は書籍名を記述することにしましょう」というような合意を、別の方法で事前に行う必要がある。つまり、HTMLでは、データの構造を記述することができないのである。この場合、「書籍名を1列目に表示したい」といった表示形式の変更を行うには、表示部以外の処理システムも変更する必要がある。さらに、「新たに出版社情報を追加したい」といったように、カラムを増やす場合もシステムの見直しが必要である。つまり、HTMLによりデータの交換を行うと表示形式から間接的にしかデータ構造を把握できないのある。
XMLは「メタ言語」=「言語を作成するための言語」であり、これより、ユーザはXMLにより、データ構造を示すタグが含まれるような言語を作成することができる。上の例をXMLで記述した場合(正確には「XMLで作成した書籍情報記述言語で記述した場合」は、以下のようになる。
<book>
<id>4-8342-5104-7 </id>
<title>カイマナヒラの家 Hawaiian sketches </title>
<author>池沢夏樹</author>
<price>1,800</price>
</book>

すると、「カイマナヒラの家 Hawaiian sketches」が書籍名をあらわしていることが、タグの記述よりわかる。このように、データの構造がタグで記述できることにより、アプリケーションにデータをとりこんだり、必要な情報のみを表示したりすることが、柔軟に実現できるようになる。さらに、XMLでは、タグを新たに追加することも可能である。これより、出版社情報を追加したい場合は、ユーザにより出版社をあらわすタグを新たに作成することより実現できる。
SGMLをよりシンプルに、利用しやすく発展させたものがXMLであり、SGMLの2つの特徴 (「メタ言語、マークアップ言語」であることを受け継いたため、インターネット上でのデータ交換に非常に適した技術であるといわれている。


④Reference:
1.techscore
http://www.techscore.com/


⑤作成者:山本正司-20060925

【XMLとHTMLの比較】
<HTML>
<HEAD>
<TITLE>本のリスト</TITLE>
</HEAD>

<BODY>

<H1>情報メディア論</H1>
<UL>
<LI>丸山不二夫 編著
<LI>八千代出版
</UL>

<H1>Javaのからくり</H1>
<UL>
<LI>植田龍男 著
<LI>IDGコミュニケーションズ
</UL>

</BODY>
</HTML>

HTMLでおなじみのタグが用いられています。大見出しである<H1>や、箇条書きを表す<UL>、各項目を表す<LI>などがあります。XMLでも、HTMLと同じくタグを利用します。次は、上述のHTML文の内容をXMLで表したものです。

<?xml version="1.0"?>

<BOOKLIST>

<BOOK>
<TITLE>情報メディア論</TITLE>
<AUTHOR>>丸山不二夫 編著</AUTHOR>
<PUBLISHER>八千代出版</PUBLISHER>
</BOOK>

<BOOK>
<TITLE>Javaのからくり</TITLE>
<AUTHOR>>植田龍男</AUTHOR>
<PUBLISHER>IDGコミュニケーションズ</PUBLISHER>
</BOOK>

</BOOKLIST>

XMLではタグを自由に定義できます。この文書では、<BOOKLIST>, <BOOK>, <TITLE>, <AUTHOR>, <PUBLISHER> といったタグを新たに定義しています。このHTMLとXMLで書かれた2つの文書を比べてみましょう。HTMLで書かれた文書は、webブラウザを使って読むのに十分です。しかしこの文書をこのままで、書籍データベースのようにして使うのは大変でしょう。例えば、この文書の中にある本の著者を枚挙したいと思っても、汎用的な検索プログラムは書きにくいです。XMLの文書では、<BOOK>, <TITLE>, <AUTHOR>といったタグを定義しているため、それぞれの<AUTHOR>タグを探して、その内容を表示するだけの処理となります。そもそもHTMLの本質的な目的のひとつは、文書の論理的な構造を明確にすることです。XMLでは、文書の意味的な構造を明確にすることにも重点が置かれています。別な言い方をすると、XMLの文書は、文書であると同時にデータでもあります。

【なぜXMLか】
・タグを自由に定義できる。
・複雑な構造をもった文書も記述できる。
・テキストファイルになっているため、必要があれば特別なツールを使わなくても、閲覧・作成・編集できる。
・パーサを作る必要がない。

こうしたメリットのため、さまざまな場面で、データを交換したり、保存するときに利用されています。いくつかの業界では、後述するDTDをその業界で定義し、標準化しようという動きもあります。また、プログラムの定義ファイルを記述するときにもXMLが利用される場面が増えています。J2EE では、Deployment Descriptor (DD) が XML で表現されています。データの移動や保存をおこなうプログラムを作るときは、XMLの利用を一度は検討した方がよいと考えています。

【J2EEとは】
Sun Microsystems社のプログラミング言語「Java 2」の機能セットの一つで、企業の業務システムや電子商取引などで使われるサーバに必要な機能をまとめたもの。標準機能セットのJava 2 Standard Edition(J2SE)に、サーバ用のAPIや諸機能を付加したものと言える。APIセットをまとめた「Platform Specification」、Sunによる参照実装、互換性テストスイート、ガイドライン「Blue Prints」といった要素から成り、Javaプログラムを部品化して組み合わせることができるようにする「Enterprise JavaBeans」や、WebページにJavaプログラムを埋め込んで内容を動的に生成する「Java Server Pages」(JSP)などの技術を含む。また、XMLを操作するためのAPIも用意され、サーバ上で様々なソフトウェアを組み立てられるようになっている。J2EEの動作環境はSunを含む各社のアプリケーションサーバ製品に実装されており、データベースシステムやWebサーバと組み合わせて使う。(http://e-words.jp/w/J2EE.html

【Deployment Descriptor(デプロイメント記述子)】
デプロイメント記述子 (deployment descriptor) とは、J2EE準拠のあらゆる Web アプリケーションとあらゆる Enterprise JavaBeans (EJB) で必ず使用され、J2EE準拠のあらゆるサーバ(BEA WebLogic Server など)で解釈方法が既知でなければならない、定義済み形式のコンフィグレーション ファイルのことです。この形式は XML 文書型定義 (Document Type Definition: DTD) で指定されるため、拡張子が .xml になっています。デプロイメント記述子はその名前のとおり、デプロイメントのさまざまな設定を記述したもので、その内容は、サーブレット、セキュリティ ロールと安全性の保証されたリソース、JSP のデプロイメントに関するオプションといったアプリケーションのプロパティについてです。

【コンフィグレーション ファイルとは】
Java 2 Enterprise Edition の規格に準拠するため、HTTP サーブレットは Web アプリケーションの一部としてデプロイ(主にWebアプリケーションやWeb Serviceにおいて、コンパイルしたプログラムやクラスファイルなどを、Webサーバー上に配置して、クライアントから実行可能な状態にすること。)されます。Web アプリケーションとは、サーブレット クラス、JavaServer Pages(JSP)、静的な HTML ページ、画像、ユーティリティ クラスなどのアプリケーション コンポーネントをグループ化したものです。Web アプリケーションでは、コンポーネントは標準的なディレクトリ構造を用いてデプロイされます。このディレクトリ構造は、.war ファイルと呼ばれるファイルにアーカイブされて、WebLogic Server 上にデプロイされます。Web アプリケーションのリソースと操作パラメータに関する情報は、Web アプリケーションと共にパッケージ化されている 2 つのデプロイメント記述子で定義されます。

最終更新:2006年11月29日 23:38