XML
XML(eXtensible Markup Language)はSGMLのサブセットであり, 1998年2月に発表されたインターネット上で扱うデータを記述するための データフォーマットである。
近年,SGMLの応用言語であるHTMLを利用したWebが普及し,文書閲覧のみならず, 電子商取引という形で利用されるにいたった。しかし同時にHTMLの限界が認識される ようになった。すなわち,HTMLではタグ名が固定されており,ユーザが自由に タグを拡張して使用することはできない。このようなことからSGMLをWeb上で使 えるようにしようという議論が始まった。
この授業でHTMLを学習した際に,HTMLを書く場合には,テンプレートフィアルをコピーして 使うように指示した。このテンプレートファイルの先頭部分を見ると
<?xml version="1.0" encoding="iso-2022-jp"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/x html1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
などと書いてある。つまりこのテンプレートファイルの一行目ではこの文書がXMLの規格 に従うことを宣言していたのである。
XMLの長所
SGMLは特定のソフトウェアに依存しないデータ形式である。 SGMLとHTMLから多く点を引き継いでいる。
HTMLからは
- 読みやすく簡単なデータ形式
- ハイパーリンク
- Web技術(URL、MIME、HTTPなど)に対応
- プログラムからの操作が容易
一方SGMLからは次のような長所を引き継いでいる
- タグを自由に定義することができる
- 強力なスタイルシートの使用が可能
- 厳密な文法チェックが可能であり、プログラムからの文書処理が容易
拡張可能と意味情報
先にも述べたとおりXMLはHTMLと同じくSGMLの流れをくむデータ記述言語である。 XMLはHTMLと比較すると、「拡張可能」であり、「意味情報」を含めるこ とができる。例えば以下のようなXMLファイルがあるとする
<?xml version = "1.0" encoding = "iso-2022-jp"?> <documentinfo type = "XML"> <title>XMLの簡単な解説</title> <doctype>メール</doctype> <author>浅川伸一</author> </documentinfo>
HTMLではタグ名は決められたものしか用いることはできない。HTML文書を作成 するものはその内容をブラウザに表示させることによって確認し,さらにこの 授業ではOperaを用いて文法のチェックを行っていた。つまり,HTMLのタグ名は表 現情報を表しており、タグによってマークアップされている情報の意味は人間 が実際にブラウザで見て初めて確認できるのである。
一方、同じ情報をXMLでマークアップすることにすると,XMLではタグ名を自由
に決めることができるため,目的に応じたタグを定義して使用することができ
るようになる。たとえば,<doctype>メール</doctype>
のような場合"メール"という文字列の意味をタグ名が与えている。
つまり"メール"という情報についての意味情報をタグ名が与えているのである。
この行を見れば人間は"メール"という情報が文書のタイプを表すものであることを,
タグ名から知ることができるのである。
このような場合「タグが意味情報をもつ」と考える。このようにXMLを使用 してマークアップすることで,タグ名をHTMLのように表現情報として利用するので はなく,意味情報として利用することになる。
この違いはプログラムからデータを処理する際に大きな違いとなって現れる。 データをXMLでマークアップしておけば、個々の情報に意味情報のタグがついて いるのでプログラムから正確にデータ処理をすることが可能になるのである。
文書における「内容」「構造」「体裁」の分離
文書を構成する「内容」「構造」「体裁」という3つの要素は,従来の紙媒体 ではひとつとなって決定されている。XML ではこれら3つの要素を分離して扱う。 「内容」はXML文書内でマークアップされるが、そのXML文書の「構造」 は DTD(Document Type Definition)と呼ばれる構造定義体によって定義する。 また,XML文書に与える「体裁」はスタイルシートにより記述する。DTDの概念は SGMLから引き継がれたものであり,スタイルシートの概念はHTMLから引き継がれた。
−XML宣言− <?xml version = "1.0" encoding = "iso2022-jp"?> −XMLインスタンス− <研究者 登録番号 = "3661"> <名前>浅川伸一</名前> <連絡先> <郵便番号>167-8585</郵便番号> <住所>東京都杉並区善福寺2-6-1東京女子大学現代教養学部</住所> <電話番号>03-5382-6746</電話番号> <FAX>03-5382-6709</FAX> </連絡先> <URL>http://www.cis.twcu.ac.jp/~asakawa/</URL> </研究者>
XMLインスタンスとは実際の内容にタグが付けられている部分,つまりXML文書 の本体のことである。この部分は「要素( element)」と「属性( attribute )」からなっている。すなわち
開始タグ 内容 終了タグ <郵便番号>167-8585</郵便番号>
となる。このあたりはHTMLとよく似ている。
上の例では「連絡先」という要素の中に「郵便番号」「住所」「電話番号」
「FAX」という要素が含められている。このとき、「連絡先」を「親要素」、
「郵便番号」「住所」「電話番号」「FAX」を「子要素」と呼ぶ。ちょうどHTMLが
<body>
要素の中に,<p>
要素や<ul>
要素を子どもの要素
として含んでいたことと同様である。XML文書は(HTML文書と同じように),
親要素から子要素、そのまた子要素、というように要素を階層
的に作り上げることで成り立っている。ある要素の開始タグと終了タグの対の
中に、子要素として別の要素の開始タグと終了タグを「入れ子」にして書くこ
とによって階層関係を作る。
タグの対応が取れている場合でも、親要素と子要素が入れ子構造を形成してい ないような次のようなタグ付けは許されないのもHTMLと同じである。
要素には、その内容に子要素も文字列ももたない「空要素」と呼ばれる要素が
ある。その場合には,<要素名 />
としてタグの終わりにスラッシュ(/)
が必要である。これはHTMLのimg要素やbr要素と同じである。
演習
UNIX には find
というコマンドラインユーティリティがある。
使い方は,
となる。例えば,自分のホームディレクトリ直下にある Library というディレクトリ から xml という拡張子のついたファイルを探したければ
とする。'*xml' とシングルクォートで囲むのはシェルがこの名前を展開してしまうのを
避けるためである。おそらくたくさんのファイルがみつかるであろう。
それぞれを順に眺めたければ,less
コマンドにパイプでつなげればよい。
いくつ xml ファイルがあるかを調べるには wc
コマンドをつかう。
find
コマンドでみつかった .xml ファイルのいくつかを実際に cat
, less
または lv
してみよ。どのような情報が書かれているか。
情報処理技術者試験の過去の問題集より
問
タグを使って文書の論理構造や属性を記述する方法を定めた国際規格であって, 電子的な文書の管理や交換を容易に行うための文書記述言語はどれか。
- ア DML
- イ HTML
- ウ SGML
- エ UML
答 ウ
解説
ア:DML(Data Manipulation Language)は、SQL の言語体系の一つで、データ操作言語のことである。
イ:HTML( HyperText Markup Language ) は、タグ形式のテキストで、HTML で記述したテキストは Web ブラウザを使用して表示できる。
ウ:SGML(Standard Generalized Markup Language ) は、代表的なマークアップ言語の1つで、 文書の中にタグを埋め込んで文書の構造を記述し、図・表などを含む文章の整形言語である。
エ:UML( Unified Modeling Language ) とは、Java 等のオブジェクト指向の ソフトウェア開発におけるプログラム設計図の統一表記法のことである。 主なモデル図としては、クラス図、ユースケース図、シーケンス図等がある
問
XML の特徴のうち,最も適切なものはどれか。
- ア XML では,HTML に Web ページの表示性能の向上を主な目的とした機能を追加している。
- イ XML では,ネットワークを介した情報システム間のデータ交換を容易にするために,任意のタグを定義することができる。
- ウ XML で用いることができるスタイル言語は,HTML と同じものである。
- エ XML は,SGML を基に開発された HTML とは異なり,独自の仕様として開発された。
答 イ
解説
XML( eXtensible Markup Language )は、SGML や HTML と同様にデータの構造や意味をタグを 用いて表現する言語で、独自のタグを定義して使用することができる。
問
XML 文書を構成する最小単位である要素の定義方法に関する記述のうち、適切なものはどれか。
- ア 開始タグと終了タグが対になって構成され、どちらのタグも省略できない。
- イ データを開始タグと終了タグで囲んで構成するが、データがないこともある。
- ウ 1つの XML 文書には、階層構造を表すために複数のルート要素を定義できる。
- エ 要素の種別を表すために注釈情報を付加して、これを要素名として識別する。
答 イ
解説
XML( eXtensible Markup Language )は、メタ言語(言語を作る言語ための言
語)で 構成されており、 XML により作成された言語を用いて構成された文
書やデータを XML 文書と呼ぶ。中には数字の羅列のようなデータ塊のものも
ある。記述される内容としては、 要素、属性、処理命令、 CDATA セクショ
ン、 DTD などがあり、要素の内部には開始タグ、 終了タグ、空要素タグ、
文字列などがある。開始タグ、終了タグにより要素を区切り、 要素が空要素
のときには空要素タグで示す様にできている。
ア:空要素の定義では、空要素タグを入れることとなっている。
イ:空要素のことを指す。よって、正解。
ウ: XML 文書は木構造となっているので、ルート要素を複数定義することはできない。
エ:注釈情報をタグに付加しても、要素名として識別することはできない。
問
XML に関する記述のうち,適切なものはどれか。
- ア HTML を基にしてその機能を拡張したものである。
- イ XML 文書を入力するためには専用のエディタが必要である。
- ウ 文書の論理構造と表示スタイルを統合したものである。
- エ 利用者独自のタグを使って文書の属性情報や論理構造を定義することができる。
答 エ
解説
XML( eXtensible Markup Language )は、SGML や HTML と同様にデータの構造や意味をタグを 用いて表現する言語で、独自のタグを定義して使用することができる。
ア:誤り。XML は、SGML を基にしてその機能を拡張したものである。
イ:誤り。XML 文書を入力するためには、一般のテキストエディタで十分である。
ウ:誤り。文書の論理構造と表示スタイルを統合したものは、SGML である。
エ:正しい。
問
XML に関する記述として,適切なものはどれか。
- ア C++ を基本としたオブジェクト指向言語
- イ テキスト処理用のインタプリタ言語であり,Web サーバ上で動く CGI(Common Gateway Interface )プログラムの標準言語
- ウ デスクトップパブリッシングの標準的なページ記述言語
- エ データの構造や意味をタグを用いて表現する言語
答 エ
解説
XML( eXtensible Markup Language )は、SGML や HTML と同様にデータの構造や意味を タグを用いて表現する言語である。 XML は、独自のタグを定義して使用することができる。
ア:C++ を基本としたオブジェクト指向言語は、Java である。
イ:テキスト処理用のインタプリタ言語で、Web サーバ上で動く CGI( Common Gateway Interface )プログラムの標準言語は、Perl である。
ウ:デスクトップパブリッシングの標準的なページ記述言語は、PostScript である。