2012-11-01 2 views
22

J'utilise JAXB et XJC pour la première fois.JAXB, XJC -> créer plusieurs fichiers de classe

Je voudrais générer des classes Java à partir d'un fichier XML, donc j'utilise this online helper pour générer un schéma à partir d'un fichier XML.

Après que je viens d'utiliser cette ligne de commande pour générer des classes Java:

xjc myschema.xsd 

c'est un travail mais je reçois un seul fichier Java et de nombreuses classes statiques à l'intérieur. Est-ce possible de générer de nombreux fichiers java qui ne contiennent qu'une seule classe par fichier?

Merci

Répondre

37

Par défaut JAXB (JSR-222) créera des classes internes statiques pour les types complexes imbriqués pour éviter les conflits de noms de classe. Vous pouvez utiliser un fichier de liaison externe pour désactiver ce comportement.

binding.xml

Un fichier de liaison vous permet de personnaliser la façon dont les classes Java sont générées à partir d'un schéma XML.

<jaxb:bindings 
    xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
    xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" 
    version="2.1"> 
    <jaxb:globalBindings localScoping="toplevel"/> 
</jaxb:bindings> 

XJC Appel

L'option -b est utilisée avec la commande XJC pour spécifier un fichier de liaison.

xjc -b binding.xml myschema.xsd 

Pour plus d'informations

+1

Un grand merci, je vais le tester dès que possible –

Questions connexes