2010-06-02 4 views
0

사용자 지정 해결 프로그램 클래스를 작성했습니다. SYSTEM DTD를 해결하는 데는 정상적으로 작동하지만 PUBLIC DTD는 해결되지 않습니다. 클래스가 리소스 URI 대신 PUBLIC DTD를 확인해야하는 경우이 함수는 GetEntity 함수의 absoluteUri 매개 변수를 통해 공용 식별자를받습니다. 이 문제에 대한 해결책이 있습니까? 예에서XmlResolver 클래스 'GetEntity 함수

: I가 <!DOCTYPE document SYSTEM "document.dtd"> 같은 DTD 선언 후 맞춤 리졸버 올바르게 GetEntity 함수의 매개 변수를 통해 absoluteURI가 문자열 "document.dtd"를 수신하고있는 경우

  • .
  • <!DOCTYPE document PUBLIC "-//Organization//DTD Document 1.0//EN" "http://localhost/document.dtd">과 같은 DTD 선언이있는 경우 사용자 지정 해결 프로그램이 "scheme : //host/document.dtd"대신 "- // Organization // DTD Document 1.0 // EN"문자열을 잘못받습니다.

답변

1

스택 오버플로에 대한 답변은 right here입니다. 첫 번째 호출에서 오류가 발생한 경우 - DTD 파일의 URI (http://localhost/document.dtd)보다 공용 식별자 (-//Organization//DTD Document 1.0//EN)가 매개 변수로 전달됩니다.