web-dev-qa-db-fra.com

Comment générer des classes JAXB à partir de XML uniquement

J'ai besoin de générer des classes à partir de XML qui ne fournissent pas de schéma. Je comprends que cela est presque inutile, mais le fait est que nous avons xml, il est structuré, et nous devrions être en mesure de créer un modèle à partir du xml. Dans le passé, je l'ai fait à la main, mais les documents xml actuels avec lesquels je travaille sont assez volumineux et mon temps serait probablement mieux utilisé pour construire quelque chose qui fait ce dont j'ai besoin. Mais je suppose que cela a déjà été fait et je ne le trouve pas.

Des pointeurs?

57
DanInDC

Il existe de nombreux outils disponibles (une recherche rapide sur Google devrait vous en procurer) qui peuvent générer du XSD à partir de XML en supposant un type de chaîne pour presque tout. Vous devriez pouvoir utiliser ce XSD pour exécuter JAXB pour obtenir des classes.

Voici un outil en ligne qui vous permet de le faire.

Et voici une casquette d'écran: enter image description here

65
Bala R

À partir de votre fichier xml, vous pouvez créer un fichier de définition de schéma XML (XSD). Une fois que vous avez le XSD, vous pourrez générer le code, que ce soit pour Java, C #, C++ ou tout ce qui précède.

Si vous avez Visual Studio, vous pouvez utiliser xsd.exe pour générer le fichier XSD.

Les références:

  • www.xmlforasp.net/CodeBank/System_Xml_Schema/BuildSchema/BuildXMLSchema.aspx

  • msdn.Microsoft.com/en-us/library/x6c1kb0s(v=vs.71).aspx

  • Syntaxe de commande: fichier xsd.xml [/ outputdir: répertoire]

  • ainsi "C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin\x64\xsd.exe" example.xml donne un exemple. Fichier xsd dans le même répertoire que le fichier xml.

XSD à Java: Référence:

XSD à C++: Références:

  • stackoverflow.com/questions/445905/xml-schema-to-c-classes
  • www.codesynthesis.com/products/xsd/

XSD à C #: Référence:

  • quickstart.developerfusion.co.uk/quickstart/howto/doc/xmlserialization/XSDToCls.aspx
  • Syntaxe de commande: "C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin\x64\xsd.exe" -c -l: c # -n: SomeNameSpace example.xsd
12
James Oravec

Si le XML a été créé par JAXB, il peut facilement être reconverti en objets. Il y a un tutoriel sur Oracle qui illustre une façon de le faire. Le framework Spring offre des fonctionnalités similaires utilisant JAXB qui sont très pratiques.

1
Johan Sjöberg