OVH Cloud OVH Cloud

Validation d'un arbre DOM sur un schéma.

2 réponses
Avatar
Yves Martin
Bonjour,

J'ai parcouru la documentation de Xerces et je n'ai pas trouvé le
moyen de "raccourcir" (et optimiser du coup) mon code.

Actuellement:
- Je charge un XML (non valide, à corriger) depuis un fichier texte
sous forme d'arbre DOM
- Je manipule l'arbre DOM pour le rendre "valide"
- Je sérialise l'arbre DOM avec le XMLSerializer de Xerces dans un
StringWriter
- Je parse à nouveau le StringWriter en activant la validation pour
savoir si tout est OK par rapport au schéma.
- J'écrit le StringWriter dans un fichier résultat.

Ma question:
- Est-il possible (comment faire ?) de valider un arbre DOM sur un
schéma XSD sans passer par DocumentBuilder.parse ?

Merci d'avance
--
Yves Martin

2 réponses

Avatar
Jean-Philippe Martin
"Yves Martin" a écrit dans le message de
news:

Bonjour,

J'ai parcouru la documentation de Xerces et je n'ai pas trouvé le
moyen de "raccourcir" (et optimiser du coup) mon code.

Actuellement:
- Je charge un XML (non valide, à corriger) depuis un fichier texte
sous forme d'arbre DOM
- Je manipule l'arbre DOM pour le rendre "valide"
- Je sérialise l'arbre DOM avec le XMLSerializer de Xerces dans un
StringWriter
- Je parse à nouveau le StringWriter en activant la validation pour
savoir si tout est OK par rapport au schéma.
- J'écrit le StringWriter dans un fichier résultat.

Ma question:
- Est-il possible (comment faire ?) de valider un arbre DOM sur un
schéma XSD sans passer par DocumentBuilder.parse ?

Merci d'avance
--
Yves Martin



Je ne sais pas du tout si ca va t'aider, mais j'ai un javascript qui teste
la validité d'un document.

Peut etre est-ce réutilisable dans du code Java.

<html>
<body>
<h3>
Vaidation d'un document XML contre sa DTD
</h3>

<script type="text/javascript">
var xmlDoc = new ActiveXObject("Microsoft.XMLDOM")
xmlDoc.async="false"
xmlDoc.validateOnParse="true"
xmlDoc.load("tmpBez.tre")

document.write("<br />Code de l'erreur: ")
document.write(xmlDoc.parseError.errorCode)
document.write("<br />Type de l'erreur: ")
document.write(xmlDoc.parseError.reason)
document.write("<br />Ligne de l'erreur: ")
document.write(xmlDoc.parseError.line)
</script>

</body>
</html>

Voillà le contenu d'une page HTML testant la validité du fichier
"tmpBez.tre" qui est un fichier xml.

Comme j'ai dit, je ne sais pas si ca te sera d'une aide :os

Avatar
Yves Martin
Yves Martin writes:

Ma question:
- Est-il possible (comment faire ?) de valider un arbre DOM sur un
schéma XSD sans passer par DocumentBuilder.parse ?


Pour ceux qui se sont posé la question, j'ai trouvé la réponse dans
la FAQ de Xerces:
http://xml.apache.org/xerces2-j/faq-dom.html#faq-9

--
Yves Martin