![]() |
Stratégie de test au sein du processus d'évolution d'architecture de Sodifrance( Télécharger le fichier original )par Laurent GARNIER CNAM Nantes - Ingénieur informatique 2011 |
7.5 Du XML au JarComme indiqué précédemment dans le document, pour que les briques qui composent la chaîne d'évolution d'architecture soient facilement intégrées, le plus simple est qu'elles soient au format archive Java (Jar). Dans le cas présent, l'objectif de ce Jar est de fournir une API permettant de s'affranchir de la gestion du formatage XML, que ce soit en lecture ou en écriture (désérialisation / sérialisation) et de ne manipuler que des objets Java dans les programmes. Pour obtenir ce résultat avec les fichiers XML, j'ai utilisé dans un premier temps l'outil Editix32, un éditeur XML, dont une des fonctionnalités est de produire un fichier XML Schema Desciption (XSD) à partir d'un fichier XML. Cela permet d'obtenir un premier niveau de fichier XSD. Ensuite, il est possible de retravailler le document XSD, pour lui spécifier par exemple un espace de nommage, ou pour affiner les types de données manipulées qui sont déterminés par défaut par Editix comme des chaînes de caractères. Pour terminer, j'utilise la classe SchemaCompiler de XmlBeans33, une bibliothèque d'outils de manipulations de fichiers XML pour Java, permet de générer à partir du fichier XSL une API de manipulation de fichier XML correspondant au format spécifié. Après l'import de ce Jar dans les programmes Java, il n'y a plus qu'à manipuler une grappe d'objet qui correspond en tout point au format qui définit le flux XML initial. Soit le document XML suivant : <?xml version="1.0" encoding="UTF-8"?> <tests > <test name="test1"> <event name="evenement1">test evenement1</event> <event name="evenement2">test evenement2</event> </test> <test name="test2"> <event name="evenementTer">test evenement3</event> </test> </tests> 32 Editix : http://www.editix.com/ 33 XmlBeans : http://xmlbeans.apache.org/ CNAM de Nantes - 2010 / 2011 - Mémoire d'ingénieur Editix déterminera à partir de ce flux le schéma XSD suivant : <?xml version="1.0" encoding="UTF-8"?> <xsd:schema elementFormDefault="qualified" xmlns:xsd=" http://www.w3.org/2001/XMLSchema"> <xsd:element name="tests"> <xsd:complexType> <xsd:choice minOccurs="0" maxOccurs="unbounded"> <xsd:element ref="test"/> </xsd:choice> </xsd:complexType> </xsd:element> <xsd:element name="test"> <xsd:complexType mixed="true"> <xsd:choice minOccurs="0" maxOccurs="unbounded"> <xsd:element ref="event"/> </xsd:choice> <xsd:attribute name="name" type="xsd:string" use="required"/> </xsd:complexType> </xsd:element> <xsd:element name="event"> <xsd:complexType> <xsd:simpleContent> <xsd:extension base="xsd:string"> <xsd:attribute name="name" type="xsd:string" use="required"/> </xsd:extension> </xsd:simpleContent> </xsd:complexType> </xsd:element> </xsd:schema> La code java permettant de parcourir le fichier XML se résume alors à : TestsDocument testsDocument = TestsDocument.Factory.parse(file); Tests tests = testsDocument.getTests(); for (Test test : tests.getTestArray()) { for (Event event : test.getEventArray()) { System.out.println(event.getName()); System.out.println(event.getStringValue()); } } Comme on peut le constater, cette méthode simplifie grandement le parcours ou la constitution des fichiers XML en Java. Ce principe de manipulation des fichiers XML m'a beaucoup facilité la tâche tout au long de mes travaux lors de ce mémoire.
Figure 53 : métamodèle de paramétrage sYnopsis
|
|