Re: Detection d'erreur sur document()

Eric van der Vlist <[email protected]> Fri, 14 Dec 2007 16:58:32 +0100
Newsgroups gmane.text.xml.french.tech
Organization Dyomedea (http://dyomedea.com)
Message-ID <1197647912.24365.37.camel@localhost>
Bonjour,
Le mercredi 12 décembre 2007 à 13:58 +0100, Philippe Prados a écrit :
> Dans un feuille XSL, je souhaite insérer un extrait XML dans un document
> s'il est présent, ou le construire s'il n'est pas présent.
> Lorsque j'indique un document($filename), s'il n'est pas présent j'ai
> une erreur. 

En fait, la recommandation XSLT laisse aux processeurs XSLT le choix de
signaler l'erreur ou non : "Si l'extraction de la ressource se solde par
une erreur alors, le processeur XSLT peut signaler l'erreur; s'il ne le
fait pas, il doit récupérer sur l'erreur en retournant un ensemble vide
de noeuds."

http://xmlfr.org/w3c/TR/xslt/#function-document

Lorsque l'implémentation que vous utilisez génère une erreur, vous ne
pouvez pas y faire grand chose, si ce n'est choisir une autre
implémentation (telle que Saxon) qui ne génère pas d'erreur!

> Comment éviter cela et faire un test pour traiter l'erreur ?

Cela ne permet pas d'éviter l'erreur, mais lorsque le processeur XSLT ne
génère pas d'erreur, la recommandation spécifie qu'il doit retourner un
ensemble de noeuds vide. Dans ce cas, il suffit alors de tester si
l'ensemble de noeuds est vide pour savoir s'il y a un document ou non :

    <xsl:choose>
        <xsl:when test="document('doc.xml')/*">Il y a un document :-)</xsl:when>
        <xsl:otherwise>Il n'y en a pas :-( ...</xsl:otherwise>
    </xsl:choose>

Cordialement,

Eric van der Vlist

> Merci
> 
> Philippe

-- 
GPG-PGP: 2A528005
Carnet web :
           http://eric.van-der-vlist.com/blog?t=category&a=Fran%C3%A7ais
------------------------------------------------------------------------
Eric van der Vlist       http://xmlfr.org            http://dyomedea.com
(ISO) RELAX NG   ISBN:0-596-00421-4 http://oreilly.com/catalog/relax
(W3C) XML Schema ISBN:0-596-00252-1 http://oreilly.com/catalog/xmlschema
------------------------------------------------------------------------


-- Attached file included as plaintext by Ecartis --

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)

iD8DBQBHYqgoDvn+ZCpSgAURAjqDAJ9S4IM0fBR6jIvzQS/5IzdpX/uogACfV2sW
43SvzCvsQtBLccNzhZ5GYLQ=
=hCCs
-----END PGP SIGNATURE-----