XMLは、文章の見た目や構造を記述するためのマークアップ言語の一種です。 主にデータのやりとりや管理を簡単にする目的で使われ、記述形式がわかりやすいという特徴があります。
Web技術で頻繁に登場する、HTMLをはじめ、SVG、XHTML、XSLT、RFTなども、 XML と同じマークアップ言語のひとつです。
XMLは、電子商取引や企業内アプリケーションの統合といった多様なニーズに応え、目まぐるしい技術的な進化を続けています。そこでシステム構築上の要と言えるのが、スキーマ(タグ設定等)定義法です。XMLスキーマは、XMLへの全てのニーズに応え得る唯一ものとして制定作業中の、スキーマ記述言語です。XMLスキーマ普及により、プログラム側で行なっていた検証に要するロジックを、XMLスキーマ側に移行でき、開発の効率化も大きく高められるようになります。
▼目次
XMLが、初めてW3C(*1)の勧告を受けたのが1998年2月。以来3年を経た今、急速に高まるB to Bでの電子商取引や、企業内アプリケーションの統合といった多様なニーズに応え、目まぐるしい技術的な進化を続けています。
そこで、システム構築上の要と言えるのが、スキーマ(タグ設定等)定義法です。XMLのスキーマ記述とは、文書がどのクラス(要素・属性)に属するかを定義することです。そして、スキーマ活用において大きなメリットとなるのが、定義しようとする文書が想定するクラスに適するかを自動的に検証できる点にあります。さらには他のスキーマ処理系との間でデータ交換を行なう際、処理系の方に合わせて変換を図るための基本データとして役立てるのも大きな利点といえます。
スキーマ定義の記述方法で、一般的に使われているものとしてはDTD(Document Type Definition/文書型定義)があります。XMLの母体となるSGML(*2)から派生したスキーマ定義法DTDは、XMLのスキーマ記述言語の中では比較的理解しやすく、著しい普及を続けていました。しかし、システムを構築する上での技術的な進化が進み、機能拡張等で様々な限界に至っているのも現状です。デメリットとしては、要素の複雑な制約等の詳細定義ができず、名前空間の利用を前提に設計されていない等の点が挙げられます。
XMLスキーマは、XMLへの全てのニーズに応え得る唯一ものとして制定作業中の、スキーマ記述言語です。W3C(*1)勧告候補に挙げられたのが2000年10月で、その翌年の2001年5月2日に勧告が発表されました。XMLの基本概念やDTDとの比較などから、XMLスキーマの特徴を解いてみましょう。
XMLを扱うプログラムの大半は、パーサというXML処理エンジンを活用します。XMLとプログラム間の仲介役を果たすソフトウェアのパーツで、プログラムに組み込む事により、XML対応が容易となります。パーサは、プログラムから読み込んだXMLデータにアクセスする手段を提供します。
もう一つの代表的な働きに、読み込んだXMLデータを検証できるという利点があります。つまり、読み込んだ内容がXML規格に適さなければエラー通知を行なうのです。ただし、一般的なXMLスキーマ記述言語とされてきたDTDでは、詳細な定義となる「要素の値まで」の規定ができず、XMLスキーマを使用することで、プログラム内での正当性を検証するコードをさらに減らすことができるようになります。構文が独自のものだったために独自解析の工夫を要したDTDとは異なり、XMLスキーマでは構文もXMLとなっているため、検証を行なう文書と同じXMLデータとして解析できます。これによりユーザーも、XMLの書き方をマスターし、XMLスキーマが規定する要素、属性名、値の指定方法などを覚えればよくなります。
XMLスキーマで規定できる範囲は、要素、属性名、出現する順序、回数などはDTD同様ですが、これに加え、文字列、正否、数値・日付・時間を表わすもの、XML、XMLNamespaceで規定されてるID、IDREF、ENTITYといった型など、それぞれの値をより細かく限定することが可能になります。
また、これらの型をベースにして、さらなる制限を行なうこともできます。XMLスキーマ普及により、プログラム側で行なっていた検証に要するロジックを、XMLスキーマ側に移行でき、開発の効率化も大きく高められるようになります。
XMLスキーマでは、スキーマ情報を二つに分けて定義します。
一つは、要素・属性の宣言です。
二つ目は、どんな要素・属性・値から内容モデルが構成されるかを決めるデータ型の定義です。
XMLスキーマによるデータ型定義のメリットは、要素・属性をどのように処理すべきかを判断するための対応表が不要となる点です。そして、効率化を図る上で大きな利点といえるのが、異なる名前の要素を同一のデータ型として宣言するだけで、内容モデルの再利用も可能となることです。データ型は、内容文字列が格納された"単純型"と子要素・属性で構成された"複合型"に分けられます。また、異なる名前空間に属する要素・属性がどう混在するかや、特定についてだけ検証するように定義づけることもできるほか、複数のスキーマを組み合わせて使いこなすこともできる表現力の高い記述言語です。
■(*1)W3C(World Wide Web Consortium):
W3Cは、WWW(World Wide Web)で使用されるさまざまな技術標準を定める総本山的な組織です。HTML、HTTPはもちろん、XML、MathML、XMILなどの仕様もここで制定されました。
■(*2)SGML(Standard Generalized Markup Language):
汎用のメタ言語でありマークアップ言語です。基本的に、SGMLから利用頻度の低い機能を取り除き、より扱いやすく手直ししたものがXMLであると考えると分かりやすいです。(※HTMLは、SGMLによって作成された言語の1つ)
御相談、ご質問はこちら |
サービスご案内資料や、特別資料「マニュアル作成の効率化とコストダウンを実現するポイントとは? 」がダウンロードできます。 |
最新事例の公開情報や、イベント・セミナー情報をお届けします。 |