標準情報 TR X 0044:2001

XML正規言語記述 RELAX 名前空間 解説



この解説は,標準情報(TR)の本体及び付属書に規定・記載した事柄,並びにこれらに関連した事柄を説明するもので,標準情報(TR)の一部ではない。


1. 公表の趣旨及び経緯

1.1 公表の趣旨

XML(TR X 0008:1999)では,個別のアプリケーションの要求に応じてタグセットを設計する。タグセットの記述には,従来からDTDが用いられてきた。しかし,DTDには次の三つの問題がある。

これらの問題を解決する言語が, 市場では強く望まれており,既に幾つかの提案が出されている。RELAXは,それらの共通機能を実現する標準的な規定である。

1.2 公表の経緯

財団法人日本規格協会 情報技術標準化研究センター(INSTAC)の次世代ネットワークの標準化に関する調査研究委員会は, RELAXの調査研究を行なって,標準情報(TR)による公表の必要性を提言した。

次世代ネットワークの標準化に関する調査研究委員会は,通商産業省工業技術院(当時)からの委託を受けて,2000年度の活動として, RELAXコアの制定及び標準情報(TR)原案作成を行なった。原案は2001年3月に提出されている。


2. 審議中の検討事項

2.1 XML Schemaとの関係

W3Cは,XML Schemaという勧告を2001年5月に制定した。XML Schemaは,タグセットを記述するためのスキーマ言語である。

XML Schemaは,DTDが扱う範囲を大きく越えた野心的な規定である。したがって,実装にも採用にも長い時間を必要とする。XML Schemaのすべての機能を利用するには,SAX又はDOMの拡張も必要になる。

一方,RELAXは制定・実装が容易なことを目標としている。実際,この標準情報(TR)が発行されるときには, 既に実装が幾つか現れている。DTD相当の機能とXML Schemaの豊富なデータ型とをXMLインスタンス構文で表現し,幾つかの独自拡張を行ったものがRELAXになる。

RELAXは,DTDからXML Schemaへの移行を容易にする。RELAXは,DTDにデータ型の情報を付加したものとみなすことができ,DTDから直ちに移行できる。XML Schemaが実装されたときには,必要ならRELAXからXML Schemaに移行すればよい。

2.2 構成

名前空間は重要であるが,名前空間を必要としないアプリケーションも数多く存在する。例えば,小規模なEDIは, 名前空間なしに実現可能である。このようなアプリケーションを構築する利用者にとっては,名前空間を含んだ規定よりも,名前空間を含まない規定のほうが,単純で理解しやすい。

この理由によって,RELAXは, コア及び名前空間の二つの部分に分けて制定する。この標準情報(TR)は,複数の名前空間の混在を許すための機能を規定する。

3. 参考文献

a) RELAX公式サイト, http://www.xml.gr.jp/relax

b) RELAX利用者日本語メーリングリスト, http://www2.xml.gr.jp/1ml_main.html?MLID=relax-users-j

c) RELAX制定に関する日本語メーリングリスト, http://www2.xml.gr.jp/1ml_main.html?MLID=relax-std-j

d) RELAX開発者英語メーリングリスト,http://www.egroups.com/group/reldeve

e) W3C (World Wide Web Consortium), XML Schema Part 1, W3C Recommendation, eds. Henry Thompson, David Beech, Murray Maloney, Noah Mendelsohn, http://www.w3.org/TR/xmlschema-1. 2001

4.原案作成委員会の構成表

この標準情報(TR)の原案を作成した(財)日本規格協会 情報技術標準化研究センター(INSTAC)の次世代ネットワークの標準化に関する調査研究委員会, 作業グループ(WG3) 及びXML特別作業グループ(XML-SWG)の委員構成を, その順に次に示す。

解説表4.1 次世代ネットワークの標準化に関する調査研究委員会
氏名 所属
(委員長) 池田 克夫 京都大学
(幹事) 鯵坂 恒夫 和歌山大学
(幹事) 小町 祐史 松下電送システム株式会社
(幹事) 平山 亮 ヒューレット・パッカード日本研究所
内山 光一 株式会社東芝
久保田 靖夫 大日本印刷株式会社
黒川 利明 株式会社CSK
斎藤 伸雄 凸版印刷株式会社
二本松 勝 株式会社日立製作所
八田 勲 経済産業省産業技術環境局
藤原 洋 株式会社インターネット総合研究所
松本 充司 早稲田大学
柳町 昭夫 株式会社NHKアイテック
(事務局) 山中 正幸 財団法人日本規格協会


解説表4.2 作業グループ3(WG3)
氏名 所属
(主査) 小町 祐史 松下電送システム株式会社
(幹事) 内山 光一 株式会社東芝
稲垣 達夫 グランスフィア株式会社
奥井 康弘 株式会社日本ユニテック
海田 茂 ネクストソリューション株式会社
風間 一洋 日本電信電話株式会社
上村 圭介 国際大学グローバルコミュニケーションセンター
栗林 博 オムロン株式会社
黒川 利明 株式会社CSK
郡山 龍 株式会社アプリックス
澤田 位 財団法人日本規格協会
出葉 義治 ソニー株式会社
内藤 広志 大阪工業大学
西村 利浩 株式会社富士通
湯沢 広吉 経済産業省商務情報政策局
オブザーバ 浅利 千鶴 浅利会計事務所
オブザーバ 篠原 章夫 日本電信電話株式会社
オブザーバ 山東 滋 株式会社日立製作所
オブザーバ 萩原 崇弘 経済産業省商務情報政策局
オブザーバ 永井 裕司 経済産業省産業技術環境局
(事務局) 山中 正幸 財団法人日本規格協会


解説表4.3 XML特別作業グループ(XML-SWG)
氏名 所属
(主査) 村田 真 日本アイ・ビー・エム株式会社
今郷 詔 株式会社リコー
内山 光一 株式会社東芝
小町 祐史 松下電送システム株式会社
檜山 正幸 檜山オフィス
奥井 康弘 株式会社日本ユニテック
高橋 亨 株式会社日立製作所
川俣 晶 株式会社ピーデー
上村 圭介 国際大学グローバルコミュニケーションセンター
(事務局) 山中 正幸 財団法人日本規格協会

この標準情報(TR)の作成に際しては, 原案作成委員会委員以外の次の方々から大きな貢献をいただいた。

解説表4.4 原案作成委員会委員以外の貢献者
氏名 所属
浅海 智晴 じゃばじゃば主宰
川口 耕介 Sun Microsystems, Inc.
米倉 宏治 日本電気株式会社

5. チュートリアル

例題として,文書本体とテーブルの二つのモジュールから構成されるフレームワークを示す。この二つのモジュールは別の名前空間に属する。

5.1 文書本体モジュール

文書本体を表現するモジュールを次に示す。

<module xmlns="http://www.xml.gr.jp/xmlns/relaxCore"
    relaxCoreVersion="1.0"
    targetNamespace="urn:document">

  <interface>
    <export label="doc"/>
    <export label="para"/>
  </interface>

  <tag name="doc"/>
  <elementRule role="doc">
    <choice occurs="*">
      <ref label="para"/>
      <ref label="table" namespace="urn:table"/>
    </choice>
  </elementRule>

  <tag name="para"/>
  <elementRule role="para" type="string"/>

</module>

このモジュールは、次のことを記述している。

5.2 テーブルモジュール

テーブルモジュールを次に示す。

<module xmlns="http://www.xml.gr.jp/xmlns/relaxCore"
    relaxCoreVersion="1.0"
    targetNamespace="urn:table">

  <interface>
    <export label="table"/>
  </interface>

  <tag name="table">
    <attribute name="number" type="int"/>
  </tag>

  <elementRule role="table">
    <ref label="row" occurs="*"/>
  </elementRule>

  <tag name="row"/>
  <elementRule role="row">
    <ref label="cell" occurs="*"/>
  </elementRule>

  <tag name="cell"/>
  <elementRule role="cell">
    <ref label="para" namespace="urn:document" occurs="*"/>
  </elementRule>

</module>

このモジュールは、次のことを記述しています。

5.3 フレームワーク

この二つを用いて作成されるフレームワークを次に示す。

<framework xmlns="http://www.xml.gr.jp/xmlns/relaxNamespace"
    relaxNamespaceVersion="1.0">

  <module namespace="urn:document" location="doc.rxm"/>
  <module namespace="urn:table"  location="table.rxm"/>

  <topLevel>
    <ref label="doc" namespace="urn:document"
         xmlns="http://www.xml.gr.jp/xmlns/relaxCore"/>
  </topLevel>

</framework>

このフレームワークは、次のことを記述している。

5.4 文書例

5.1から5.3に示したフレームワーク及びモジュールに適合する文書を次に示す。この文書は,二つのテーブルをもつ。どちらのテーブルも,二つの段落を含む。テーブル部分は名前空間urn:tableに属しており,文書及び段落部分は,名前空間urn:documentに属している。

<{urn:document}doc>
  <{urn:document}para>this is a para</{urn:document}para>
  <{urn:table}table number="1">
    <{urn:table}row>
      <{urn:table}cell>
        <{urn:document}para>1st para</{urn:document}para>
        <{urn:document}para>2nd para</{urn:document}para>
      </{urn:table}cell>
    </{urn:table}row>
  </{urn:table}table>
  <{urn:table}table number="2">
    <{urn:table}row>
      <{urn:table}cell>
        <{urn:document}para>3rd para</{urn:document}para>
        <{urn:document}para>4th para</{urn:document}para>
      </{urn:table}cell>
    </{urn:table}row>
  </{urn:table}table>
</{urn:document}doc>