標準情報 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 文法

この二つを用いて作成される文法を次に示す。

<grammar 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>

</grammar>

この文法は、次のことを記述している。

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>