2011-05-06 4 views
0

Sarissa를 사용하여 XML 문자열을 DOM 문서 개체로 변환하고 있습니다. Sarissa가 내 DTD를 완전히 무시한다는 것을 제외하고는 모든 것이 작동합니다. DTD 규칙의 편차는 눈치 채지 못하고 DTD에 대한 메시지가없는 것도 볼 수 없습니다.XML을 파싱 할 때 Sarissa가 DTD를 사용하는 방법?

<?xml version="1.0" standalone="no" ?> 
<!DOCTYPE workspace SYSTEM "dtd/config.dtd"> 

를 내 자바 스크립트는 다음과 같습니다 :

내 XML은 다음과 같이 시작

function toXML(str) { 
    var responseDoc = (new DOMParser()).parseFromString(str, "text/xml"); 
    ... 
} 

어떻게 사리 사이 DTD를 사용할 수 있습니까?

+0

XML 안에 DTD를 포함 시키려고했습니다. IE8과 Chrome은 그것을 무시하고 Firefox는 구문 오류라고 생각했습니다. –

답변

1

Sarissa's source code에는 DOMParser()에 대한 특별한 구문 분석 코드가 없습니다. 기본적으로 외부 DTD 파싱은 안타깝게도 XML의 선택적 측면 (엔티티의 경우조차도)이기 때문에 Internet Explorer, Safari 또는 Firefox/Opera 네이티브 구현을 사용하므로 브라우저에서 DTD를 구문 분석하지 못할 수 있습니다. . 웹 종류는 서버 측 대체 (또는 유효성 검사까지 무시할 수있는 내부 문서 하위 집합 정의)로 작업하도록 강제합니다.

+0

우리가 완료 한 정도를 기억하지 못하고 있으며, 여전히 많은 수의 W3C 테스트가 실패하고 있지만 http://code.google.com/p/jssaxparser/에는 일부 DTD 파싱 인식 기능이 있습니다. –