FoaFにDTDをかます

兼てより、2枚のFoaFを公開してゐました。其の一つの当方FoaFのxml版にこの度、DTDかましてやりました。DTDの文法は出来るだけ自由度の高いもので、出現順序や出現回数にも制限は設けてありませんが、名前空間の指定を1文字でも間違へるとエラーが出るやうにしてあります。このDTDでは、foaf名前空間が基本設定になつてをり、rdf:RDF要素の中にPerson要素が入子になつてゐないとエラーで弾かれます。
xml文書の検証が出来るサイトは2箇所あります。概要だけ示しておきます。

この検証頁は、utf-8の文書ヘッダが在るとエラーが出てしまひます。utf-8の文書には、其の最初の部分にバイナリで"EF BB BF"と云ふ"BOM"と呼ばれるコードが記述される決りになつてゐますが、此れが在ると何故かこの検証頁では「1行目エラー」として弾かれてしまひます。単なるバグだと思はれます。逆にutf-8の文書でも、"BOM"を削除した状態であれば、正常に検証がなされます。
"Local file:"と"URI:"と"Text:"の3種類の検証方法が用意されてゐます。検証の際"Suppress warning messages"と"Relax namespace checks"には特にチェックは必要ないでせう。必要事項を入力して、"validate"を押してみて下さい。
"Document validates OK."が表示されたら、厳格なxml文書であると云ふ事になります。其れ以外の表示がされたら、其れはエラー出力ですので、該当の行を中心に文書を見直して下さい。

この検証頁は、utf-8の"BOM"が在つてもエラーは出ません。
"validate?"の欄にチェックを入れて"URL:"の欄を埋めてから"check it"を押してみて下さい。
"The document appears to be well-formed. The canonical XML follows:"以下には、整形式xml文書が羅列されるのですが、utf-8のCJK統合漢字を使ふと文字化けの嵐です。仕方ありませんがエラーではありません。
注目して欲しいのは、"Any validity or namespace errors follow:"以下の欄で、其処に何も記述さへされてゐなければ、其れは厳格なxml文書であると云ふ事になります。*1
此れは、検証の為に作成した仮のDTDです。本来あるべき姿のDTDではありませんので、根本的な間違ひを孕んでゐる可能性があります。このDTDを御利用の際は、飽く迄も自己責任でお願ひします。

*1:「Please report any problems with this checker to」は単なるフッタです。