2010-06-02 2 views
0

J'ai écrit une classe de résolution personnalisée. Cela fonctionne correctement pour résoudre les DTD du système, mais pas pour résoudre les DTD PUBLIC. Lorsque la classe doit résoudre des DTD PUBLIC au lieu de l'URI de la ressource, la fonction reçoit l'identificateur public via le paramètre absoluteUri de la fonction GetEntity. Y a-t-il une solution à cela?Fonction GetEntity de la classe XmlResolver

Dans les exemples:

  • si j'ai une déclaration DTD comme <!DOCTYPE document SYSTEM "document.dtd"> alors le résolveur personnalisé reçoit correctement la chaîne « document.dtd » par le paramètre absoluteURI de la fonction GetEntity.
  • si j'ai une déclaration DTD comme <!DOCTYPE document PUBLIC "-//Organization//DTD Document 1.0//EN" "http://localhost/document.dtd"> puis le résolveur personnalisé reçoit incorrectement la chaîne "- // Organisation // Document DTD 1.0 // EN" au lieu de "schéma: //host/document.dtd".

Répondre

1

J'ai trouvé la réponse right here sur dépassement de pile. D'abord l'identifiant public (-//Organization//DTD Document 1.0//EN) est passé en paramètre, que - si le premier appel a abouti à une erreur - l'uri du fichier DTD (http://localhost/document.dtd).

Questions connexes