- - PR -
PerlでのvalidなXML出力について
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2005-04-28 14:39
お世話になります。
PerlにてDTD, XML schema, Relax NGなどの スキーマに従うXML文書を出力 したいと思っています。 ネット上やCPANなどを探して、 XML文書の出力は数サイト見つけることができたのですが、 スキーマに従うXML文書の出力方法が見つかりませんでした。 CPANなどにあるモジュールを使用してもよい場合に スキーマに従うXML文書の出力方法としてはどのようにするのが 簡単でしょうか? よろしくお願いします。 |
|
投稿日時: 2005-04-28 17:52
一般的には、DOM を構築して Document に DocumentType を設定、validation でエラーがなければスキーマに適合しているので出力、という流れで良いと思いますが、perl だとやや難航しそうです。(私だけかも(笑))
というのも DocumentType を DOM と同様に操作できるのが DOM level 3 インタフェースで、例えば CPAN の XML::DOM などは level 1 インタフェースしかサポートしていないためです。 回避策として、利用するスキーマを指定した(DTD の場合は DOCTYPE を含む基本指定しかない)XML ファイルを作成しておき、validation なしで読み込んで DOM を作成してから、その DOM 上でノード操作を行う方法が考えられます。 pure Perl でなくても良いのならば、 XML::xerces 2.3.0-4 http://xml.apache.org/xerces-p/ が使えるかもしれません。 (Xerces C++ の perl 用ラッパです) リンク先によると、DOM level 3 と W3C XML Schema に対応しているようなので、検討いただいてもよろしいかと思います。 (上述の回避方法が使えれば、CPAN XML::DOM でも行けるかもしれません。) # XML::DOM の :D の部分などが顔文字で表示されてしまうので、顔文字を使わないよう設定しました。 [ メッセージ編集済み 編集者: Gio 編集日時 2005-04-28 17:54 ] |
|
投稿日時: 2005-05-13 18:36
Gioさん、ありがとうございます。
返信が遅くなってしまいすいませんでした。 -------------------------------------------------------------- 一般的には、DOM を構築して Document に DocumentType を設定、validation でエラーがなければスキーマに適合しているので出力、という流れで良いと思いますが、perl だとやや難航しそうです。(私だけかも(笑)) -------------------------------------------------------------- 難航しそうなのは少し困るので ほかの言語などを検討してみようと思います。 |
1