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

Persistance des données Java Discussion :

[JAXB] Une variable en majuscule transformée en minuscule dans le fichier xml


Sujet :

Persistance des données Java

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2
    Points : 1
    Points
    1
    Par défaut [JAXB] Une variable en majuscule transformée en minuscule dans le fichier xml
    Bonjour,

    Lorsque je serialise mon objet (disons un objet provenant de l'instanciation de la classe "Circuit" ) à l'aide de JAXB (apres avoir utilisé un fichier xsd et tout ce qu'il faut pour générer les classes et les utiliser convenablement) tout se passe comme prévu et fonctionne sauf que l'élément root qui est l'objet circuit (un circuit est un liste de composants ..) est ecrit en minuscule...
    Pour résumer : j'obtiens un truc du genre

    <circuit .......>
    ...
    ....
    <\circuit>

    Alors que partout où j'ai défini "Circuit" je l'ai définit avec une majuscule.
    Or j'ai absolument besoin que Circuit soit en majuscule dans le xml car j'utilise des classes générées en c++ derrière qui attende "Circuit" et non "circuit"

    --> Est-ce que quelqu'un connaît ce type de phénomène ?
    (Toutes les autres elements, attributs etc... que je serialise sont pourtant correctements representés en majuscule quand il le faut)

    --> D'autre part, je crois qu'il y a un moyen pour forcer la substitution de "circuit" en "Circuit" lors de la serialisation quelqu'un peut-il m'en dire plus ?


    P.S: J'utilise donc JAXB avec Marshaller pour serialiser mes objets.

    Merci d'avance.

  2. #2
    Expert éminent sénior


    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    7 856
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 7 856
    Points : 34 380
    Points
    34 380
    Par défaut
    Bonjour,

    Qu'est ce qu'il y a dans les annotations de ta classe principale ?

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Bonjour Ricky81,

    Comme annotations pour la classe Circuit en question j'ai :

    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
    /**
     * <p>Java class for Circuit complex type.
     * 
     * <p>The following schema fragment specifies the expected content contained within this class.
     * 
     * <pre>
     * &lt;complexType name="Circuit">
     *   &lt;complexContent>
     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
     *       &lt;sequence>
     *         &lt;element name="NbOfComponents" type="{http://www.w3.org/2001/XMLSchema}unsignedInt"/>
     *         &lt;element name="Component" type="{}Component" maxOccurs="unbounded"/>
     *       &lt;/sequence>
     *     &lt;/restriction>
     *   &lt;/complexContent>
     * &lt;/complexType>
     * </pre>
     * 
     * 
     */
    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "Circuit", propOrder = {
        "nbOfComponents",
        "component"
    })
    @XmlRootElement
    public class Circuit {
    
    ...........
    
    }
    Sachant que la partie qui définit un circuit dans mon xml schema est :

    Code xml : 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
    <?xml version="1.0"?>
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                xmlns:xse="http://www.codesynthesis.com/xmlns/xml-schema-extension">
     
    .......
    ....
    ...
    ...
    .
     
    <xsd:complexType name="Circuit">
        <xsd:sequence>
          <xsd:element name="NbOfComponents" type="xsd:unsignedInt"/>
          <xsd:element name="Component" type="Component" maxOccurs="unbounded"/>
        </xsd:sequence>
      </xsd:complexType>
     
      <xsd:element name="Circuit" type="Circuit"/>
     
     
    </xsd:schema>

    Enfin, voici un exemple de ce que j'obtiens dans mon fichier xml :
    Code xml : 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
    36
    37
    38
    39
     
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <circuit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="Interface.xsd">
        <NbOfComponents>2</NbOfComponents>
        <Component xsi:type="Register" Id="C_0">
            <Name>C_0</Name>
            <Delay xsi:type="NoneDelay"/>
            <Protocol>WCHB</Protocol>
            <Initialized>false</Initialized>
            <PreviousRegister>
                <Port>0</Port>
                <Reg>C_1</Reg>
            </PreviousRegister>
            <NextRegister>
                <Port>0</Port>
                <Reg>C_1</Reg>
            </NextRegister>
            <AttachedFb>
                <NbOfFb>0</NbOfFb>
            </AttachedFb>
        </Component>
        <Component xsi:type="Register" Id="C_1">
            <Name>C_1</Name>
            <Delay xsi:type="NoneDelay"/>
            <Protocol>WCHB</Protocol>
            <Initialized>false</Initialized>
            <PreviousRegister>
                <Port>0</Port>
                <Reg>C_0</Reg>
            </PreviousRegister>
            <NextRegister>
                <Port>0</Port>
                <Reg>C_0</Reg>
            </NextRegister>
            <AttachedFb>
                <NbOfFb>0</NbOfFb>
            </AttachedFb>
        </Component>
    </circuit>

    Merci pour ton intérêt.

  4. #4
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2007
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Même problème
    Salut thib_84, je sais que cela fait maintenant longtemps, mais je suis confronté exactement au même problème que toi et je n'arrive pas à le solutionner.

    Avais-tu réussi à t'en sortir et si tu t'en souviens, pourrais-tu me donner la solution que tu aurais adopté.

    Merci d'avance.

Discussions similaires

  1. Réponses: 6
    Dernier message: 08/06/2010, 12h15
  2. Comment transformer les tables dans un fichier txt vers une BD comme Mysql
    Par badrdine.in dans le forum Développement de jobs
    Réponses: 5
    Dernier message: 20/03/2009, 12h58
  3. Réponses: 4
    Dernier message: 27/11/2008, 10h36
  4. [Talend]Utiliser une variable de l'input row7.nombre dans un t_oracleRow
    Par lolotte35 dans le forum Développement de jobs
    Réponses: 8
    Dernier message: 07/08/2007, 15h32
  5. Réponses: 4
    Dernier message: 21/03/2007, 11h35

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