On Nov 14, 2005, at 12:36, Markus (datz.free.fr) wrote:
> En fait je suis un parano de la gestion d erreur.
> Ce que je veux c est etre sur de bien traiter dans la feuille XSL
> toutes les
> balises
> de mon document XML entrant.
> J' ai essayé sans succes de le faire en "trappant" les regles par
> defaut.
> Je me suis dis que c etait plus simple en DTD.
Si tu es vraiment parano, il faut aller jusqu'au bout, auquel cas une
DTD ne te servira à rien car les DTD sont bien trop peu expressives
pour fournir une protection suffisante contre de larges classes
d'erreurs. Tu auras besoin d'allier RelaxNG pour la structure à
Schematron pour les règles business, et peut-être pousser jusqu'à
réaliser ta propre librairie de types pour valider les data. Je n'ai
jamais vu de cas où il fallait aller aussi loin. Note que tout
l'intérêt du "X" de XML est précisément que l'on peut rajouter de
nouvelles données sans pour autant rendre le fichier inutilisable --
il vaut mieux utiliser ça comme une force plutôt que comme une
faiblesse.
Si tu veux avoir un message d'erreur quand ton XSLT rencontre un
élément qu'elle ne connait pas, tu peux en effet utiliser les règles
par défaut:
<!-- juste pour les éléments, mais extensible à d'autre noeuds -->
<xsl:template match='*'>
<xsl:message>
Elément inconnu: {<xsl:value-of select='namespace-uri()'/>}
<xsl:value-of select='local-name()'/>
</xsl:message>
</xsl:template>
Ca devrait t'afficher des warnings sur STDERR à la ligne de commande,
ou dans ton error log depuis un serveur Web. Si tu veux que ça
explose plutôt que de donner un simple warning, rajoute l'attribute
terminate='yes' sur xsl:message.
--
Robin Berjon
Senior Research Scientist
Expway, http://expway.com/
--
Devenez redacteur <XML>fr et contribuez au developpement du
xml francophone (http://xmlfr.org/infos/redacteurs/) !
Liste de diffusion "xml-tech@xmlfr.org" (http://xmlfr.org).
Cette liste est a votre disposition pour discuter en francais de
tout sujet technique lie a XML.
Pour resilier votre abonnement, envoyez un message contenant
la commande "unsubscribe" a xml-tech-request@xmlfr.org
(mailto:xml-tech-request@xmlfr.org?Subject=unsubscribe)
Received on Mon Nov 14 12:48:28 2005