CAS-UBでIDに使える文字の種類の問題に対応しました
一昨日、CAS-UBの試用ユーザーさんから、朝からPDFが出なくなったという話がきて調査して修正しました。
クラウド版も昨日の午後には修正完了しています。昨日の午後から、問題は解決してます!
原因は、当該出版物の中でID(固有識別子)に使った文字に、XSL変換用のパーサーで使えない文字と判断されるものがあったため、XSL変換の途中でエラーになっていたことです。
XMLではIDに使うことができる文字に制限があり、この制限はXML仕様で決まっているのですが、XMLV1.0の改訂版によってIDに使える文字が変化していることが原因です。
XML仕様V1.0は、周知のとおり1998年にできたのですが、これまでに何回か小さな改訂が行われています。V1.0の最新版は第5版です。
Extensible Markup Language (XML) 1.0 (Fifth Edition)
W3C Recommendation 26 November 2008
http://www.w3.org/TR/2008/REC-xml-20081126/
第5版では、IDに使える文字の範囲がかなり広くなっています。ところが、実際のプログラムの方は、まだ、第4版のままのものが多いため、第4版から第5版で追加された文字をIDに使うと、エラーを起こしてしまうのです。
ちなみにEPUBの妥当性をチェックするEPUBCheckというものがありますが、これも、第5版には未対応のようです。
ということで、CAS-UBも、IDに使える文字を第5版準拠とするのを諦めて次のように仕様を変更しました。
○XML仕様のEditionに関わらずにIDに使える文字を選択して、その文字コードはそのままIDに使い、それ以外の文字は独自エスケープして使う。
これにより、今後は、この問題は起きないと思います。
結局、仕様が進んでも、なかなか世の中は進まないという。オープンな世界でいろいろなプログラムを使うと、いろんなところで小さな壁にぶつかり、思ったほど便利にならないものです。