Generador de código
XMLSpy incluye un generador integrado que puede generar archivos de clases en Java, C++ o C# a partir de esquemas XML. El código generado consiste en bibliotecas contenedoras de esquemas rigurosas que permiten crear aplicaciones de software que procesen datos XML. Estas bibliotecas permiten trabajar trabajar con datos XML de forma programática usando tipos generados a partir del esquema. Por lo general, el generador de código se utiliza del siguiente modo. En primer lugar, cree un modelo de su esquema XML en el editor gráfico de esquemas de XMLSpy (Vista Esquema). Después, genere código en su lenguaje de código preferido (Java, C++ o C#). Recuerde que si cambia el modelo de contenido del esquema, debe volver a ejecutar el generador de código.
El código generado es compatible con estas operaciones:
•Leer archivos XML en una representación en memoria de un Modelo de Objetos del Documento (DOM)
•Escribir archivos XML desde una representación de un DOM en un sistema de archivos
•Convertir cadenas en estructuras XML DOM y viceversa.
En la siguiente tabla puede ver un resumen de la información de compatibilidad.
Lenguaje de destino | C++ | C# | Java |
---|---|---|---|
Entornos de desarrollo | Microsoft Visual Studio 2013, 2015, 2017, 2019, 2022 | Microsoft Visual Studio 2013, 2015, 2017, 2019, 2022
Marcos de destino:
•.NET Framework •.NET Core 3.1 •NET 5.0 •NET 6.0 •NET 8.0 | Java SE JDK 8, 11, 17, 21 (incluido OpenJDK) Eclipse 4.4 o superior Apache Ant (archivo build.xml) |
Implementaciones XML DOM | MSXML 6.0 Apache Xerces 3 | System.Xml | JAXP |
Información sobre los lenguajes de transformación
Para obtener más información sobre los lenguajes de transformación, siga leyendo.
C++
Puede configurar si el resultado generado en C++ debe usar MSXML 6.0 o Apache Xerces 3. XMLSpy genera archivos completos de proyecto (.vcproj) y solución (.sln) para todas las versiones de Visual Studio compatibles (véase la tabla de más arriba). El código generado puede ser compatible con MFC.
Para ello debe cumplir estas condiciones:
•Para compilar el código C++ generado debe tener Windows SDK instalado en su equipo.
•Para usar Xerces 3 para C++ debe instalarlo y compilarlo según las instrucciones en el sitio web de Apache Xerces. Asegúrese de que añade la variable de entorno XERCES3 que apunta al directorio en el que instaló Xerces (p.ej. C:\xerces-c-3.2.2). Además, la variable de entorno PATH debe incluir la ruta de la ubicación donde se encuentran los archivos binarios Xerces (p.ej. %XERCES3%\bin).
•Al compilar código C++ para Visual Studio mientras usa una biblioteca Xerces precompilada para Visual C++ debe cambiar la configuración del compilador en todos los proyectos de la solución. Para ello siga estos pasos:
a)Seleccione todos los proyectos en el explorador de soluciones.
b)En el menú Proyecto haga clic en Propiedades.
c)Haga clic en Propiedades de la configuración | C/C++ | Lenguaje.
d)En la lista de configuraciones seleccione Todas las configuraciones.
e)Cambie Treat wchar_t as Built-in Type por No (/Zc:wchar_t-).
C#
El código C# generado lo puede usar cualquier lenguaje de programación apto para .NET, como VB.NET, Managed C++ o J#. Los archivos de proyecto se pueden generar para todas las versiones compatibles de Visual Studio (véase la tabla de más arriba).
Java
El código Java generado se escribe conforme a la API Java para procesamiento XML (JAXP) e incluye un archivo de compilación Ant y archivos de proyecto para las versiones compatibles de Java y Eclipse (véase la tabla de más arriba).
Solución para las excepciones de memoria insuficiente durante la compilación de Java
Las asignaciones de datos complejas pueden producir una gran cantidad de código, lo cual puede dar lugar a una excepción java.lang.OutofMemory durante la compilación con Ant. Para resolver esto:
•Añada la variable de entorno ANT_OPTS que asigna al compilador ciertas opciones de Ant, como la opción de memoria. Configure su valor como se muestra a continuación.
•Para asegurarse de que el compilador y el código generado se ejecutan en el mismo proceso que Ant, cambie el valor del atributo fork de build.xml a false.
Quizás sea necesario personalizar los valores, dependiendo de la cantidad de memoria disponible en su equipo y del tamaño del proyecto en el que esté trabajando. Para más información, consulte su documentación de Java VM.
Es posible que al ejecutar el comando ant jar reciba un mensaje de error parecido a este: "[...] el archivo contiene más de 65535 entidades". Para evitar este error, recomendamos utilizar Ant 1.9 o superior y, además, añadir zip64mode="as-needed" al elemento <jar> en el archivo build.xml. |
Resultados generados
La carpeta de destino designada para el código generado incluye todas las bibliotecas y archivos necesarios para manipular archivos XML mediante programación, es decir:
•Las bibliotecas estándar de Altova
•Las bibliotecas de contenedores de esquemas
•Una aplicación de prueba vacía con código fuente de muestra. Se trata de una aplicación compilable que llama a un método Example() vacío. Puede añadir su código de muestra a este método para hacer pruebas de forma fácil y rápida con la biblioteca que acaba de generar.
Plantillas de generación de código
El código generado se puede personalizar con un archivo de plantilla llamado SPL (Spy Programming Language). Puede personalizar la plantilla utilizada para la generación de código. Puede usar, por ejemplo, SPL para controlar íntegramente asignaciones de tipos de datos integrados en el esquema XML con tipos de datos primitivos de un lenguaje de programación en particular. Esto le permite compilar sus propias plantillas para automatizar la generación de prácticamente cualquier otro formato, como p.ej. EJB, archivos WSDL, scripts SQL o código ASP o WML.
Ejemplos
Para ver ejemplos de generación de código, consulte los apartados Ejemplo: Book Library y Ejemplo: Purchase Order.