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 :

Remplacement de nom de classe [JAXB]


Sujet :

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

  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 715
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 715
    Par défaut Remplacement de nom de classe
    Bonsoir,

    J'ai deux fichiers Xsd qui possedent le meme nom de classe "tFichier" lors de la génératiob Jaxb j'ai essaye sans succes les cinq remplacements suivant dans une génération de classe.
    Ou est mon erreur merci d'avance ?

    le Xsd de depart
    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
     
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <xsd:schema    targetNamespace="http://www.toto.fr"
                xmlns="http://www.toto.fr"
                xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                elementFormDefault="qualified">
     
    <xsd:complexType name="tFichier">
             <xsd:simpleContent>
                 <xsd:extension base="xsd:base64Binary">
                     <xsd:attribute name="nom" type="xsd:string" />
                     <xsd:attribute name="content-type" type="xsd:string" use="required" />
                     <xsd:attribute name="extension" type="xsd:string" />
                 </xsd:extension>
             </xsd:simpleContent>
         </xsd:complexType>
    </xsd:schema>
    Mes tests de remplacements JAXB
    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
     
     
    <jxb:bindings version="1.0"
                  xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
                  xmlns:xsd="http://www.w3.org/2001/XMLSchema">
     
          <jxb:bindings schemaLocation="../xsd/Fiche.xsd" node="//xsd:schema">
            <jxb:schemaBindings>
                <jxb:package name="com.fiche.generated"/>
            </jxb:schemaBindings>
          </jxb:bindings>
     
     
    <!-- fichier a l origine
          <jxb:bindings schemaLocation="../xsd/Fiche2.xsd" node="//xsd:schema">
            <jxb:schemaBindings>
                <jxb:package name="com.fiche.generated"/>
            </jxb:schemaBindings>
          </jxb:bindings>
     
     
    -->   
    <!-- test 01
    <jxb:bindings schemaLocation="../xsd/Fiche2.xsd" node="//xsd:schema">
            <jxb:schemaBindings>
                <jxb:package name="com.fiche.generated"/>
            </jxb:schemaBindings>
            <jxb:bindings node="//xsd:complexType[@name='tFichier']">
               <jxb:class name="tFichier2"/>
            </jxb:bindings>
    </jxb:bindings>
    -->
     
     
    <!-- test 02
    <jxb:bindings schemaLocation="../xsd/Fiche2.xsd" node="//xsd:schema">
            <jxb:schemaBindings>
                <jxb:package name="com.fiche.generated"/>
            </jxb:schemaBindings>
            <jxb:bindings node="//*/xsd:complexType[@name='tFichier']">
               <jxb:class name="tFichier2"/>
            </jxb:bindings>
    </jxb:bindings>
    -->
     
     
    <!-- test 03
    <jxb:bindings schemaLocation="../xsd/Fiche2.xsd" node="//xsd:schema">
            <jxb:schemaBindings>
                <jxb:package name="com.fiche.generated"/>
            </jxb:schemaBindings>
             <jxb:bindings node="//*//xsd:complexType[@name='tFichier']">
               <jxb:class name="tFichier2"/>
            </jxb:bindings>
    </jxb:bindings>
    -->
     
     
    <!-- test 04
    <jxb:bindings schemaLocation="../xsd/Fiche2.xsd" node="//xsd:schema">
            <jxb:schemaBindings>
                <jxb:package name="com.fiche.generated"/>
            </jxb:schemaBindings>
             <jxb:bindings node=".//xsd:complexType[@name='tFichier']">  
               <jxb:class name="tFichier2"/>
            </jxb:bindings>
    </jxb:bindings>
    -->
     
     
    <!-- test 05
    <jxb:bindings schemaLocation="../xsd/Fiche2.xsd" node="//xsd:schema">
            <jxb:schemaBindings>
                <jxb:package name="com.fiche.generated"/>
            </jxb:schemaBindings>
           <jxb:bindings node="//xsd:complexType[@name='tFichier']"> 
               <jxb:class name="tFichier2"/>
            </jxb:bindings>
    </jxb:bindings>
    -->

  2. #2
    Membre Expert Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Par défaut
    J'ai deux fichiers Xsd qui possedent le meme nom de classe "tFichier" lors de la génératiob Jaxb j'ai essaye sans succes les cinq remplacements suivant dans une génération de classe.
    D'accord, vous avez deux xsd's. Ils possedent tous les deux un complexType du même nom tFichier. Vous voulez, dans une application, les utiliser, tous les deux. C'est ça?

    Une question importante s'impose: quel est le targetNamespace pour chacun d'eux?

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 715
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 715
    Par défaut
    Re,

    C'est le meme TargetNameSpace, Aie !

  4. #4
    Membre Expert Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Par défaut
    Si ils ont le même namespace: l'un complexType tFichier se trouve dans Fiche.xsd et l'autre se trouve dans Fiche2.xsd, dans ce cas, il est impossible de le faire, non pour jaxb avec customization ou pas, non pour quelque moteur schéma-conscient (schema-aware) que ce soit non plus.

    Le moins vous pouvez débrouiller, c'est de changer le namespace de l'un d'eux. Et par conséquence, il est permis de faire une customization même pour les mapper au même package java comme vous semblez vouloir faire.

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

Discussions similaires

  1. Que veut dire le "T" devant un nom de classe?
    Par Jhulk dans le forum Delphi
    Réponses: 5
    Dernier message: 08/06/2006, 08h39
  2. Réponses: 4
    Dernier message: 30/05/2006, 17h21
  3. Noms de classes identiques
    Par manu.c dans le forum Rational
    Réponses: 13
    Dernier message: 05/04/2006, 14h51
  4. Passer un text comme un nom de classe
    Par marie253 dans le forum Langage
    Réponses: 5
    Dernier message: 19/07/2004, 11h22
  5. [Chargement de classe][noms de classe relatifs]
    Par freudy dans le forum Langage
    Réponses: 5
    Dernier message: 21/04/2004, 11h36

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