2011-03-01 1 views
8

Le mode de liaison simple de JAXB modifie les noms de collection en leur "version" , par exemple. "additionalData" devient "additionalDatas". Y a-t-il une solution pour changer ce comportement? J'ai besoin d'avoir un nom de champ Java et un nom de méthode égal au nom du champ XSD. Mes liaisons fichier:Pourquoi le mode simple XJC de JAXB 2 RI change-t-il les noms des collections?

<?xml version="1.0" encoding="UTF-8"?> 
<bindings xmlns="http://java.sun.com/xml/ns/jaxb" 
      xmlns:xsi="http://www.w3.org/2000/10/XMLSchema-instance" 
      xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc" 
      xsi:schemaLocation=" 
http://java.sun.com/xml/ns/jaxb http://java.sun.com/xml/ns/jaxb/bindingschema_2_0.xsd" 
version="2.1"> 
    <globalBindings> 
    <serializable uid="1" /> 
    <xjc:simple/> 
    </globalBindings> 
</bindings> 

Répondre

5

Le "mode de liaison simple" est une caractéristique étendue du JAXB RI (Metro). Rendre pluriel les noms de propriété de collection faisait partie de sa conception.

De: http://weblogs.java.net/blog/kohsuke/archive/2007/01/using_jaxb_ris.html

Ma fonction préférée dans le JAXB RI est le mode plus simple et une meilleure liaison, ce qui rend le code généré même plus facile à utiliser, par ...

  1. Élimination JAXBElement autant que possible
  2. En vous donnant une meilleure, plus en général
  3. Utilisez pluriels noms de propriété, le cas échéant

Vous pouvez être en mesure d'utiliser les personnalisations de schéma normales pour contrôler le nom de la propriété. Reportez-vous à l'une de mes réponses précédentes (lien ci-dessous):

+0

Est-il possible de désactiver cette fonction et continuer à utiliser « mode de liaison simple »? Parce que j'en ai besoin pour ajouter @XmlRootElement aux classes générées. – User123456789

Questions connexes