2011-05-06 1 views
0

J'utilise Sarissa pour convertir une chaîne de code XML en un objet de document DOM. Tout fonctionne sauf que Sarissa ignore complètement ma DTD. Les écarts par rapport aux règles DTD ne sont pas remarqués et je ne vois aucun message indiquant que la DTD n'a pas été trouvée.Comment faire en sorte que Sarissa utilise une DTD lors de l'analyse XML?

Mon XML commence comme ceci:

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

et mon JavaScript ressemble à ceci:

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

Comment puis-je obtenir Sarissa utiliser la DTD?

+0

J'ai essayé d'intégrer la DTD dans le fichier XML. Firefox et IE8 l'ont ignoré, Firefox a pensé qu'il s'agissait d'une erreur de syntaxe. –

Répondre

1

Sarissa's source code n'a pas de code d'analyse très spécial pour DOMParser(). Il enveloppe essentiellement IE, Safari ou l'implémentation native de Firefox/Opera, qui peut ne pas analyser les DTD dans le navigateur que vous utilisez, car l'analyse DTD externe est malheureusement un aspect facultatif de XML (même pour les entités), et la validation est encore moins certaine . Le Web oblige une personne à travailler avec des substitutions côté serveur (ou éventuellement des définitions internes de sous-ensembles de documents qui peuvent être ignorées en ce qui concerne la validation).

+0

Je ne me souviens pas de la mesure dans laquelle nous l'avons terminée, et il y a probablement encore un bon nombre de tests W3C qui échouent, mais http://code.google.com/p/jssaxparser/ a une certaine sensibilité à l'analyse DTD. –

Questions connexes