WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

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
  

précédent sommaire suivant

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

7.5 Du XML au Jar

Comme 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.

CNAM de Nantes - 2010 / 2011 - Mémoire d'ingénieur

 

CNAM de Nantes - 2010 / 2011 - Mémoire d'ingénieur

 

Figure 53 : métamodèle de paramétrage sYnopsis

CNAM de Nantes - 2010 / 2011 - Mémoire d'ingénieur

 

précédent sommaire suivant






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"Je voudrais vivre pour étudier, non pas étudier pour vivre"   Francis Bacon