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

Format d'échange (XML, JSON...) Java Discussion :

XSL qui ne fonctionne pas en Java mais fonctionne ailleurs [XSLT]


Sujet :

Format d'échange (XML, JSON...) Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2008
    Messages
    184
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Avril 2008
    Messages : 184
    Par défaut XSL qui ne fonctionne pas en Java mais fonctionne ailleurs
    Bonjour,

    Tout est dans le titre.

    Mon Xsl :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.0"
                    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
     
        <xsl:template match="/">
            <Document xmlns="urn:iso:std:iso:20022:tech:xsd:pain.008.001.02"
                      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                      xsi:schemaLocation="urn:iso:std:iso:20022:tech:xsd:pain.008.001.02 pain.008.001.02.xsd">
                <xsl:apply-templates select="PayementSepa"/>
            </Document>
        </xsl:template>
     
        <xsl:template match="PayementSepa">
            <CstmrDrctDbtInitn>
                <GrpHdr>
                    <MsgId>??</MsgId>
                    <CreDtTm>??</CreDtTm>
                    <NbOfTxs>??</NbOfTxs>
                    <CtrlSum>??</CtrlSum>
                    <InitgPty>
                        <Nm>FDI</Nm>
                    </InitgPty>
                </GrpHdr>
     
            </CstmrDrctDbtInitn>
        </xsl:template>   
     
        <xsl:template match="text()">
        </xsl:template> 
     
    </xsl:stylesheet>
    Mon XML :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    <?xml version="1.0" encoding="UTF-8"?>
    <PayementSepa>
      <id>1</id>
      <payements>
        <null/>
        <PayementDetail>
          <id>1</id>
          <transactions>
            ...
          </transactions>
          <crediteur>
            <id>1</id>
            <banque>
              <id>2</id>
              <nom>Banque2</nom>
              <bic>222222222222222222</bic>
              <adresses/>
            </banque>
            <pays/>
          </crediteur>
        </PayementDetail>
      </payements>
    </PayementSepa>
    Le code Java :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    package com.fdilogbox.sepa.transformer;
     
    import java.io.InputStream;
    import java.io.OutputStream;
    import javax.xml.transform.OutputKeys;
    import javax.xml.transform.Transformer;
    import javax.xml.transform.TransformerConfigurationException;
    import javax.xml.transform.TransformerException;
    import javax.xml.transform.TransformerFactory;
    import javax.xml.transform.stream.StreamResult;
    import javax.xml.transform.stream.StreamSource;
     
     
    /**
     *
     * @author kuntz
     */
    public class SepaTransformer implements ISepaTransformer {
     
        private final Transformer transformer;
     
        public SepaTransformer(final InputStream xslInput) throws TransformerConfigurationException {
            TransformerFactory tFactory = TransformerFactory.newInstance();
            transformer = tFactory.newTransformer(new StreamSource(xslInput));
            transformer.setOutputProperty(OutputKeys.INDENT, "yes");
            transformer.setOutputProperty(OutputKeys.ENCODING, "UTF8");
            transformer.setOutputProperty(OutputKeys.METHOD, "xml");
        }
     
        @Override
        public void transforme(final InputStream xmlInput, final OutputStream output) throws TransformerException {
            transformer.transform(new StreamSource(xmlInput), new StreamResult(output));
        }
     
    }
    Le resultat que j'obtiens:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <?xml version="1.0" encoding="UTF-8"?>
    <Document xmlns="urn:iso:std:iso:20022:tech:xsd:pain.008.001.02" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:iso:std:iso:20022:tech:xsd:pain.008.001.02 pain.008.001.02.xsd"/>
    J'ai testé en java 6 et 7.

    Un idée de ce qui cloche?

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Je n'ai pas le problème en utilisant le même code, en Java 6 et 7.

    ne fonctionne pas en java mais fonctionne ailleur
    "ailleurs," genre quoi ?

    Mon XML :
    Il ne manquerait pas un petit xmlns quelque part, par hasard ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2008
    Messages
    184
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Avril 2008
    Messages : 184
    Par défaut
    Je n'ai pas le problème en utilisant le même code, en Java 6 et 7.
    C est le code que j'ai vu un peu partout sur le net. Du coup, il me semblait bon aussi.

    "ailleurs," genre quoi ?
    J'ai testé l'xls sur le site http://www.xsltcake.com/ qui semble faire la transformation par javascript et par .Net.

    Il ne manquerait pas un petit xmlns quelque part, par hasard ?
    Je n'ai pas d'xsd ou de dtd pour cette XML

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Ca m'a l'air d'être le genre de truc qu'on obtiens quand la source est vide. C'est plutt le code qui lit ton XML qu'il faut nous montrer.

  5. #5
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Citation Envoyé par youkoun Voir le message
    J'ai testé l'xls sur le site http://www.xsltcake.com/ qui semble faire la transformation par javascript et par .Net.
    Oui, le XSL est bon, je confirme. Et le XML que tu nous montres aussi. Mais à mon avis, ce que tu donnes à ton programme Java, ce n'est pas le même XML que ce que tu donnes au reste et ici. Par exemple il pourrait y avoir un autre fichier, de même nom que celui que tu essaies de lire mais situé ailleurs et qui ne ressemble pas au tien, et ce serait celui-ci que ton programme Java lirait.

    Citation Envoyé par youkoun Voir le message
    Je n'ai pas d'xsd ou de dtd pour cette XML
    Aucun rapport. Je t'ai demandé s'il n'y avait pas en réalité un xmlns dans le fichier XML que tu utilises. Je n'ai pas parlé de xsd ou dtd.

    Citation Envoyé par tchize_ Voir le message
    Ca m'a l'air d'être le genre de truc qu'on obtiens quand la source est vide. C'est plutt le code qui lit ton XML qu'il faut nous montrer.
    Euh, oui, mais le code qu'il nous a déjà montré nous montre qu'il utilise un InputStream pour le lire. On a guère besoin de plus de code, plutôt de savoir d'où vient l'InputStream.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre confirmé
    Inscrit en
    Avril 2008
    Messages
    184
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Avril 2008
    Messages : 184
    Par défaut
    Merci!!!
    Le probleme venait bien du fait que mon flus d'entrée était vide.

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

Discussions similaires

  1. [Google Maps] Fonction qui ne fonctionne pas sous chrome mais bien sous firefox
    Par Msysteme dans le forum APIs Google
    Réponses: 1
    Dernier message: 04/06/2015, 20h29
  2. Réponses: 2
    Dernier message: 07/02/2011, 09h39
  3. Réponses: 5
    Dernier message: 17/12/2008, 14h18
  4. [Requete] qui n'affiche pas les doublons mais sur un seul champs
    Par joseph.breham dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 19/12/2006, 14h57
  5. Java ne fonctionne pas sous Firefox
    Par Info-Rital dans le forum Applications et environnements graphiques
    Réponses: 2
    Dernier message: 29/07/2004, 23h37

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