XKP GAIJI
Exchange Specification
XKP GAIJI交換仕様書
第1.0版
2000年7月28日
拡張漢字処理協議会
仕様改訂記録
Version 1.0 2000年7月28日
本仕様は拡張漢字処理協議会によるもので、情報提供のみを目的に供されるものであり、予告なしに変更されることがある。 拡張漢字処理協議会は、明示していると否とにかかわらず、この仕様の使用に起因しあるいは関連して生ずるいかなる損害に対しても、なんら責任あるいは義務を負わない。
©拡張漢字処理協議会
*Microsoft, WindowsおよびWindows NTは米国Microsoft Corporationの米国およびその他の国における登録商標です。
*Windowsの正式名称はMicrosoft Windows Operating Systemです。
*XKPは拡張漢字処理協議会の商標です。
目次
1. はじめに........................................................................................ 3
1.1. 背景............................................................................................................................................. 3
1.2. 当仕様書の位置付けと目的............................................................................................................. 5
1.3. 当仕様書の構造............................................................................................................................. 5
1.4. 当仕様書の配布、公開、問い合わせおよび回答............................................................................... 7
1.4.1. 配布...................................................................................................................................... 7
1.4.2. 公開...................................................................................................................................... 7
1.4.3. 問い合わせと回答................................................................................................................... 7
2. 用語の定義...................................................................................... 9
3. 拡張可能なGAIJI参照言語(Extensible GAIJI Reference)...................... 9
3.1. 機能............................................................................................................................................. 9
3.2. パブリックGAIJI名 (PGN=Public GAIJI Name)...................................................................... 9
3.3. GAIJI参照文書定義..................................................................................................................... 10
4. 拡張可能なGAIJI情報言語(Extensible GAIJI Information)................. 10
4.1. 機能........................................................................................................................................... 10
4.2. 動作モデル.................................................................................................................................. 10
4.3. XGIサーバ................................................................................................................................. 11
4.4. XGIサーバのIPアドレスとホスト名............................................................................................ 11
4.5. httpによる情報取得................................................................................................................. 11
4.6. 汎用GAIJI情報交換モジュール.................................................................................................... 11
4.6.1. ・ <definition>要素........................................................................................................... 11
4.6.2. ・ <annotation>要素......................................................................................................... 12
4.6.3. ・ <visual>要素................................................................................................................. 12
4.6.4. ・ <owner>要素................................................................................................................ 12
4.6.5. ・ <img>要素.................................................................................................................... 12
4.6.6. ・ <font>要素.................................................................................................................... 13
4.7. 日本語入力支援情報モジュール.................................................................................................... 13
4.7.1. ・ <inputAssist>要素......................................................................................................... 13
4.7.2. ・ <yomi>要素.................................................................................................................. 13
4.7.3. ・ <busyu>要素................................................................................................................. 13
4.7.4. ・ <kakusu>要素............................................................................................................... 13
4.7.5. ・ <buhin>要素................................................................................................................. 13
5. 付録 (参考).................................................................................... 14
5.1. 拡張可能なGAIJI参照言語によるサンプルデータ.......................................................................... 14
5.2. 拡張可能なGAIJI情報言語によるサンプルデータ.......................................................................... 15
1990年代のパーソナルコンピュータの劇的な性能向上により、各種業務システムのメインフレームからパーソナルコンピュータへの置き換え、あるいは、システムの一部としてパーソナルコンピュータの利用が著しく増加した。これに伴い、メインフレームで使用可能であった符号化文字集合に含まれる文字がパーソナルコンピュータ上ですべて再現できないことが問題として浮上した。この問題を解決するために、拡張漢字処理協議会(XKP協議会)は1995年4月21日に設立された。XKP協議会は業務システムに必要とされる文字の取り扱い機能について研究を行い、その結果をWindows NT拡張漢字仕様書(XKP)として公開した。XKPは、国際標準文字集合であるUnicodeの技術をベースに、これを採用したオペレーティングシステムであるWindows NT上で稼働するために、APIおよび、OLEコンポーネントソフトウェアの標準を定めたオープンな標準仕様である。XKP第1.0版は1995年8月22日に、そして、現在最新のXKP第2.1版は1998年3月6日に公開した。XKPは主に人名漢字を多数使用する自治体向けのシステム構築に広く利用され、一つのデファクトスタンダードとなっている。
しかしながら、時代の変化速度は非常に速く、Internetを始めとするネットワーク技術が急速に普及し、Internetやその技術を用いたIntranet、そしてその上で使用されるWorld Wide Webの世界がパーソナルコンピュータにおいても日常化した。このような状況から、従来のXKPとは別個に、WWWの標準規格に含まれない多数の文字を扱いたいというニーズが高まった。これを受けて、XKP協議会は、WWW上の外字処理に関する研究を進めた。また、XKPに含まれる情報交換用フォーマットであるSEF(Static Exchange Format)は、急速に普及したInternetを充分に配慮したものではなく、使い勝手の面で問題を残していた。よりInternetに適合したSEFの後継フォーマットの策定が課題として残され、これに関する研究も行われた。
これらの研究結果より、「XKP GAIJI交換仕様書(XKP GAIJI Exchange Specification)」を作成し、これを公開するものである。
当協議会は、この「XKP GAIJI交換仕様書(XKP GAIJI Exchange Specification)」がInternet上での標準的ではない文字がどのような形であるかを交換する方式として普及し定着することを目指している。また、当仕様がIT革命時代の要請にも応える情報交換の為の礎石となり、内外の標準仕様としても採用されるよう、今後もますます広範な活動を続けることを予定している。
2000年6月29日現在における拡張漢字処理協議会の会員会社は次のとおりである。
|
INSエンジニアリング株式会社 |
株式会社電算 |
|
株式会社アイネス |
株式会社東計電算 |
|
株式会社アイフォー |
株式会社東芝 |
|
アジア航測株式会社 |
東芝エンジニアリング株式会社 |
|
株式会社アシスト |
東芝情報システム株式会社 |
|
株式会社アスキー・ネットワーク・テクノロジー |
東レエンジニアリング株式会社 |
|
アドビ・システムズ・ジャパン |
凸版印刷株式会社 |
|
株式会社アルゴテクノス21 |
株式会社富山富士通 |
|
株式会社アルト技研 |
株式会社ニィス |
|
アルプス電気株式会社 |
ニチメンデータシステム株式会社 |
|
イースト株式会社 |
日本NCR株式会社 |
|
伊藤忠テクノサイエンス株式会社 |
日本オラクル株式会社 |
|
株式会社イワタエンジニアリング |
日本オリベッティ株式会社 |
|
インターグラフ・インダストリー・ソリューションズ株式会社 |
日本センチュラ株式会社 |
|
インターリーフジャパン株式会社 |
株式会社日本総合研究所 |
|
インプライズ株式会社 |
日本ダイナシステム株式会社 |
|
株式会社内田洋行 |
株式会社日本データコントロール |
|
株式会社エアー |
日本電気株式会社 |
|
エー・アイ・ソフト株式会社 |
日本電気オフィスシステム株式会社 |
|
株式会社エーアイ・ネット |
日本電子計算株式会社 |
|
株式会社エーエスピー |
日本ヒューレット・パッカード株式会社 |
|
エス・アンド・アイ株式会社 |
日本ユニシス株式会社 |
|
株式会社NEC情報システムズ |
ノベル株式会社 |
|
NECソフト株式会社 |
株式会社野村総合研究所 |
|
株式会社NTTデータ |
株式会社バックス |
|
エプソンコーワ株式会社 |
株式会社PFU |
|
株式会社MRPセンター |
株式会社ビーコンインフォメーションテクノロジー |
|
株式会社オージス総研 |
株式会社ピーデー |
|
オートデスク株式会社 |
株式会社日立情報システムズ |
|
沖電気工業株式会社 |
株式会社日立製作所 |
|
オムロン株式会社 |
富士ゼロックス株式会社 |
|
株式会社学習研究社 |
富士ゼロックスシステムサービス株式会社 |
|
漢英字典刊行会 |
富士ソフトABC株式会社 |
|
株式会社管理工学研究所 |
富士通株式会社 |
|
キヤノン株式会社 |
株式会社富士通金融システムズ |
|
京都電子計算株式会社 |
文化オリエント株式会社 |
|
株式会社建築システム |
株式会社ベネッセコーポレーション |
|
コンパックコンピュータ株式会社 |
株式会社ベントレー・システムズ |
|
サイバネットシステム株式会社 |
マイクロソフト株式会社 |
|
株式会社産能コンサルティング |
丸紅エレクトロニクス株式会社 |
|
三洋電機ソフトウェア株式会社 |
三菱電機株式会社 |
|
株式会社シーエーシー |
株式会社モトヤ |
|
株式会社CSK |
株式会社モリサワ |
|
株式会社システムコンサルタント |
株式会社山田洋行 |
|
シノックス株式会社 |
有限会社ラインラボ |
|
株式会社写研 |
株式会社リコー |
|
株式会社ジャストシステム |
株式会社両備システムズ |
|
シャチハタ工業株式会社 |
株式会社両毛システムズ |
|
JUKI株式会社 |
リョービイマジクス株式会社 |
|
株式会社数理計画 |
株式会社レムトス |
|
スカイ・シンク・システム株式会社 |
ロイタージャパン株式会社 |
|
住友セメントシステム開発株式会社 |
ワールドビジネスセンター株式会社 |
|
セントラルシステムズ株式会社 |
|
|
ソウルシステム株式会社 |
|
|
株式会社ソフトウェア |
(以上119社) |
|
株式会社ソフトボート |
|
|
株式会社ダイテック |
|
|
ダイナラブ・ジャパン株式会社 |
|
|
ダイニック株式会社 |
|
|
株式会社タイプバンク |
|
|
蝶理情報システム株式会社 |
|
|
株式会社TKC |
|
|
TDCソフトウェアエンジニアリング株式会社 |
|
|
帝人株式会社 |
|
|
株式会社テクノコア |
|
|
テニック株式会社 |
|
|
株式会社テルヤ |
|
当仕様書は、Internet/Intranetにおける多様な文字の取り扱いを円滑に行なうことを目的としたものである。当仕様書では、文字の拡張をGAIJIという名称で呼び(2.用語の定義参照)、従来の外字よりも広い概念を扱うものとする。
従来のXKPとの比較という意味では、以下の2つの目的を持つ。
1) 従来のXKPに含まれる情報交換用フォーマットSEF(Static Exchange Format)の、よりInternet/Intranet向きの後継フォーマットの提供
2) 強力な拡張漢字処理技術のInternet/Intranetへの提供
これらを実現するために、基盤技術として、WWW関連規格の制定作業を行っているWorld Wide Web Consortiumの制定したメタ言語、Extensible Markup Language (XML) 1.0を採用している。
XMLは、XMLで作られた複数の言語のタグを、一つの文書に共存させることを可能としている点に特徴がある。このため、GAIJI拡張に関する機能のみを持った言語を定義するだけで、他のXMLベースの各種業務用情報交換言語と併用することにより、強力な外字機能を用意に実現できる。これは、Biztalkサイトなどが蓄積提供するXMLベースの多数の各種言語へのGAIJI拡張が容易に可能であることを意味する。
この事実は、当仕様が単なるXKPの改良という枠組みを超えて、幅広い応用分野に適合する大きな可能性を示している。この観点から、当仕様が目的とするものは、以下のようなものである。
1) XMLベースの任意の言語にGAIJI拡張を施す言語を提供する
2) GAIJIに関する情報を交換する標準言語を提供する
“1)”の役割を担うために作成された言語が「拡張可能なGAIJI参照言語(Extensible GAIJI Reference)」であり、”2)”の役割を担うために作成された言語が「拡張可能なGAIJI情報仕様書言語(Extensible GAIJI Information)」である。
このような構造を取ったために、従来のXKPのSEFに対応する直接の後継言語は存在しない。SEFの機能は、3つに分割された。1つは、文字列中にあるGAIJIを明示的に記述する機能であるが、これは「拡張可能なGAIJI参照言語(Extensible GAIJI Reference)」によって置き換えられる。別の1つは、GAIJIのフォントや読みなどの入力補助情報であるが、これは「拡張可能なGAIJI情報言語(Extensible GAIJI Information)」によって置き換えられる。最後は、文字列本体を保持する機能であるが、これはXMLベースの何らかの適切な言語を併用することを想定し、特に特定の言語や機能は規定しない。
当仕様書は、「拡張可能なGAIJI参照言語(Extensible
GAIJI Reference)」「拡張可能なGAIJI情報仕様書言語(Extensible
GAIJI Information)」という2つの言語について解説を行っている。「拡張可能なGAIJI情報仕様書言語(Extensible GAIJI Information)」は更に「汎用GAIJI情報交換モジュール」「日本語入力支援情報モジュール」という2つの独立したモジュールから成立している。
これらはそれぞれ独立して使用することもできるし、組み合わせて使用することもできる。

当仕様書の配布、公開、問い合わせおよび回答に関する方法に関しては、次の通り対応します。対応に関しては、予告なくその方法が変更される場合があります。
当仕様書の配布は、協議会事務局より各会員に対し、印刷物および電子情報(Microsoft Wordのファイル)にて配布致します。
当仕様書の公開は、協議会から非会員に対しては行ないません。協議会事務局より各会員に対して配布された仕様書を各会員が非会員に対して各会員の責任において配布することを妨げません。
また、Internet ( http://www.xkp.or.jp/ )を通じて、一般にも公開致します。
仕様に関する意見・提案
仕様に関しての意見および提案は、協議会事務局にて全て受け付けます。但し、それに関する回答および報告は保証致しかねます。問い合わせ先は下記の方法に従ってください。
仕様書の技術的内容に関する解釈上の問い合わせ
会員からの問い合わせに限り、協議会事務局にて文書あるいは電子メールにより受け付けます。下記の問い合わせ方法を参照してください。非会員の方は、会員を通してご質問ください。
仕様書の内容に関するその他の問い合わせ
解釈上の問題以外の技術的問い合わせ(たとえば、XMLの仕様そのものに関する質問、UnicodeやJISのコード体系に関する質問、マイクロソフト社の製品そのものに関する質問等々)に関しては、当協議会では基本的に受け付けられません。
問い合わせ方法
問い合わせは、下記の協議会事務局宛に文書あるいは電子メールにより行なってください。当仕様書に関する問い合わせは、仕様書を配布した各会員が責任を持って対処してください。
(電子メール)
xkpmaster@j21.com
* 注 : “件名”(または“subject”)の欄に、“XKP Question”と必ず記載してください。
(郵送)
拡張漢字処理協議会 事務局 宛
〒151-8583 東京都渋谷区代々木2丁目2番1号 小田急サザンタワー
マイクロソフト株式会社 インダストリーソリューションマーケティング部内
* 注 : XKP GAIJI交換仕様書に関する問い合わせである旨明記してください。
回答方法
基本的に、回答期日の連絡は致しません。問い合わせがあった時点より最も早く開催される技術部会の会議において、問い合わせに関する回答内容を検討し、協議会事務局より回答します。回答は、基本的に電子メールにより送られます。
本仕様書では、テキスト中において文字であるかのようにレイアウトされる画像データを、GAIJIと表記する。GAIJIは、”General Absolute Incalculable Jargon Images”の頭文字である。
参考: GAIJIは、厳密な意味での外字と異なる。厳密な意味での外字は、規格内字ではない文字を示す。しかし、実際に運用されているシステムの多くは、外字機能を規格内字の異体字を示すために使用している。そのため、これらのシステムは、文字等の諸規格の規定に厳密な意味で違反している場合がある。GAIJIという用語は、この規定違反を回避するための一種のトリックである。従って、GAIJIは厳密な意味での外字の定義とは一致しないが、一般的なパソコン利用者がイメージする外字の意味に非常に近いものがある。従って、一般利用者が、GAIJIを外字のことだと理解することは、実はより正しい理解と言える。
参考: GAIJIは、文字ではなく文字の形を思い通りに示した画像を示す概念である。
参考: GAIJIは、「外字」との混同を避けるため必ずアルファベット大文字で表記する。
参考: GAIJIは、以下の目的に使用できる。
a) 使用する符号化文字集合に含まれない文字の形を画像データとして文章中に埋め込む
b) 使用する符号化文字集合に含まれる文字の形を画像データとして文章中に埋め込む
拡張可能なGAIJI参照言語(以下本言語)は、World Wide Webのための標準技術であるXML 1.0および、Namespace in XMLに準拠するXML文書にGAIJIを含めるための言語を規定する。
本言語の略称はExtensible GAIJI Referenceの略でXGRと称する。
本言語は単独で使用することはできず、必ず、何らかのXML文書定義と併用して使用する。
また、本言語が規定するGAIJI名から、実際にレイアウト、フォーマッティングに使用できる画像データやフォントに関する情報へ翻訳する手段は、拡張可能な外字情報仕様言語(Extensible GAIJI Information)にて規定される。
パブリックGAIJI名は、全世界でGAIJIを一意に指定するために使用される名前である。
パブリックGAIJI名は、二つのパートからなる。
一つはGAIJIグループ名(GAIJI Group Name)と呼ばれ、GAIJIの集合ごとに一意の名称が割り当てられる。
もう一つはGAIJI識別名(GAIJI Identify Name)と呼ばれ、特定のGAIJI集合内で一意の名称が割り当てられる。
パブリックGAIJI名は、GAIJIグループ名+1文字のピリオド+GAIJI識別名として記述される。
パブリックGAIJI名は運用に従って動的に数が増えていく。動的パブリックGAIJI名を参照する場合は、XGIシステムが提供するXGIサーバを参照する必要がある。(XGIサーバの項を参照)
GAIJIグループ名"PRIVATE"で始まる名前は、パブリックGAIJI名として割り当てることはできないものとする。これにより、"PRIVATE"で始まるGAIJIグループ名は、外部との情報交換に使用しない私用GAIJIグループ名として使用してよい。
パブリックGAIJI名では、大文字小文字は区別される。
GAIJIグループ名とGAIJI識別名は、ラテン大文字のA〜Z、スペース、ハイフンを用いて記述する。数字の0〜9を含んでも良い。
パブリックGAIJI名は、XKP協議会が管理を行う。
参考:
XGI実証実験サーバでは、エーアイ・ネットが開発した漢字辞書ソフトである「今昔文字鏡」の情報提供を試みている。以下のその仕様を示す。
・ 文字鏡に収録されている文字イメージをGAIJIとして参照することができる。
・ GAIJIグループ名は"MOJIKYO"とする。
・ GAIJI識別名は、文字鏡の文字番号を10進数で記述したものとする。名前の先頭に不必要な0は付けない。
例: MOJIKYO.3290
名前空間名は、"http://www.xkp.or.jp/GAIJI/Reference"とする。
文字列中にGAIJIを記述するために使用する。
・ <gaiji>要素
<!ELEMENT gaiji ANY>
<!ATTLIST gaiji name CDATA #REQUIRED>
GAIJIを記述する要素である。文字を記述するかわりに、この要素を記述することで、そこに文字であるかのようにレイアウトされる画像データを挿入できる。
name属性は、パブリックGAIJI名または文字列”PRIVATE”で始まるGAIJI名を指定する。
<gaiji>要素の内側には、任意のテキスト、要素を記述することができる。これらのテキスト、要素は、<gaiji>要素を解釈するアプリケーションソフトウェアはすべて無視する。<gaiji>要素を解釈しない、あるいは、<gaiji>要素を解釈できない場合は、<gaiji>要素の内側のテキストや要素を処理する。処理の内容は、本仕様と併用される文書定義に依存する。これにより、<gaiji>要素が使用できない状況下でGAIJIの代わりに使用される代替文字列や画像を挿入することができる。
例: <gaiji name="MOJIKYO.3290">吉(上が土)</gaiji>
拡張可能なGAIJI情報言語(Extensible
GAIJI Information)は、World Wide Webのための標準技術であるXML 1.0および、Namespace in
XMLの標準を用いて、拡張可能なGAIJI参照言語(Extensible
GAIJI Reference)にて規定されるGAIJIに関する各種情報を記述する方法を規定する。
本言語の略称はExtensible GAIJI Informationの略でXGIと称する。また、本言語で記述されたXML文書を、XGI文書と称する。
また、本言語で記述された情報を提供するXGIサーバの仕様に関しても合わせて規定する。
GAIJIを含むXML文書を受け取ったアプリケーションソフトウェアは、XML文書が参照しているGAIJIのパブリックGAIJI名をXML文書より抜き出す。
このパブリックGAIJI名を用いてXGIサーバに問い合わせを行なう。すると、XGI文書が返送される。
XGI文書には、GAIJIを定義する情報、GAIJIを表示する情報、GAIJIを入力するための支援情報等が含まれる。アプリケーションソフトウェアは、これらの情報の中で、必要なものを利用し、そうでない情報はすべて読み飛ばす。
GAIJIを表示するためには、XGI文書に含まれる<visual>要素を利用する。一つのXGI文書には、通常、複数の<visual>要素が含まれる。一つの<visual>要素は、フォントファイルや、画像ファイルへのリンク情報を持つ。<visual>要素で参照されるフォントファイルや画像ファイルには、様々なバリエーションがある。ファイル形式の相違、品質の相違、利用にあたって使用料の支払の有無などである。アプリケーションソフトウェアは、これらの様々な条件の中で、その時点での最善の<visual>要素を選択し、フォントファイルや画像ファイルを取得し、これを使用する。
これとは別に、明らかに同等と見なせるフォントファイル等が既にローカルシステムにインストール済である場合は、XGIサーバにアクセスすることなく、これを使用する実装を行っても良い。
XGIサーバは、XGR仕様書で規定されているプライベートGAIJIを除くすべてのGAIJIの情報を記述したXGI文書を持つ。
XGIサーバは、物理的に異なる位置に存在する複数のホストがその役割を担う。すべてのサーバは全GAIJIの情報の完全なコピーを保持する。
XGIサーバのIPアドレスは、Internet上のDNSを参照することで知ることができる。
ホスト名 gaiji0.xkp.or.jp 〜 gaiji9.xkp.or.jp の10ホスト名がXGIサーバのホスト名としてリザーブされる。
参考:
この規定は、少なくともこの10個の名前がXGIサーバ用として存在することを記述するものであり、XGIサーバの総数を10個に制限することを意図したものではない。これ以外の名前で、XGIサーバを立ち上げても良い。その場合は、情報の互換性を確保するために、他のXGIサーバと同一の内容を保持するように努めねばならない。
参考:
XGIサーバにアクセスするアプリケーションソフトウェアは、gaijiに続く1文字の数字を乱数で生成し、そのサーバにアクセスすることが推奨される。ホストが応答しない場合は、他のホスト名を試しても良い。
Internet上の標準的な転送プロトコルの一つであるhttpを用いてXGIサーバからXGI文書を取得することができる。
以下のルールでURLを組み立て、リクエストを送ることで、XGI文書が返送される。
http://"ホスト名"/XGI/"パブリックGAIJI名"
"ホスト名"には、XGIサーバのホスト名として有効なホスト名の一つを指定する。XGIサーバはバーチャルホストとして構築される可能性があり得るので、ホスト名の代わりにIPアドレスや、同じIPアドレスを持つ異なるホスト名を記述してはならない。
"パブリックGAIJI名"は、パブリックGAIJI名を記述する。その際、空白文字は"%20"とエンコード表記になることに注意が必要である。
エラー発生時の動作はすべてhttpの動作に従う。たとえば、指定されたXGI文書が存在しない場合は、httpのエラー404(Not
Found)が返る。
名前空間名は、"http://www.xkp.or.jp/GAIJI/Information"とする。
GAIJI情報の交換用フォーマットを規定する。
<!ELEMENT
definition (annotation?,visual+,inputAssist*)>
<!ATTLIST
definition name CDATA #REQUIRED
URP CDATA #IMPLIED>
一つのGAIJIに関する情報を記述する範囲を規定する。
汎用GAIJI情報交換モジュールを単体で使用する場合はルート要素となる。
name属性は、パブリックGAIJI名を指定する。
URP属性は、Unicodeに含まれる文字に対して具体的なビジュアルを指定する場合に指定する。属性の内容は、U+xxxx形式で記述されたUnicodeの文字コードである。Unicodeに含まれない文字やシンボルに関する情報を記述する場合は、URP属性を記述しない。
<!ELEMENT
annotation (documentation)*>
GAIJIに関する注釈を記述する。
・ <documentation>要素
<!ELEMENT
documentation (#PCDATA)?>
<!ATTLIST
documentation source CDATA
#IMPLIED
xml:lang
CDATA #IMPLIED >
GAIJIに関する注釈の本体を記述する。
source属性が指定された場合、source属性は注釈を記述した文書を参照するURIを含む。source属性が指定されている場合は、<documentation>要素の子のテキストは無視される。
xml:lang属性は、注釈がどのような自然言語で記述されているかを明示的に指定する。
<!ELEMENT
visual (owner,(img|font))>
<!ATTLIST
visual priority CDATA #REQUIRED
permitCopyFlag CDATA #REQUIRED>
<visual>要素は、GAIJIを表示する手段を一つ定義する。
<definition>要素は複数の<visual>要素を持つことができる。
その場合、priority属性は、優先順位を決定する手助けとなる情報を提供する。priority属性は、10進数で記述された1〜32767の範囲の整数を持つ。GAIJIを利用するアプリケーションソフトは、利用可能な<visual>要素の中で、priority属性の値が最も小さなものを選択して利用することができる(may use priority attribute)。
permitCopyFlag属性は、ファイルの自由なコピーが許可されているか否かを指定する。値は、trueまたはfalseを取る。trueの場合はimgまたはfont要素で指定されたファイルにアクセスし、これを利用してレイアウトすることができる。falseの場合は、何らかのライセンス手続きを取らねばimgまたはfont要素で指定されたファイルにアクセスすることはできない。ライセンス手続きは、それぞれのファイルの提供者と利用者の間で協議すべき問題とし、本ドキュメントでは言及しない。
<!ELEMENT
owner (#PCDATA)>
<!ATTLIST
owner mailaddress CDATA #IMPLIED>
画像データの所有者の名前を記述する。
mailaddress属性は、所有者の連絡先電子メールアドレスを記述する。
<!ELEMENT
img EMPTY>
<!ATTLIST
img src CDATA #REQUIRED>
JPEG,PNG,GIFのいずれかの形式のファイルを画像データとして使用する場合に記述する。
参考:
GIFは、過去の資産(文字鏡URLフォント)との互換性のためにサポートするものであり、利用上問題がなければPNGを用いることが望ましい。最も望ましい実装形態は、GIF, PNGの両方の画像データを用意し、それぞれのvisaul要素を並べて記述し、更に、PNGの方により小さな(より優先度の高い)priority値を指定する形である。
src属性は、画像データのURIを指定する。
カラー情報及びグレイスケール情報が含まれていてもエラーとはしないが、これらの情報はレイアウト時に利用することは義務付けない。モノクロ2値に変換した後に出力しても良い。
<!ELEMENT
font EMPTY>
<!ATTLIST
font src CDATA #REQUIRED
face CDATA #REQUIRED
codePoint CDATA #REQUIRED>
TrueType形式のファイルを画像データとして使用する場合に記述する。
src属性は、フォントファイルのURIを指定する。
face属性は、フォントに含まれるフェイス名のうち、目的のグリフを含むフェイス名を指定する。
codePointは、目的のグリフを含むUnicodeコードポイントを指定する。書式は"U+XXXX"形式とする。
名前空間名は、"http://www.xkp.or.jp/GAIJI/Japanese"とする。
日本語で利用されるGAIJIの入力を支援するための情報を記述する。
これらの情報はすべてオプションであり、GAIJI登録の際の必須項目ではない。
<!ELEMENT
inputAssist ((yomi|busyu|kakusu|buhin)*)>
入力支援情報を記述する。
<!ELEMENT
yomi (#PCDATA)>
GAIJIの「読み」を記述する。
内容は、Windows NT拡張漢字処理仕様書第2.1版の"4.7.2.9.
Yomi"に準じる。
<!ELEMENT
busyu (#PCDATA)>
GAIJIの「部首」を記述する。
内容は、Windows NT拡張漢字処理仕様書第2.1版の"4.7.2.10.
Busyu"に準じる。
<!ELEMENT
kakusu (#PCDATA)>
GAIJIの「画数」を記述する。
内容は、Windows NT拡張漢字処理仕様書第2.1版の"4.7.2.11.
Kakusu"に準じる。
<!ELEMENT
buhin (#PCDATA)>
GAIJIの「部品」を記述する。
内容は、Windows NT拡張漢字処理仕様書第2.1版の"4.7.2.13.
Buhin"に準じる。
付録に収録したサンプルデータはいずれも参考のために提供するもので、仕様の一部ではない。
以下のサンプルは、XHTML 1.0と拡張可能なGAIJI参照言語(XGR)を同時に使用して、XHTMLにGAIJI拡張された言語であるかのように記述した例である。
<?xml version="1.0"?>
<!-- 別掲のスタイルシートを指定している -->
<!-- スタイルシートを理解するWebブラウザで見ればGAIJIは解釈され表示される -->
<?xml-stylesheet
type="text/xsl" href="xhtmlplusgaiji001.xsl"?>
<!—デフォルトの名前空間をXHTMLに。プリフィクスxgrは拡張可能なGAIJi参照言語に -->
<html
xmlns="http://www.w3.org/1999/xhtml"
xmlns:xgr="http://www.xkp.or.jp/GAIJI/Reference">
<head>
<title>GAIJI
Sample 001</title>
</head>
<body>
<h1>GAIJI
Sample 001</h1>
<!--
xgr:gaiji 要素がGAIJIを指定している。要素の内容はGAIJIが処理できないときのための情報 -->
<p>私の名前は<xgr:gaiji xgr:name="MOJIKYO.65132">アカ【文字鏡番号65132】</xgr:gaiji>星太郎です。</p>
</body>
</html>
このサンプルを、HTMLに変換するためのXSLTスクリプトを以下に示す。このXSLTスクリプトは、Internet
Explorer 5.0およびマイクロソフト製May 2000版Technology Preview版XMLモジュールを使用して実行できるように記述されている。
<?xml
version="1.0"?>
<!--
XSLTスタイルシートの定義 -->
<!-- xslプリフィクスは、XSLTそのものを示す -->
<!-- xgrプリフィクスは、拡張可能な文字参照言語(XGR)を示す -->
<!--
msxmlプリフィクスは、マイクロソフトXMLパーサの独自拡張機能を示す
-->
<!--
userプリフィクスは、内部的に処理に使用する名前空間を示す -->
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0"
xmlns:xgr="http://www.xkp.or.jp/GAIJI/Reference"
xmlns:msxsl="urn:schemas-microsoft-com:xslt"
xmlns:user="http://www.piedey.co.jp/xkpsample20000704/xhtmlplusgaiji001"
>
<xsl:template
match="*|@*">
<xsl:copy><xsl:apply-templates/></xsl:copy>
</xsl:template>
<!-- このサンプルでは、発見されたxgr:gaiji要素を、img要素に置き換えて出力している -->
<!-- img要素に指定されるリンク先は、VBScriptで検索された結果となる
-->
<xsl:template
match="xgr:gaiji">
<xsl:element
name="img">
<xsl:attribute name="src"><xsl:value-of
select="user:getGAIJIImage(string(@xgr:name))" /></xsl:attribute>
</xsl:element>
</xsl:template>
<!-- 以下のスクリプトでは、XGIサーバより拡張可能な外字情報言語(XGI)データを読み出しているている
-->
<!-- このサンプルでは、シンプルに最初に発見されたimg要素の内容を結果として返している -->
<!-- しかし、これはもっとも簡易な方法であって、より良好な結果を求める場合は、 -->
<!-- 更に様々な工夫を凝らすことができる
-->
<msxsl:script
language="VBScript" implements-prefix="user">
<![CDATA[
Function
getGAIJIImage(nameOfGAIJI)
Dim serverURL,
DomObject, resultBoolValue
serverURL =
"http:// gaiji0.xkp.or.jp /XGI/"
Set DomObject =
CreateObject("Microsoft.XMLDOM")
DomObject.async
= False
resultBoolValue
= DomObject.Load(serverURL & nameOfGAIJI)
If Not
resultBoolValue Then
MsgBox
"XML文書の読み込みに失敗しました: " & serverURL &
nameOfGAIJI
Exit
Function
End If
getGAIJIImage =
walkNodes( DomObject )
End Function
Function walkNodes(elem)
Dim
i
For
i = 0 To elem.childNodes.length - 1
If elem.childNodes.Item(i).hasChildNodes() Then
dim s
s = walkNodes( elem.childNodes.Item(i) )
If len(s) > 0 then
walkNodes = s
Exit Function
End If
End If
If elem.childNodes.Item(i).nodeType = 1 _
And elem.childNodes.Item(i).nodeName = "img" Then
walkNodes = elem.childNodes.Item(i).getAttribute("src")
Exit Function
End If
Next
End Function
]]>
</msxsl:script>
</xsl:stylesheet>
<?xml
version="1.0"?>
<!-- XGIデータサンプル -->
<!--
definition要素は1個のGAIJIに対する定義を記述する -->
<!--
name属性にPublic GAIJI名を入れてどの文字のためのデータかを示す -->
<definition
xmlns="http://www.xkp.or.jp/GAIJI/Information"
name="MOJIKYO.65132">
<!-- annotation要素は注釈を記す -->
<annotation>
<documentation
xml:lang="ja">XKP技術デモンストレーション用テストデータ。文字鏡65132番</documentation>
</annotation>
<!-- visual要素は1個の表示情報を示す -->
<!-- 表示情報は複数あり得るので、priority属性等を参考に選別して使う -->
<visual priority="100"
permitCopyFlag="false">
<!-- 表示情報の所有者(権利者)に関する情報 -->
<owner
mailaddress="support@piedey.co.jp">株式会社ピーデー XKPテストデータ開発担当</owner>
<!-- 表示情報本体(画像ファイルやフォントファイル)
-->
<img
src="http://210.160.4.14/FontServer/gif24.asp?no=065132"/>
</visual>
<!-- 入力補助情報 -->
<!-- 日本語専用情報なので名前空間を分けている -->
<inputAssist
xmlns="http://www.xkp.or.jp/GAIJI/Japanese">
<yomi>あか</yomi>
</inputAssist>
</definition>