Générateur de Code
XMLSpy contient un générateur de code built-in qui génère des fichiers de classe Java, C++ ou C# depuis les Schémas XML. Le code généré consiste en des bibliothèques de schema wrapper qui vous permettent de créer des applications de logiciel qui traitent des données XML. Les bibliothèques schema wrapper vous permettent de travailler avec les données XML par le biais des programmes, utilisant les types générés du schéma. Vous utiliseriez généralement le générateur de code comme suit. D’abord, modélisez votre Schéma XML dans l’éditeur de schéma graphique XMLSpy (Aperçu de schéma). Ensuite, générez le code dans votre langage de code préféré (Java, C++ ou C#). Si vous changez le modèle de contenu du schéma, exécutez une nouvelle fois le générateur de code.
Le code généré prend en charge les opérations suivantes :
•Lire des fichiers XML dans une représentation en mémoire Document Object Model (DOM)
•Écrire des fichiers XML depuis une représentation DOM à nouveau dans un fichier de système
•Convertir des strings dans des arborescences XML DOM et vice-versa.
La table ci-dessous résume l’information de prise en charge.
Langue cible | C++ | C# | Java |
---|---|---|---|
Environnements de développement | Microsoft Visual Studio 2013, 2015, 2017, 2019, 2022 | Microsoft Visual Studio 2013, 2015, 2017, 2019, 2022
Frameworks cible :
•.NET Framework •.NET Core 3.1 •NET 5.0 •NET 6.0 •NET 8.0 | Java SE JDK 8, 11, 17, 21 (y compris OpenJDK) Eclipse 4.4 ou plus Apache Ant (fichier build.xml) |
XML DOM implementations | MSXML 6.0 Apache Xerces 3 | System.Xml | JAXP |
Information spécifique au langage
L’information spécifique au langage est fournie dans les sous-sections ci-dessous.
C++
Vous pouvez configurer si vous souhaitez que la sortie générée C++ doit utiliser MSXML 6.0 ou Apache Xerces 3. XMLSpy génère des fichiers complets de projet (.vcproj) et de solution (.sln) pour toutes les versions prises en charge de Visual Studio (voir table ci-dessous). Le code généré prend en charge MFC on option.
Notez les exigences préalables suivantes :
•Pour compiler le code C++ généré, Windows SDK doit être installé sur votre ordinateur.
•Afin de pouvoir utiliser Xerces 3 pour C++, vous devrez l'installer et le construire utilisant la les instructions sous Apache Xerces page. Veuillez vous assurer d'ajouter la variable d'environnement XERCES3 qui pointe vers le répertoire dans lequel Xerces a été installé (par ex., C:\xerces-c-3.2.2). De même, la variable d'environnement PATH doit contenir le chemin dans lequel les binaires Xerces se trouvent ex.,%XERCES3%\bin).
•Lorsque vous construisez le code C++ pour Visual Studio et utilisez une bibliothèque Xerces précompilée pour Visual C++, vous devrez modifier le paramètre compilateur dans tous les projets de la solution. Suivez les étape ci-dessous :
a)Choisir tous les projets dans le Solution Explorer.
b)Cliquez sur Properties dans le menu Projet.
c)Cliquer sur Configuration Properties | C/C++ | Language.
d)Dans la liste des configurations, choisir All Configurations.
e)Modifier Treat wchar_t as Built-in Type en No (/Zc:wchar_t-)
C#
Le code C# généré peut être utilisé depuis tout langage de programmation compatible avec .NET, comme VB.NET, Managed C++ ou J#. Les fichiers de projet peuvent être générés pour toutes les versions prises en charge de Visual Studio (voir table ci-dessus).
Java
La sortie Java générée est écrite en conformité avec l'API Java de standard industriel pour XML Processing (JAXP) et comprend un fichier build Ant et des fichiers de projet pour les versions prises en charge de Java et Eclipse (voir table ci-dessus).
Résoudre les exceptions "Mémoire insuffisante" pendant la compilation Java
Schémas complexes Peuvent produire une grande quantité de code, qui peut entraîner une exception java.lang.OutofMemory pendant la compilation en utilisant Ant. Pour corriger cela :
•Ajouter la variable d’environnement ANT_OPTS, qui définit des options Ant spécifiques comme la mémoire à attribuer à l’ordinateur, et configurer sa valeur telle qu’indiqué ci-dessous.
•Pour vous assurer que le compileur et le code généré soient exécutés dans le même processus qu’Ant, changer l’attribut fork, dans build.xml, sur false.
Vous devrez éventuellement personnaliser les valeurs selon la quantité de mémoire disponible dans votre appareil et la taille du projet sur lequel vous travaillez. Pour plus de détails, voir votre documentation Java VM.
Lorsque vous exécutez la commande ant jar, vous recevrez éventuellement un message d’erreur de type "[...] archive contains more than 65535 entities". Afin d’éviter cela, il est recommandé d’utiliser Ant 1.9 ou plus, et dans le fichier build.xml, d’ajouter zip64mode="as-needed" dans l’élément <jar>. |
Sortie générée
Le dossier de désigné pour le code généré contient toutes les bibliothèques et les fichiers requis pour manipuler des fichiers XML par le biais d’un programme, concrètement :
•Bibliothèques Standard Altova
•Bibliothèques Schema Wrapper
•Une application de test vide avec un échantillon de code de source. Le squelette d’application de test est une application que l’on peut compiler qui appelle une méthodeExample() vide. Vous pouvez ajouter votre code de texte dans cette méthode pour un test rapide et simple de votre bibliothèque récemment générée.
Modèles de générateur de code
Le code généré est créé via un modèle qui est écrit dans un langage de modèle appelé SPL SPL (Spy Programming Language). Vous pouvez personnaliser le modèle utilisé pour code-generation. Par exemple, vous pouvez utiliser SPL pour mapper les types de données intégrées dans les datatypes primitifs d’un langage de programmation et créer vos propres modèles pour automatiser la génération de tout autre format virtuel, par exemple, des EJB, fichiers WSDL, scripts SQL, ASP et code WML.
Exemples
Pour des exemples illustrant les capacités de génération de code, voir Exemple : Book Library et Example: Purchase Order.