Générer un schéma xsd depuis un fichier xml
Pour cela nous allons utiliser l’outil trang, outil développé en Java, qui est donc multi-plateforme
A propos
Installation et utilisation de trang
Je vais expliquer ici son utilisation et l’installation sur la distribution Archlinux. Nous installons trang avec l’outil Yaourt
yaourt -S trang
Pour le fichier d’exemple, j’ai utilisé le fichier XML fourni dans le tutoriel suivant http://www.allhtml.com/articles/detail/354
Copiez le fichier de l’ exemple suivant dans le fichier xml.xml
<?xml version="1.0"?> <!-- Exemple issu du site http://www.allhtml.com/articles/detail/354 --> <traducteur> <mot> <francais>Bleu</francais> <english>Blue</english> <italiano>Azzurro</italiano> </mot> <mot> <francais>Rouge</francais> <english>Red</english> <italiano>Rosso</italiano> </mot> <mot> <francais>Vert</francais> <english>Green</english> <italiano>Verde</italiano> </mot> </traducteur>
Ensuite lancez la commande suivante:
trang xml.xml xml.xsd
Et voici le résultat
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> <xs:element name="traducteur"> <xs:complexType> <xs:sequence> <xs:element maxOccurs="unbounded" ref="mot"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="mot"> <xs:complexType> <xs:sequence> <xs:element ref="francais"/> <xs:element ref="english"/> <xs:element ref="italiano"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="francais" type="xs:NCName"/> <xs:element name="english" type="xs:NCName"/> <xs:element name="italiano" type="xs:NCName"/> </xs:schema>