近刊情報センターのONIX日本版の問題点
話題の緊急事業には、近刊情報センター(JPO)が参加しており、ONIXを用いて書誌データを提供
することが計画されている。近刊情報センターが現在用いているデータ・送受信仕様はONIX2
がベースだが、今度の事業ではONIX3を用いることが計画されているらしい。
ONIXは、EDItEUR(European Book Sector Electronic Data Interchange Group)という
国際団体によって制定された書誌データ仕様である。近刊情報センタが用いている仕様は、
次世代書誌情報の共通化に向けた環境整備(総務省平成22年度新ICT利活用サービス創出支援事業)
の一環として構築されたものである。報告書には、「EDItEUR が国際標準として定めた ONIX
フォーマットに準拠した標準化」を図ったと記載されている。
しかし、近刊情報センター(JPO)のデータ・送受信仕様には、さまざまの問題がある。私が2011年
の6月にpublic commentとして提出したものを以下に引用する。
とても重要で、立派なお仕事だと思います。しかし、データ仕様とスキーマについて、いくつかの問題があることに気がつきました。
1) サンプルXML文書がDTD検証に通らない
2) サンプルXML文書の名前空間が違う(http://www.editeur.org/onix/2.1/referenceにすべき)
3) XML スキーマschema_ver1.01.xsdでもtarget名前空間が違う
4) サンプルXML文書がXMLスキーマ検証に通らないそもそもschema_ver1.01.xsdを日本で独自に作ることが危険です。ONIX_BookProduct_Release2.1_reference.xsdを制限する(上書き
importを用いるなどの方法あり)のほうがよいと思います。現在では、
schema_ver1.01.xsdはONIXではないものを作り出しています。実際に蓄積されるONIX XML文書がどうなっているのかは分かりませんが、
このままではONIXを実装する他のソフトウェアにかけても動かないのでは
ないでしょうか。
2011年の早い段階で、EDItEURは、日本のためにONIX2を拡張したものを用意
したことを発表している。それにも関らず独自仕様(本家のONIX実装とは
まったく繋がらないもの)が採用されていることになる。
パブリックコメントに対するきちんとした回答はなかったし、また
怒鳴りつけられたくもないので、私もこのまま放置するつもりだった。
しかし、国費を10億円も投入するプロジェクトで採用するとなると
話は別だ。こんどはきちんと国際整合を図ること、日本以外の
データ・実装と繋がらない独自仕様を作らないことを、ここに
要請しておく。
追記(2012-04-15):
"1) サンプルXML文書がDTD検証に通らない"について
JPOでは独自拡張をしているので、本来のEDItEURのDTDを参照している
サンプルXML文書はエラーになる。独自拡張をしたまま辻褄を合せるなら、
DTDを参照しないようにするかDTDを直すべき。
"2) サンプルXML文書の名前空間が違う"について
本来のEDItEURのスキーマに対象名前空間指定があるので、文書
でも名前空間を指定すべきと考えた。しかし、よく調べてみると、
EDItEURのONIXでは他XML文書に埋め込むときに限って名前空間
を使、単独のXML文書とするときには使わない。それに合わせると
いう方針であれば、名前空間を指定しないのは正しい。
"3) XML スキーマschema_ver1.01.xsdでもtarget名前空間が違う"
EDItEURのONIXでは他XML文書に埋め込むときにだけXMLスキーマ
を検証に用い、単独のXML文書とするときにはDTDを検証に用いる。
JPOの独自拡張では、単独のXML文書とすることだけに限定し、検証には
常にXMLスキーマを利用している。そのための辻褄合わせらしい。
"4) サンプルXML文書がXMLスキーマ検証に通らない"
DOCTYPE宣言を削除して検証した結果のエラーを添付する。
システム ID: C:\Users\makoto\Desktop\onix\onixfile_sample.xml_\onixfile_sample.xml メインの検証ファイル: C:\Users\makoto\Desktop\onix\onixfile_sample.xml_\onixfile_sample.xml スキーマ: http://www.kinkan.info/wp/wp-content/uploads/2010/12/schema_ver1.01.xsd エンジン名: Xerces 重要度: error 概要: cvc-complex-type.2.4.a: Invalid content was found starting with element 'AvailabilityCode'. One of '{SupplierIdentifier, SupplyRestrictionDetail}' is expected. 開始位置: 64:6 最終位置: 64:22 URL: http://www.w3.org/TR/xmlschema-1/#cvc-complex-typeシステム ID: C:\Users\makoto\Desktop\onix\onixfile_sample.xml_\onixfile_sample.xml
メインの検証ファイル: C:\Users\makoto\Desktop\onix\onixfile_sample.xml_\onixfile_sample.xml
スキーマ: http://www.kinkan.info/wp/wp-content/uploads/2010/12/schema_ver1.01.xsd
エンジン名: Xerces
重要度: error
概要: cvc-pattern-valid: Value '1' is not facet-valid with respect to pattern '[0-9]{2,4}' for type '#AnonType_SubjectCodeSubject'.
開始位置: 127:33
URL: http://www.w3.org/TR/xmlschema-2/#cvc-pattern-validシステム ID: C:\Users\makoto\Desktop\onix\onixfile_sample.xml_\onixfile_sample.xml
メインの検証ファイル: C:\Users\makoto\Desktop\onix\onixfile_sample.xml_\onixfile_sample.xml
スキーマ: http://www.kinkan.info/wp/wp-content/uploads/2010/12/schema_ver1.01.xsd
エンジン名: Xerces
重要度: error
概要: cvc-type.3.1.3: The value '1' of element 'SubjectCode' is not valid.
開始位置: 127:18
最終位置: 127:19
URL: http://www.w3.org/TR/xmlschema-1/#cvc-typeシステム ID: C:\Users\makoto\Desktop\onix\onixfile_sample.xml_\onixfile_sample.xml
メインの検証ファイル: C:\Users\makoto\Desktop\onix\onixfile_sample.xml_\onixfile_sample.xml
スキーマ: http://www.kinkan.info/wp/wp-content/uploads/2010/12/schema_ver1.01.xsd
エンジン名: Xerces
重要度: error
概要: cvc-complex-type.2.4.a: Invalid content was found starting with element 'AvailabilityCode'. One of '{SupplierIdentifier, SupplyRestrictionDetail}' is expected.
開始位置: 314:5
最終位置: 314:21
URL: http://www.w3.org/TR/xmlschema-1/#cvc-complex-type
追記(2012-05-07):
"4) サンプルXML文書がXMLスキーマ検証に通らない"については、私がダウンロードした後でデータが改定され、検証エラーはなくなっている。
念のために言えば、近刊情報センター(JPO)のONIXが日本独自仕様であるという本質は変わらない。スキーマをEDItEURの許可なく変更してはならないというライセンス条件(仕様書(ZIP file)の冒頭にある)にも違反している。
投稿者: 村田 真 日時: 2012.03.06 | パーマリンク | コメント (0) | トラックバック (0)