2011-02-14 17 views
46

Necesito generar clases desde xml que no proporcionen un esquema. Entiendo que esto es casi inútil, pero el hecho es que tenemos xml, está estructurado y deberíamos poder crear un modelo a partir del xml. En el pasado lo he hecho a mano, pero los documentos xml actuales con los que estoy trabajando son bastante grandes y es probable que mi tiempo lo pase mejor construyendo algo que haga lo que necesito. Pero, supongo que ya se ha hecho, y simplemente no puedo encontrarlo.Cómo generar clases JAXB desde solo XML

¿Alguna sugerencia?

Respuesta

55

Hay muchas herramientas disponibles (una búsqueda rápida en Google debería traerle algunas) que pueden generar XSD desde XML asumiendo el tipo de cadena para casi todo. Debería poder usar ese XSD para ejecutar JAXB para obtener clases.

Aquí hay un online tool que le permite hacer eso.

Y aquí es un tapón de pantalla: enter image description here

+1

también es bueno t ool es http://www.freeformatter.com/xsd-generator.html#ad-output – Yauhen

1

Si el XML fue creado por JAXB, fácilmente se puede convertir de nuevo en objetos. Hay un tutorial en oráculo que ilustra una forma de hacerlo. Spring framework ofrece características similares utilizando JAXB que son muy convenientes.

8

Desde su archivo xml, puede crear un archivo de definición de esquema XML (XSD). Una vez que tenga el XSD, podrá generar el código, ya sea para Java, C#, C++ o todo lo anterior.

Si tiene Visual Studio, puede usar xsd.exe para generar el archivo XSD.

Referencias:

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

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

  • Comando sintaxis: file.xml xsd [/ outputdir: directorio]

  • por lo "C: \ Pr ogram Files \ Microsoft SDKs \ Windows \ v6.0A \ Bin \ x64 \ xsd.exe " example.xml produce un archivo example.xsd en el mismo directorio que el archivo xml .

XSD a Java: Referencia:

XSD to C++: Referencias:

  • stackoverflow.com/questions/445905/xml-schema-to-c-classes~~V~~3rd
  • www.codesynthesis.com/productos/xsd/

XSD para C#: Referencia:

  • quickstart.developerfusion.co.uk/quickstart/howto/doc/xmlserialization/XSDToCls.aspx
  • Sintaxis de los comandos: "C: \ archivos de programa \ Microsoft SDK \ Windows \ v6.0A \ Bin \ x64 \ xsd.exe" -c-l: C# -n: SomeNameSpace example.xsd
Cuestiones relacionadas