- - PR -
DTDの任意指定方法について
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2004-09-27 11:35
はじめまして。
基本的な内容かもしれませんがわからないことがあり、お教えいただければ助かります。 C++でxercescを利用してxmlファイルを読んでいますが、DTDをxmlに記述せず、プログラムでDTDファイルをパーサに指定したいと思っています。 xmlファイルがユーザから渡されることがあるので、DTDはアプリケーションが指定したいDTDファイルを検索しパーサに指示したいのです。 よろしくお願いいたします。 ↓こんな感じで作っています。 -------------------------------- SAX2XMLReader* pParser = XMLReaderFactory::createXMLReader(); SAX2XMLReader::ValSchemes valScheme = SAX2XMLReader::Val_Auto; SetXMLReaderOption( pParser, valScheme ); int errorCount = 0; try { pParser->setDTDHandler( this ); pParser->setContentHandler( this ); pParser->setErrorHandler( this ); pParser->parse( m_FileName ); errorCount = pParser->getErrorCount(); } catch( const XMLException& toCatch ) { : : } ----------------------------------- |
|
投稿日時: 2004-09-27 14:57
検索で出る、誰でも思いつく方法
ファイルストリームの頭を補完する http://www.naney.org/wiki/xerces.html コーディング的には?DTDを補完する方が楽です ---------------------- fDTDsource とかフューチャもあるみたいだが、深い位置で 指定してどうなるかよくわからなかった SGML時代のスタイルでは $ コマンド オプション DTDファイル 文書ファイル の 連結ストリーム形の指定 でしたから、ストリームの頭書き換えも ありでしょう。DTDリンクをカタログで解決する形もありましたが。 [ メッセージ編集済み 編集者: MMX 編集日時 2004-09-29 00:34 ] |
|
投稿日時: 2004-09-27 15:12
返答ありがとうございます。
xmlファイルをパーサに渡す前に、xmlにアプリで指定したいDTDの指定を加えるということですよね。 あまり詳しくなく、とんちんかんなこと言ってたらすいません。 パーサにDTDファイルを簡単に指定できないかなーと思ってましたが、xml側を変更するのもありですね。 試してみます。 ありがとうございます。 |
1