Nous avons une classe, sans aucun contrôle sur la source, donc pas moyen de l'annoter pour JAXB. Nous avons également un cadre pour prendre soin de marshaling. Existe-t-il un moyen pour ce framework de demander à cette classe si elle est disponible en l'absence d'annotations?JAXB: comment dire si une classe est Marshalable sans annotations
2
A
Répondre
2
Il n'y a pas de mécanisme standard, mais je semblent les gens à accomplir cela en essayant de créer la JAXBContext de la classe:
public boolean isValidJAXBClass(Class aClass) {
try {
JAXBContext.newInstance(aClass);
} catch(JAXBException e) {
return false;
}
return true;
}
Vous n'avez pas besoin des annotations pour rassembler un objet JAXB. Vous pouvez contourner avoir avoir un @XmlRootElement en l'enveloppant dans un JAXBElement.
Si vous voulez un autre moyen de représenter les métadonnées, 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 plus d'informations, voir:
Questions connexes
- 1. Dire JAXB à unmarshal <xs:dateTime> à la classe Date à l'aide des annotations
- 2. annotations JAXB pour les classes d'attributs groovy
- 3. Comment dire si la glibc est utilisée
- 4. Comment utiliser les annotations JAXB du côté client pour GWT?
- 5. Est-ce que JAXB peut générer une classe générique?
- 6. Comment sérialiser une sous-classe Exception dans JAXB?
- 7. Comment détecter si une table existe (sans classe ou ID)
- 8. Méthode pour dire si l'ancêtre est une classe ou un module en Ruby?
- 9. Comment personnaliser JAXB Marshalling si vous générez des beans JAXB à partir de XML
- 10. Arrayage de classe abstrait dans JAXB
- 11. Comment savoir si une classe Java est abstraite?
- 12. Comment valider des annotations de données avec une classe MetaData
- 13. Génération de code JAXB XJC - La classe ObjectFactory est incomplète
- 14. Tester si une classe est polymorphe
- 15. Annotations JAXB XmlID et XmlIDREF (Schema to Java)
- 16. Comment savoir si un Type est une classe statique?
- 17. Vérification si une classe est java.lang.Enum
- 18. Comment dire à JRuby de recharger/rafraîchir une classe Java?
- 19. Tests de groupe testNG sans annotations
- 20. Comment dire quelle classe vous étend?
- 21. xsl: comment dire si une variable a été déclarée
- 22. printemps, classe abstraite et annotations
- 23. Comment vérifier si une classe Delphi est déclarée abstraite?
- 24. Comment savoir si une classe Java est un type primitif?
- 25. Marshall/Unmarshall un JSON à une classe Java en utilisant JAXB
- 26. Teste si une classe est une sous-classe d'une autre classe en lisp commun
- 27. Comment vérifier si une sous-classe est une instance d'une classe lors de l'exécution?
- 28. Quel est le contraire de JAXB? c'est-à-dire générer des classes XML FROM?
- 29. Puis-je mettre des annotations pour plusieurs processeurs dans une classe Java?
- 30. JAXB maréchaux XML différemment à fluxSortie contre StringWriter