IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Valider XML Discussion :

Validation Schematron [XSLT][java]


Sujet :

Valider XML

  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Mai 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mai 2007
    Messages : 2
    Par défaut Validation Schematron [XSLT][java]
    Bonjour,
    Je ne sais pas exactement quel parser j'utilise mais je vais essayer d'être clair.
    J'ai récupérer sur le net des sources Java qui permettent de valider un fichier XML par rapport à un schéma Schematron.
    Le principe est basé sur 2 transfo XSLT, la première transforme le schéma Schematron à l'aide d'un 'preprocessor.xslt' fournit avec les sources Java, en un 'processor.xslt' qui, appliqué au fichier XML à valider, fournit soit un log.xml des erreurs de validation, soit un fichier vide si le XML est valide.
    Mon problème concerne le log.xml dans lequel je n'arrive pas à récupérer l'ID de l'élément qui est en erreur.
    Mon fichier XML d'entrée a la forme suivante:

    <ec:lotdocuments xmlns:ec="URI" xml:id="ID0100">
    <ec:document1 xml:id="ID0001">
    <ec:balise1>
    <ec:sousbalise1>xxx</ec:sousbalise1>
    </ec:balise1>
    ...
    </ec:document1>
    <ec:document1 xml:id="ID0002">
    <ec:balise1>
    <ec:sousbalise1>yyy</ec:sousbalise1>
    </ec:balise1>
    ...
    </ec:document1>
    <ec:document1 xml:id="ID0003">
    <ec:balise1>
    <ec:sousbalise1>zzz</ec:sousbalise1>
    </ec:balise1>
    ...
    </ec:document1>
    <ec:document2 xml:id="ID0004">
    ...
    </ec:document2>
    <ec:document2 xml:id="ID0005">
    ...
    </ec:document2>
    </ec:lotdocuments>

    Si par exemple l'élément <document1 xml:id="ID0003"> a une erreur Schematron dans une de ces balises, avec la commande :
    <axsl:value-of select="//ec:document1/@xml:id"/>
    dans la feuille intermédiaire processor.xslt, je récupère dans ma log non pas l'ID "ID0003" mais le "ID0001". Idem si' c'est le
    <ec:document2 xml:id="ID0005"> qui est en erreur, je récupère l'ID "ID0004"
    Est-ce juste ma commande xslt qui est mauvaise, et dans ce cas quelle est la bonne, ou est-ce plus grave docteur ?...
    Merci d'avance pour vos réponses

  2. #2
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Mai 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mai 2007
    Messages : 2
    Par défaut
    Pour ceux que ça intéresse, le problème vient de l'expression XPath dans la balise XSL.
    Le bon code est :
    ancestor::ec:document1/@xml:id et non //ec:document1/@xml:id

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème de validation schematron en Java
    Par waelz1 dans le forum Général Java
    Réponses: 2
    Dernier message: 24/08/2014, 18h05
  2. [XSLT] [XalanJava] Erreur-XSLT (java.lang.StackOverflowError): null
    Par sylvie dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 24/08/2010, 09h52
  3. [XSD] validation xml en java avec import
    Par moi89 dans le forum Valider
    Réponses: 6
    Dernier message: 27/07/2009, 16h00
  4. [XSLT][JAVA]Transformation d'un Document avec XSL
    Par amadoulamine1 dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 20/03/2009, 18h39
  5. [XSLT] [JAVA] Appeler fonction java depuis XSL
    Par greg_one dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 30/05/2007, 22h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo