2009-10-16 10 views
3

Je suis à la recherche d'un framework de sérialisation XML qui propose une option de configuration XML au lieu d'annotation pour nommer des classes et des champs.Sérialisation d'objets Java en xml et en arrière (configuration XML)

J'ai regardé Simple et XStream mais je n'ai pas trouvé de méthode pour le faire. Je suppose que je pourrais utiliser Spring IOC et XStreams aliasing, mais s'il y a des cadres, qui pourraient faire cela pour moi, ce serait bien sûr mieux :)

Répondre

3

JiBX est un framework Java-XML Binding dans lequel vous pouvez utiliser XML fixations. Le XML est un peu bavard et peut parfois être un peu difficile à gérer, mais cela peut être vrai de n'importe quelle configuration XML. Je sais que vous avez dit que vous avez regardé xstream, mais une configuration xstream peut être faite par le code (pas de configuration, mais en configurant l'objet xstream, par exemple en omettant des champs). Je ne sais pas si c'est suffisant pour vous, mais vous pouvez faire certaines choses sans les annotations.

+0

+1 jibx est le seul cadre de triage à jour que je connaisse qui a des définitions de liaison externalisées – skaffman

+0

À première vue, je pense que c'est exactement ce dont j'ai besoin. – Trick

0

EclipseLink JAXB (MOXy) a un fichier de liaison extériorisée basé sur les métadonnées JAXB

Un exemple de fichier ressemble à:

<xml-bindings xmlns="http://www.eclipse.org/eclipselink/xsds/persistence/oxm"> 
    <java-types> 
     <java-type name="org.example.order.PurchaseOrder"> 
      <java-attributes> 
       <xml-attribute java-attribute="id"/> 
       <xml-element java-attribute="customer"> 
        <xml-java-type-adapter value="org.example.order.CustomerAdapter"/> 
       </xml-element> 
       <xml-element java-attribute="lineItems" name="line-item"/> 
      </java-attributes> 
     </java-type> 
    </java-types> 
</xml-bindings> 

Pour de plus amples informations, voir: - http://wiki.eclipse.org/EclipseLink/Examples/MOXy/EclipseLink-OXM.XML

0

J'adore XStream parce qu'il la plupart du temps juste fonctionne TM.

Je n'ai pas essayé cela moi-même ou n'y ai pas beaucoup réfléchi, mais avez-vous envisagé d'utiliser XStream à la fois pour les données réelles et pour sa propre configuration? Je pense que vous pouvez utiliser XStream pour lire un fichier de configuration, puis utiliser les données (String) simples obtenues comme arguments pour les appels de méthode alias() avant le traitement des données.