VB6에서 DTD에 대해 먼저 검증 한 후 XML 문서를 구문 분석하는 방법

StackOverflow https://stackoverflow.com/questions/467180

  •  19-08-2019
  •  | 
  •  

문제

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를 가리키면 부하가 XML을 검증 할 것이라고 믿게되었습니다.
나는 많은 연구를했고 내가 어디에서 잘못 될지 알아낼 수 없다. 제공된 DTD가 구문 적으로 올바르지 않은 것만 큼 간단 할 수 있습니다. 내가 찾은 자료는 주로 MSDN과 여기에 있습니다. http://www.jalix.org/ressources/internet/dom/dom/com/dom/dom/com/cml%20dom.html.
XML과 DTD는 모두 동일한 디렉토리에 있으며 DocType 태그를 사용하여 XML을 구문 분석합니다.

내가 얻는 오류는 다음과 같습니다.
오류 번호 : -2146697211 : 시스템은 지정된 Resouce를 찾을 수 없습니다. 오류 처리 리소스 'Sample.dtd'

추가 자료 또는 제안은 크게 감사 할 것입니다.

도움이 되었습니까?

해결책

나는 당신의 오류를 재현 할 수 없습니다. 나에게 동일한 폴더의 두 파일 모두에서 잘 작동합니다.

DTD가 잘 형성되지 않은 문제는 아닙니다. 다른 오류가 발생합니다. 오류가 발생하는 동안 DTD를 찾을 수없는 경우와 같은 오류가 발생합니다. -1072896757 ( "DTD에서 발견 된 잘못된 캐릭터") 내 (완전히 가짜) DTD를 찾으면.

다른 것을 사용해 보셨습니까? Microsoft XML 버전, 아니면 오래된 것과 묶여 있습니까? 버전 2.0? 노력하다 v6.0 가능하다면.

다른 팁

명백한 제안이지만 DTD Filename (예 : C : Blahblah ... sample.dtd를 완전히 자격을 갖추셨습니까?

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top