基礎理論 - 2.アルゴリズムとプログラミング - 5.その他の言語 - 1.マークアップ言語

Last Update : January 02 2021 16:00:18

     

a. HTML

HTML とは、HyperText Markup Language の頭文字をとったものです。意味は、「ハイパーテキストのための、文書に目印を付ける方法を定めた文法上の約束」ということになります。

  • HyperText : ハイパーテキストでは、文書を読んでいる途中で、ある語句について関連する文献を読みたいと思ったとき、その語句からダイレクトに関連文献を呼び出すという機能を持っています。このように文書のある部分と別の文書を「関連づける」ことをハイパーリンク(あるいは単にリンク)といい、その機能を持つ文書のことを「ハイパーテキスト」と呼んでいます。
  • Markup : マークアップとは、普通の文書に目印を付ける(マークアップする)ことで、その部分が文書中でどんな働きをしているか(見出しなのか、段落なのかなど)をはっきりさせようという考えです。
  • Language : これは、英語とか仏語とか、あるいはプログラミング言語(*)などの「言語」というよりも、このマークアップをどんなルールで行うかをきちんと決めておくための約束、つまり文法という程度の意味にとらえたほうが良いでしょう。

HTML は文書の論理構造や見栄えなどを記述するために使用される。また、文書の中に画像や音声、動画、他の文書へのハイパーリンクなどを埋め込むこともできる。
HTML は文書の構造を分かりやすくするため、その内容を「要素」という単位(パーツ)でとらえ、それぞれを「タグ」という記号で識別する仕組みです。要素の前に開始タグ、要素の後ろに終了タグを配置し、要素をわかりやすく定義している。
HTML で記述された文書を閲覧するには通常Webブラウザを使用する。ブラウザは HTML データの中からこうした目印を探し出し、どの部分が見出しでどれが段落であるかを識別して、適切なレイアウトで表現する。しかし、HTML 文書はテキスト文書の一種であるため、テキストエディタでHTML文書を開き、タグごとテキスト文書として読み書きすることも可能である。
HTML はもともとSGMLの部分集合として策定されたが、現在は SGML の目的とはかなり異なる、独自の進化を遂げるに至っている。
HTML は本来文章の論理構造を記述する言語であったが、主に Web ブラウザメーカーによる度重なる拡張の結果、単なる見栄えを記述するタグが大量に取り込まれた。しかし、HTML 4.0 では文書の論理構造を記述するという本来の目的に立ち返り、見栄えの記述は CSS を使って行なうように改められた。
現在は、HTML を XML に準拠した仕様になるよう改良した XHTML が W3C 勧告として公開されている(最新版は XHTML 1.1)。W3C の仕様策定の主軸は既に XHTML に移行しており、今後は XHTML が HTML に代わり、Web ページ記述言語として徐々に浸透していくものと考えられている。

SGML
SGML( Standard Generatized Markup Language :標準一般化マーク付け言語)は、機種や装置に依存しない、多目的な文書交換を行うための国際規格です。ISOにより規格化された。
文書をDTD(Document Type Definition、文書型定義)を使って定義し、文書の論理構造、意味構造を記述することができる。

DTD
Document Type Definition(文書型定義、DTD)とは、マークアップ言語 SGML および XML において、文書構造(文書型)を定義するためのスキーマ言語の一つである。
DTDは、要素型宣言、属性リスト宣言、エンティティ宣言(または、実体参照宣言)、記法宣言により構成される。
SGML や XML で文書を記述する際、その文書中でどのようなタグや属性が使われているかを定義したもの。SGML では文書は必ず DTD に従って作成される必要があるが、XML では DTD は必ずしも必要ではない。

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE 在庫データ[
    <!ELEMENT 在庫データ (商品)>
    <!ELEMENT 商品 (名前, 個数)>
    <!ELEMENT 名前 (#PCDATA)>
    <!ELEMENT 個数 (#PCDATA)>
]>

<在庫データ>
    <商品>
        <名前>シャープペン</名前>
        <個数>15</個数>
    </商品>
</在庫データ>

スキーマ言語
マークアップ言語で文書を作成するときに、マークアップ言語自体を定義するメタ言語のこと。
マークアップ言語で文書の構造化を行う場合に文書にどのような要素が使われているかスキーマ言語で定義する。
メタ言語の定義は、DTD や XML Schema でおこなう。

タグ
スキーマ言語で定義されている見出しや段落など文章を構成する要素を示す時に利用する記号をタグという。
文章を構成する要素の前後をタグで囲む。開始位置を示すのが開始タグ、終了位置を示すのが終了タグという。


b. XML

XML では利用者が自由にタグを定義でき、文書中の文字列に意味付けができる言語構造を持っており、HTML では扱えない文書構造を定義することによって、プログラムで自在に XML データを情報処理できるというメリットがある。
XML により統一的な記法を用いながら独自の意味や構造を持ったマークアップ言語を作成することができるため、ソフトウェア間の通信・情報交換に用いるデータ形式や、様々な種類のデータを保存するためのファイルフォーマットなどの定義に使われている。

DOM
DOM は Document Object Model の略で、HTML や XML で記述された各要素を取り扱うための標準インタフェースとして1998年に W3C によって勧告されました。HTML 文書や XML 文書をアプリケーションから利用するための API である。
DOM は、XML 文書を「DOM ツリー」と呼ばれるツリー構造として扱う。そのため、XML パーサ(XML Parserは、XML文書を読み込み、その XML 文書の構造を解析(パース)する)が XML 文書全体を読み込んだ後でなければ、文書内のデータにアクセスすることができない。また、DOM ツリーは通常、メモリ上に展開されるため、大規模な XML 文書を処理する場合には、その分メモリ容量も要求される。その代わり、DOM を利用すれば、XML 文書内のデータの順番に関係なくアクセスできる。

SOAP
SOAP とは、Simple Object Access Protocol の略で、XML をベースとしたメッセージ交換のためのプロトコル仕様です。
SOAP は、HTTP や SMTP といったプロトコルの上位に位置します。そして、そのパケットの中で、オブジェクト呼び出しに必要な XML メッセージの交換を行うためのプロトコルです。SOAP 自身は、HTTP や SMTP といった下位プロトコルには非依存です。どんなプロトコルであっても、SOAP のメッセージを送信、もしくは受け取ることができ、そしてその内容をシステムが解釈できれば、問題ないとされています。
SOAP が、単純に XML 文書を HTTP や SMTP で送るのともっとも違う点は、XML 文書に対してエンベロープと呼ばれる付加情報を追加できる点です。これによって、オブジェクトへの宛先、あるいは必要に応じてメッセージIDなどの付帯情報を自由に付加できる点です。

SVG
World Wide Web Consortium (W3C) が提唱する、2 次元の Web グラフィックス用の XML ベースの言語です。
SVG の特徴としては次のような点があげられます。

  • XML形式の文書でグラフィックを表現できるため、エディタとブラウザさえあれば開発できる
  • ベクター画像なので拡大・縮小が容易である
  • 画像の変更を XML 文書の変更として行えるため、ラスター画像の変更よりも容易な場合がある
  • XML 形式なので SVG 文書をパース、生成するプログラムが書きやすい(DOM APIを利用できるため独自のパーサーやジェネレータを作る必要がない)

SAX
SAX (The Simple API for XML) は、、アプリケーションソフトが、XML 文書の解釈・検証を行なう「 XML パーサ 」というプログラムを利用する際に使う利用手順( API )の標準の一つ。
SAX は DOM と異なり、文書を先頭から順に読み込んでいき、そこで発生したイベントを経由して情報をアプリケーションプログラムに伝達する。DOM の場合は XML 文書全体の構文解析が終了し、DOM ツリーができるまではアプリケーションプログラムは何の情報も得ることはできないが、SAX の場合は解析中にわかったことから順次伝達するため、構文解析の終了まで待たずに処理を開始できる。 そのため、どんなに大きなXML文書を処理するときでも、メモリの使用量はそれほど負担にならず、処理も一般に高速だという利点がある。
その反面、文書の構造を自由にたどれないため、処理の柔軟さに劣り、複雑な処理には向かないと言われる。

XML Schema
XML Schema(XML スキーマ)は、XML 文書の論理的構造を定義する為に開発されたスキーマ言語の一つ。現在、W3C が開発・標準化にあたっている。
元々 XML のスキーマ言語としては SGML 用のスキーマ言語である DTD が使われていたが、要素のデータ型が定義できない、文法が XML と全く異なっている等、XML では使いづらい面があった。そこでマイクロソフトの「XML Data」や CommerceOne 社の「SOX」等の提案を受けた W3C が、1998年11月に XML Schema の仕様策定を始めた。
XML Schema 自体が XML により記述される仕様となっていること、データ型や XML 名前空間の定義が扱えることから DTD よりも XML に適したスキーマ言語となっている。しかし、複数の業界有力企業が仕様の策定に参加して、各社の思惑が絡み合い、あまりに多くの機能を取り込んだ為に、標準化は難航し、複雑な仕様となってしまっている。


c. XHTML

XHTML とは、Web ページを記述するためによく使われる HTML を、XML に適合するように定義し直したマークアップ言語。W3C が仕様策定を行っている。
もともと HTML は XML の親にあたる SGML から派生した言語で、Web ブラウザメーカー主導で独自の拡張が続いてきた。このため、HTML は XML とは一部整合性を欠く言語仕様となっているが、両者の違いはある程度吸収できる範囲のものであるため、従来の Web ブラウザでも問題なく見られ、かつ XML に準拠した文書を作成する言語仕様として XHTML が作成された。
HTML を XML 準拠のものに更新した理由として、インターネットをはじめとしたオンラインでのデータの送受信にXMLが使用されることを想定し、HTML 文書も XML 処理系で統一的に扱える環境を整える必要があったことが挙げられている。

XHTML Basic
携帯電話や携帯情報端末向けの、XHTML の部分集合規格。HTML や XHTML と同様、W3C によって勧告されている。
もともとパソコン向けの仕様であった HTML は、パソコンとブラウザの高機能化に伴いどんどん機能が拡張され、「重たい」仕様になってしまった。
このため、インターネット技術が携帯電話や携帯情報端末、ゲーム機などさまざまな端末に移植されるにつれて、Compact HTMLやWMLなど独自の軽量な言語が生まれ、同じコンテンツでも複数の言語でページを作成しなくてはいけなくなった。
こうした煩雑さを解消するため、環境ごとにばらばらの HTML を用意するのではなく、共通の基盤として利用できる HTML(XHTML) 仕様を定め、モジュールを使って必要部分だけ環境に特化した機能を取り込めるようにする方法として、XHTML Basic が誕生した。
XHTML Basic は必要最小限のモジュールだけで構成されているので、各端末の機能を生かすために、XHTML Basic を元に独自の拡張を施したマークアップ言語を設計するのが現実的である。
このため、XHTML Basic 自体は完全な共通言語とはならないが、独自の表示言語をばらばらに制定するよりは情報の共有が容易になり、コンテンツの生成・変換にかかる労力も遥かに軽減される。
もともと非パソコン端末の特性は極めて多様であり、それらを包括する仕様を定めることは現実的でなく意味がないため、このようなアプローチが最も適しているといえる。
XHTML Basic では、モジュール化された XHTML 1.0 の中から、Structure、Text、Hypertext、List、Basic Forms、Basic Tables、Image、Object、Metainformation、Link、Base などのモジュールが採用されている。
Stylesheet など一部のモジュールは含まれない ( link タグを使って外部スタイルシートを組み込むことは可能)。
また、高度なテーブル表現やテーブルの入れ子、スクリプト、ファイルのアップロード、hrタグやb、i、big、small、sub、supなど画面表示に関する仕様の一部が除かれている。


Modulation of XHTML(XHTMLのモジュール化)
XHTML1.1 は XHTML1.0 strict DTD をモジュール化により再形式化し、ブラウザだけでなくモバイル・デバイス(携帯電話など)、テレビ(テレビベースのウェブブラウザ)など多種多様な UA が利用することを想定して、一部のモジュールのみをサポートできるように、または独自に定義したモジュールを組み合わせたりと、必要な機能だけを選択できるように許可しました。
XHTML1.1 では、これまで非推奨として残されていたレイアウト的な要素を全て取り除き、文書の構成要素を小さな単位に分けて定義し、これらを組み合わせることで多様なデバイスや環境に柔軟に合わせた独自のタグセットを設計できるようにモジュール化という考えで再形式化されました。モジュールには XHTML の相互運用性の最低限の基盤となるコアモジュールに Structure(構造)モジュール, Text(テキスト)モジュール, HyperText(ハイパーテキスト)モジュール, List(リスト)モジュールなどがあります。


d. スタイルシート

CSS (Cascading Style Sheets) ともよばれ、CSS とは、Web ページのレイアウトを定義する規格。これまで、Web ページのレイアウトはHTMLを用いて記述され、HTML にはレイアウトに関する仕様が大量に取り込まれたが、これは、文書の論理構造を記述するという本来の HTML の目的に反するため、文書の視覚的構造を規定する枠組みとして CSS が新たに策定された。CSS を使うと、フォントや文字の大きさ、文字飾り、行間などの見栄えに関する情報を文書本体(及び文書の論理構造を記述した HTML )から切り離すことができ、ユーザが複数のレイアウトから適当なものを選択することができるようになる。WWW に関する標準化団体W3Cで標準化されている。

XSL ( Extensible Stylesheet Language :拡張可能なスタイルシート言語)
XSLは、XML文書に対してスタイルを設定して、画面や印刷するための書式を整えたり、組み版を行うための仕様である。
XMLのタグは情報の意味や性質を表します。情報を表現するための各タグは自由に決めることができます。そのため、HTMLのように、各タグをどのように表示するのか、ということを予め決めておくことができません。
しかし、XML文書の内容を整形して、綺麗に表示したいという要望もあるでしょう。このためには、XML文書とは別に、XML文書をどのようなルールでどのように表示するのか、という情報を与える必要があります。この役割をするのが、XSL(eXtensible Stylesheety Language)です。XSLは文書のスタイルを定義するもので、文書の構造を変換するXSLTと書式を与えるXSLFOで構成されています。XSLFOはHTMLにおけるCSSと同じような役割を果たします。




     

www.it-shikaku.jp