1

VB6でXMLパーサーを作成しようとしています。
XMLのベースとなる標準には、解析を開始する前にXMLを検証するためのDTDが付属しています。また、サンプルXMLファイルを作成して、テストするものを用意しました。

vb6コードを介してXMLをロードできます

Dim objXMLDoc As MSXML.DOMDocument
Set objXMLDoc = New MSXML.DOMDocument  
If Not objXMLDoc.Load("sample.xml") Then  
----Goto ErrorHandler  
End If

作業中のXML

<?xml version = "1.0"?>  
<Root>  
...  
</Root>

DTDで検証しようとしています

<?xml version = "1.0"?>  
<!DOCTYPE sample SYSTEM "sample.dtd">  
<Root>  
...  
</Root>

私が行った調査では、XMLがdocタイプを介してDTDを指している場合、LoadがXMLを検証すると信じていました。
私は多くの調査を行いましたが、どこが間違っているのか理解できません。提供されたDTDが構文的に正しくないのと同じくらい単純かもしれませんが、これは私が今見ているものです。私が見つけたリソースは主にMSDNにあり、ここhttp://www.jalix.org/ressources/internet/dom/~vrac/articles/XML%20DOM.htmlにあります。
xmlとdtdの両方が同じディレクトリにあり、doctypeタグなしでXMLを解析しています。

私が得るエラーは次のとおりです:
エラー番号:-2146697211:システムは指定されたリソースを見つけることができません。エラー処理リソース'sample.dtd'

追加のリソースや提案をいただければ幸いです。

4

2 に答える 2

1

エラーを再現できません。私にとっては、同じフォルダー内の両方のファイルで問題なく動作します。

DTD が整形式でないことも問題ではありません。それは別のエラーをスローします。DTD が見つからない場合はあなたと同じエラーが発生します-1072896757が、(完全に偽の) DTD が見つかった場合はエラー (「DTD で無効な文字が見つかりました」) が発生します。

別のMicrosoft XMLバージョンを使用してみましたか、それとも古いバージョン 2.0に縛られていますか? 可能であればv6.0を試してください。

于 2009-01-21T23:38:41.813 に答える
0

明らかな提案ですが、dtd ファイル名を完全に修飾しようとしましたか (つまり、c:\blahblah...\sample.dtd?

于 2009-01-23T10:13:36.477 に答える