كيف يمكن للمرء تحليل وثيقة XML بعد التحقق أولاً من التحقق من DTD في VB6
سؤال
أحاول كتابة محلل XML في VB6.
تأتي المعايير التي تستندها XML مع DTD للتحقق من XML قبل البدء في التحليل. لقد كتبت أيضًا نموذجًا لـ XML ، بحيث يكون لدي شيء لاختباره.
أنا قادر على تحميل XML عبر رمز VB6
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 إذا أشار XML إلى DTD عبر نوع المستند.
لقد قمت بالكثير من الأبحاث ولا أستطيع معرفة المكان الذي أخطئ فيه. قد يكون الأمر بسيطًا مثل DTD المقدم ليس صحيحًا بشكل نحلي ، وهو ما أبحث عنه الآن. الموارد التي وجدتها في الغالب على MSDN وهنا http://www.jalix.org/ressources/internet/dom/~vrac/articles/xml٪20dom.html.
يوجد كل من XML و DTD في نفس الدليل ، ولديه تحليل XML مع علامة Doctype.
الخطأ الذي أحصل عليه هو:
خطأ #: -2146697211: لا يمكن للنظام تحديد موقع إعادة الاستعادة المحددة. مورد معالجة الأخطاء 'sample.dtd'
أي موارد إضافية ، أو اقتراحات سيكون موضع تقدير كبير.
المحلول
لا يمكنني إعادة إنتاج خطأك. إنه يعمل بشكل جيد مع كلا الملفين في نفس المجلد بالنسبة لي.
إنها ليست مشكلة لعدم تشكيل DTD بشكل جيد أيضًا ؛ هذا يلقي خطأ آخر. أحصل على نفس الخطأ مثلك إذا لم تتمكن من العثور على DTD ، بينما أحصل على خطأ -1072896757
("حرف غير صالح موجود في DTD.") إذا كان يجد DTD الخاص بي (المزيج تمامًا).
هل حاولت استخدام مجموعة مختلفة Microsoft XML الإصدار ، أم أنك مرتبط بالقديم الإصدار 2.0؟ محاولة v6.0 اذا كان ممكنا.
نصائح أخرى
اقتراح واضح ، لكن هل حاولت تأهيل اسم ملف DTD بالكامل (أي C: blahblah ... sample.dtd؟