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 :

CData marshall document DOM [JAXB]


Sujet :

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

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    358
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 358
    Par défaut CData marshall document DOM
    Bonjour,

    j'ai un petit souci avec un marshall d'un domdocument qui contient un cdata.
    Lorsque je le génère, j'obtiens ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <![CDATA[<?xml version="1.0"
    voici mon code

    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
     
     
    DOMDocument headerDoc = new DOMDocument();
     
            try {
                JAXBElement documentHeaderJAXBElement
                        = new JAXBElement(new QName(messageName), messageObj.getClass(), messageObj);
     
                JAXBContext jaxbContext = JAXBContext.newInstance(packageNamespace,
                		clazz.getClassLoader());
     
     
     
                Marshaller marshaller = jaxbContext.createMarshaller();
                marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
                marshaller.marshal(documentHeaderJAXBElement, headerDoc);
    .

    Avez-vous une idée ?

    merci

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    358
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 358
    Par défaut
    petite précision,

    headerDoc contient le cdata

  3. #3
    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
    Mais comment le cdata a-t-il été ajouté ? headerDoc devrait être vide, là.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    358
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 358
    Par défaut
    je me suis trompé, dsl, c'est messageObj qui contient un attribut String contenant une chaine xml.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    358
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 358
    Par défaut
    j'essaie cette solution
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
     Marshaller marshaller = jaxbContext.createMarshaller();
                marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
        		marshaller.setProperty("com.sun.xml.internal.bind.marshaller.CharacterEscapeHandler", new EscapeHandler() );
     
    			marshaller.marshal(documentHeaderJAXBElement, headerDoc);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    public class EscapeHandler implements CharacterEscapeHandler {
     
     
    	public void escape(char[] buf, int start, int len, boolean isAttValue, Writer out) throws IOException {
    			for (int i = start; i < start + len; i++) {
    			out.write(buf[i]);
    		}
     
    	}
    }
    mais j'obtiens ça comme erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    javax.xml.bind.PropertyException: property "com.sun.xml.internal.bind.marshaller.CharacterEscapeHandler" must be an instance of type com.sun.xml.internal.bind.marshaller.CharacterEscapeHandler, not com.xxx.common.message.EscapeHandler
    et quand je met ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
        		marshaller.setProperty("com.xxx.common.message.EscapeHandler", new EscapeHandler() );
    il me sort ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    javax.xml.bind.PropertyException: name: com.xxx.common.message.EscapeHandler value: com.xxx.common.message.EscapeHandler@36c136c1
    avez vous une solution
    ?

    merci

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

Discussions similaires

  1. [DOM] Enregistrer un Document dom dans un fichier xml
    Par java_girl dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 09/09/2006, 20h38
  2. [Xerces] Bout de code pour valider un document DOM
    Par toshiro dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 17/08/2006, 17h47
  3. [Xerces] Bout de code pour valider un document DOM
    Par toshiro dans le forum XML/XSL et SOAP
    Réponses: 0
    Dernier message: 17/08/2006, 11h34
  4. [DOM] [Axis] Enregistrement de document DOM
    Par ep31 dans le forum Format d'échange (XML, JSON...)
    Réponses: 4
    Dernier message: 01/02/2006, 11h21
  5. [DOM] Comment afficher à l'écran un document DOM
    Par jothi35 dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 16/12/2004, 08h54

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