最新のテクノロジー情報を常に把握するのは容易ではありません。そして、最新技術を活用してビジネスを活性化させることは、ほぼ不可能に思えるかもしれません。印刷物とWebの両方で出版できる能力が求められ、近い将来には携帯電話、インターネット家電、電子書籍、その他無数のガジェットに情報を配信するためのツールも必要になるでしょう。
コンピュータ機器の新たな波は、クリエイティブなプロフェッショナルにとって大きな課題となっています。絶えず変化するテクノロジーの世界に、どのように最新の情報と 互換性を維持すれば 良いのでしょうか?答えは必ずしも単純ではありませんが、習得しやすく、理解しやすく、使いやすいものです。XMLへようこそ。
XMLとは何かを知っている人はほとんどいません。ましてや、それがExtensible Markup Language(拡張マークアップ言語)の略であることを知っている人は、さらに少ないでしょう。しかし、知らないからといって怖がる必要はありません。XMLは、Webパブリッシングを小学校の文法の授業と同じくらい簡単にしてくれると約束しています。Macworld の 詳細なXMLチュートリアルで、XMLの真髄を学んでください。
家系図
XMLを理解するには、そのルーツに立ち返り、この新しい方言を生み出した親言語であるHTMLとSGML(Standard Generalized Markup Language)を考察する必要があります。HTMLには、容易にアクセスできるグローバルネットワークを構築するための最適な要素となるいくつかの属性があります。HTMLは、情報をファイルにまとめ、多様なネットワークでの可読性を保証する、集中化されていない方法です。コンテンツは、 読み取られる情報の種類を示す一連のタグでマークアップされ ます。例えば、記事の見出しと目次は次のようにマークアップされます。
<h1>見出し: 標準 HTML のすべての見出しは、このようなタグで囲まれます。</h1>
<p>段落: 個々の段落は、各段落を個別の情報としてマークするタグで囲まれます。</p>
HTMLの成功は、SGMLに大きく負っています。SGMLは、電子文書の内容を表現するための、柔軟で正確かつ記述的な語彙を考案するという、汎用的なコーディングコンセプトに基づいています。 この 語彙は文書の構造と構成を定義し、複数の異なるアプリケーションで文書を容易に読み取れるようにしました。ただし、これらのアプリケーションがSGMLを読めることが条件です(SGMLは、図書館員や大規模な技術文書を作成する編集者など、非常に複雑な情報を整理する必要がある人々に、今でも広く利用されています)。
SGMLが普及したのは、文書に前例のない移植性を与えたからです。この言語の欠点はその複雑さにあり、HTMLはネットワーク間での移植性を実現するための迅速かつ容易なツールを提供することを目的として開発されました。
しかし、HTMLには、Web開発者やユーザーが求める2つの特性、すなわち、容易にインデックス付けできるデータ構造と、外観をカスタマイズできるという特性が欠けています。HTMLは非常に基本的な文書構造しか提供していなかったため、コンテンツの構成を反映した形でデータをマークアップしたい人は、その希望を叶えることができませんでした。コンテンツの外観を制御したいサイト制作者にとっては、さらに不利な状況でした。
Web開発の初期段階では、HTMLの文書構造タグ( <p> や <body>など)は 、文書の外観属性( <font color>など)と密接に結びついていました。その結果、多くのWebサイトは、表、フォントタグ、画像が複雑に絡み合った構造になっていました。Webデザイナーはサイトの外観を規定することに成功しましたが、その過程で文書構造が犠牲になっていました。その結果、サイトの保守担当者は膨大な作業量を抱えることになりました。
例えば、ウェブサイトのデザイナーがすべての見出しを大きな鮮やかな赤のArialフォントで表示したとします。適切なブラウザでこれを見た読者は、大きな赤い文字がすべて見出しだと判断できるでしょう。しかし、マークアップ言語の文法の観点から見ると、この文書は整理されていません。どのタグが見出しを識別するためのものかを判断する方法がないのです。XMLは、複数の異なるコンピュータ間で簡単に定義・交換できるデータエンコード方式を提供することで、この問題を解決します。
XMLとHTMLの比較
TMLには2つの重要な点で欠陥があります。情報をカテゴリや階層に整理することが難しく、HTMLではページ上の項目の外観を簡単に制御できないことです。情報を整理する際に、HTMLコーディングでは一連の見出し(階層を表す見出しのサイズ: <h1> から <h4> )に依存します。
見出しは、文書を厳密なアウトラインに沿って整理する場合に有効ですが、すべての種類の情報がこのモデルにうまく当てはまるわけではありません。例えば、水泳に関する文書をマークアップする場合、泳ぎ方の種類、各レースの距離、泳ぎ方別のレース構成といった情報グループが含まれる可能性があります。
HTMLでは、これらの異なる情報グループが互いに関連しているものの、入れ子になっていないことを示す明確な方法はありません。しかし、XMLでは、Swimming Markup Language(SWI)を記述し、次のような要素を設定できます。
&nsp; <stroke> </stroke>
&nsp; <人種> </人種>
また、それぞれにサブカテゴリを設定して、異なる種類のストロークとレースを示すこともできます。次に例を示します。
&nsp; <ストローク>
&nsp; &nsp; <蝶> </ 蝶>
&nsp; &nsp; <胸> </ 胸>
&nsp; &nsp; <戻る> < /戻る>
&nsp; &nsp; <フリースタイル> </フリースタイル>
&nsp; </stroke>
または
&nsp; <人種>
&nsp; &nsp; <100> </100>
&nsp; &nsp; <200> </200>
&nsp; </レース>
さらに、さまざまな要素をグループ化して、より複雑なデータを作成できます。
&nsp; <race=”IM”>
&nsp; &nsp; <ストローク>
&nsp; &nsp; &nsp; <蝶> </蝶 >
&nsp; &nsp; &nsp; <胸> </胸 >
&nsp; &nsp; &nsp; <戻る> < /戻る>
&nsp; &nsp; &nsp; <フリースタイル> < /フリースタイル>
&nsp; &nsp; </stroke>
&nsp; </レース>
これは、IMレースを構成する様々なストロークをすべて示すことになります。このようなデータをHTMLで整理するのは非常に困難で、情報を区別する方法がないため、不可能です。
HTMLの見出しとテキストのシステムのもう一つの欠点は、サイトの外観を制御できないことです。 <h3> や <p>といった様々なHTML要素 の外観を指定するスタイルシートを作成することはできますが、繰り返し使用されるデータに特定の外観を適用するのは容易ではありません。
例えば、サイト名のすべてのインスタンスを青色で表示したいとします。HTMLでは、これを簡単に実現する方法はありません。AcmeCoという単語を検索し 、各インスタンスに<font color=”blue”>AcmeCo </font> などのタグを追加する 必要があります 。
XMLでは、 <company> </company> というタグを作成し 、 AcmeCo のすべてのインスタンスを囲むことができ ます 。AcmeCo の外観を変更するには 、 <company> </company> 内の外観を制御するスタイルシートを記述するだけです 。この方法では、スタイルシートの1行を変更するだけで済みます 。
舞台裏
XMLに挑戦する前に、その専門用語に慣れておく必要があります。ブラウザがマークアップ言語を解釈する方法は、人が話し言葉や書き言葉を理解する方法に似ています。人が単語の列を解釈するために文法と語彙を学ぶのと同じように、ブラウザはファイルのルールと語彙を理解する能力を持っています。マークアップ言語の場合、ブラウザが何を読み取り、理解するかは、ブラウザを開発する企業によって決まります。
幸いなことに、これらの企業はブラウザが理解できる文法や語彙を自ら発明する必要はありません。ワールド・ワイド・ウェブ・コンソーシアム(W3C)が既にそれを実現しています。W3Cは、ウェブにおける統治機関として最も近い存在です。インターネットに接続されたコンピュータが認識し、実装できなければならない技術プロトコルを決定します。W3Cの勧告は、マークアップ言語を構成する文法と語彙がどうあるべきかを概説しています。
ブラウザがXML文書を認識するには、W3Cの4つの勧告を理解している必要があります。これらの勧告は連携してXMLページをレンダリングします。これらの勧告をすべて満たさずにXMLを記述しようとすると、コードは正常に動作しません。
XML は マークアップ言語の文法であり、サイトのコンテンツを整理して表示するさまざまな種類の言語を記述する際に従う一般的なガイドラインです。
XMLリンク言語(XLink) ハイパーリンクはWebの核となる部分です。XLinkはハイパーリンクの動作を規定したW3C勧告です。つまり、文書内でハイパーリンクを見つけた際にブラウザが行うべき動作を指示するものです。
XML 拡張ポインタ表記法 (XPointer) XLink がリンクの動作を規定するのに対し、XPointer はリンクに含まれる情報を指定します。ハイパーリンクは単にドキュメントのアドレスを指し示すだけで、実際には情報を含んでいません。XPointer は、ドキュメント内の他のコンテンツに対する特定のリンクの役割について、非常に具体的な情報を追加する手段を提供します。例えば、ナビゲーションバーのリンクは、特定のアドレスに加えて、どのページを指すかを指定できるようになりました。これにより、サイト全体のハイパーリンクをより簡単に追跡し、変更できるようになります。数千ページにわたる特定のハイパーリンクアドレスを変更する代わりに、一度変更するだけで、他のリンクはすべて変更された情報に基づいてリダイレクトされます。
私にはギリシャ語のように聞こえる用語は英語ですが、XMLの専門用語をすべて理解するのは難しいかもしれません。当社の用語集は、難解な用語と専門的な用語を区別するのに役立ちます。 | |
| 名前 | 意味 |
| データ | エンティティを記述する2種類の情報、つまり文字とマークアップ。文字データはエンティティの内容を説明し、マークアップデータはエンティティの論理構造(つまり、エンティティがどこに収まるか)を説明します。 |
| 文書型定義(DTD) | 文書内のコンテンツ構造と属性を記述する正式な定義を含むファイル。DTDは、様々なタグ(要素とも呼ばれる)にどのような名前が付けられるか、要素の出現頻度、そして様々な要素がどのように組み合わされるかを規定します。 |
| DTDなし | DTDなしで作成されたファイル。DTDの作成は複雑で時間のかかる作業になることが多いため、XMLはDTDなしでも動作します。 |
| 要素 | マークアップ言語の構造とコンテンツを構成する要素。例えば、 <link> は 異なるドキュメント間の関係性を示す要素です。 |
| 実在物 | 広く使われている用語で、複数の定義があります。エンティティは通常、ドキュメントのDTDにコード化されます。エンティティは、頻繁に参照されるデータにニックネームを設定するなど、繰り返し実行されるタスクを実行できます。毎回「Go to Macworld.com」と入力する代わりに、 <!ENTITY mw “Go to Macworld.com”>のようなエンティティを作成できます 。 |
| スタンドアロン文書宣言(SDD) | XMLドキュメントにDTDがない場合、それを読み取るアプリケーションにSDDであることを通知する必要があります。XML読み取りアプリケーションにドキュメントがDTDなしの状態であることを通知するには、対象のXMLドキュメントにSDDを含める必要があります。 |
| 標準汎用マークアップ言語 (SGML) | 電子文書の構造と内容の記述規則を定める国際標準。SGMLはXMLとHTMLの両方を生み出しました。方言の違いが教科書の英語を変化させるのと同様に、これらのマークアップ言語は変種と見なされます。 |
| XSL | Extensible Stylesheet Language は、XML ドキュメント内の項目の視覚的なスタイルを指定するための XML ベースの言語です。 |
Extensible Style Language (XSL) XML文書はスタイルシートによって制御されます。問題は、どの種類のスタイルシートを使用するかだけです。スタイルシート市場に新しく登場したのが、XML文書向けに特別に作成されたXMLベースの勧告であるExtensible Style Languageです。XSLとCSS(Cascading Style Sheets - 詳細については、「Reconcilable Differences」( How-to 、2000年9月号)を参照)の最大の違いは、スタイルシートの記述に使用される言語にあります。XSLはXMLベースですが、CSSはそうではありません。
XLink、XPointer、XSLはXML構文を用いて記述され、これら3つの異なるプロトコルはいずれも典型的なXML Webページの構築に役立ちます。XSLはページの外観を決定し、XLinkとXPointerはページ上のリンクの動作を決定します。ページのコンテンツはXML文書型定義(DTD)を用いて構成され、マークアップされます。
DTDが欲しい
4つのプロトコルは構成要素であり、それら全てを動かすのがDTDです。XMLがマークアップ言語の文法だとすれば、DTDはマークアップ言語の辞書とスタイルガイドの役割を果たします。DTDは、XMLベースの文書の用語、各用語の具体的な詳細、そして用語同士の関係を定義します。以下のDTDの抜粋は、シェイクスピアの戯曲の書式設定用に設計されたマークアップ言語に共通する要素を示しています。
<!ELEMENT SPEECH (スピーカー+, (行 | ステージディレクトリ | 小見出し)+)>
<!要素スピーカー (#PCDATA)>
<!要素行 (#PCDATA | STAGEDIR)*>
<!要素ステージディレクトリ (#PCDATA)>
識別される要素は、登場人物がセリフを言うときに使用する speech、セリフを話す役の登場人物を識別するために使用する speaker、セリフの各行を指定する line、そしてセリフの指示を指示する stagedir です。例からわかるように、要素は互いにネストできます。
XMLでサイトを開発する最大のメリットの一つは、顧客が作成したDTDを用いて独自の論理データ構造を構築できることですが、もう一つのメリットは、異なる標準DTDを使用できることです。これらのDTDは、業種特有のもの(会計士向けに特別に考案されたマークアップタグ群など)や、既に確立されているコンテンツ整理方法など、様々な用途に利用できます。例えば、Jon Bosakはシェイクスピア劇用のDTDを作成し、登場人物とそのセリフを表す文法を提供しています(https://metalab.unc.edu/bosak/xml/eg/shaks200.zip)。
XMLについてもっと知るXML の知識を次のレベルに引き上げたいですか? まずは、これらの有益な Web リソースから始めましょう。 | ||
| 名前 | URL | 何をするのか |
| XML.com | https://www.xml.com | XMLの最新動向に関心のある方は、このURLを保存してください。製品ニュースから初心者向けチュートリアルまで、あらゆる情報が掲載されているこのサイトには、XMLの達人によるコラムやハウツー記事も掲載されています。 |
| XMLソフトウェア | https://www.xmlsoftware.com | XMLを自分で試してみたい場合は、XMLをレンダリングおよび変換できるブラウザとツールがあると便利です。XML中心のアプリケーションの完全なコレクションをご覧ください。 |
| XMLカバーページ | https://www.oasis-open.org/cover/sgmlnew.html | XML 関連の最新ニュース (最新の XML 関連の W3C 勧告の進捗状況の追跡から、新しく立ち上げられた XML サイトまで) は、このサイトにすべて掲載されています。 |
DTDは、XML文書やXMLサイトにおける「ルール」を提供する上で極めて重要です。私たちはまだHTMLの世界にいるため、ほとんどのWeb文書はHTML DTD(そもそもDTDが存在する場合)と、マークアップタグを整理するための一般的な構文を持っています。では、Webページをある種類のマークアップ言語から別の種類のマークアップ言語に移行するにはどうすればよいでしょうか?
ミッシングリンク
ウェブサイトのマークアップ言語をHTMLからより高度なXMLへ変更することは、進化の一歩です。拡張HTML(XHTML)は、HTMLの限られた語彙とXMLのデータ構成機能を融合しています。この移行を行うには、いくつかの簡単なフォーマットルールに従う必要があります。

すべてのマークアップは小文字のタグでなければなりません:
<h1> マイページタイトル </h1>

すべての属性は引用符で囲む必要があります。
<body bgcolor=”#FFFFFF”>

すべての要素には開始タグと終了タグが必要です。
<li>リスト項目 </li>

すべてのドキュメント には DTD が必要です 。XHTML 作成者は、W3C の Web サイト ( https://www.w3.org ) でホストされている 3 つの異なる XHTML DTD から選択できます。
ドキュメントに DTD を添付するには、ドキュメントの先頭に doctype 宣言と呼ばれるステートメントが必要です。これは、ドキュメントが使用する DTD の種類と、その DTD がどこにあるかを示します。
たとえば、厳密な doctype 宣言 (厳密な XHTML を使用していることを前提としています) をドキュメントに含めるには、次の行を一番上に配置します。
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Strict//EN” “http://www.w3.org/TR/xhtml1/DTD/ strict.dtd”>
移行型のDOCTYPE宣言は最も柔軟性が高く、CSS非対応ブラウザでもサイトを表示できるようにしたい場合に使用します。ウェブサイトのレイアウトにテーブルを使用している場合は、以下のDOCTYPE宣言を使用することをお勧めします。
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/transitional.dtd”>
フレーム セット 宣言は、フレームを含むドキュメントを作成する場合に使用します。構文は次のとおりです。
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Frameset//EN” “http://www.w3.org/TR/xhtml1/DTD/frameset.dtd”>
サイトをXHTMLに変換したら、XML DTDを使用して、定義済みのマークアップタグを通じてサイトのコンテンツの構成方法を調整できます。DTD作成初心者の方は、www.dtd.comをご覧ください。広告からオントロジー、旅行まで、あらゆる分野向けに設計されたDTDが整理されたディレクトリが見つかります。また、XMLをコンテンツに統合しているWebサイトのリストは、XMLTree ( https://www.xmltree.com ) でご覧いただけます。
XMLの今後
サイトを HTML から XML に変換する計画を立てたくなりますが、実際的な作業に頭を悩ませてしまうことがよくあります。特定のマークアップ言語を開発するのはプロセスの一部に過ぎません。既存の HTML コンテンツを、より構造化された XML マークアップにマッピングする方法も考えなければなりません。さらに、学習曲線も存在します。多くの Web 開発者は、長年頻繁に HTML を使用しているため、HTML には精通しています。しかし、XML と、XML で Web サイトを開発するために使用できるツールに同じくらい精通するには、練習が必要です。しかし、1 年もすれば、さまざまな DTD や XML ベースのマークアップ言語に基づいた XML ベースの Web サイトを簡単に構築できるようになるはずです。そして最終的には、コンテンツを 見たい人 全員に届けるのが、はるかに容易になるかもしれません。
LISA SCHMEISER は Macworld.com のシニア編集者です。