- - PR -
Xerces C++でDTD定義ファイルの入力について
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2004-06-24 16:04
いつもお世話になります。
ご存知の方いらっしゃいましたら、ご教授願います。 入力するXMLファイルの先頭は以下のようになっています。 <?xml version="1.0" encoding="ISO-8859-1" standalone="no" ?> <!DOCTYPE DICOM SYSTEM "dicom.dtd"> この指定ですと、構文解析のDTDファイルはカレント(XMLファイルがある場所)のdicom.dtdになると思うのですが、 XercesDOMParser *parser = new XercesDOMParser(); parser->parse(); で読み込んだ時、別の場所にあるDTDファイルを元に構文解析させてパースさせる事は可能でしょうか? よろしくお願いいたします。 |
|
投稿日時: 2004-06-24 17:04
Xerces が XMLカタログ機能をサポートしているならば
公開識別子 → ファイル名 の変換を行えます。 公開識別子は固定でDTDファイル名はカタログ・ファイルで 設定変更できます。 ================================ DTD を切り替える、その他の方法 ●XSLT で恒等変換で doctype を書き換える。 Controlling the DOCTYPE and XML Declaration http://www.xml.com/lpt/a/2002/09/04/xslt.html ●パラメータエンティティ参照でDTDの中身を取り込む 切り替えは、エンティティ・リソルバーの仕事 ●読み込んだXMLストリームの頭部を文字列書き換えする ●DTDをXML Schema や RELAX に変換して、それで検証する。 [ メッセージ編集済み 編集者: MMX 編集日時 2004-06-25 12:28 ] |
1