Zi Youltimayte Castor gaïde 2, Zi automatizaïcheun !
DevFrançaisTutorials
1 Introduction
Dans le précédent document nous avons vu une bonne partie de Castor.
Ici nous allons voir, comment tout faire automatiquement… DTD -> XSD -> Sources -> Mapping
1.1 Pré-requis
Une DTD.
1.2 C’est tout ?
Oui.
1.3 Est-ce-que ça marche ?
Oui mais il faudrait arrêter de poser des questions maintenant, ça suffit !
2 Comment faire
C’est hyper compliqué, faut vraiment s’accrocher…
2.1 DTD exemple
Une DTD simple, qui reprend l’exemple de http://quidquid.fr/fr/2003/07/zi-youltimayte-castor-gaide/ :
<!ELEMENT Cave (Bouteille*) > <!ATTLIST Cave bouteilleIndex CDATA #REQUIRED > <!ELEMENT Bouteille (#PCDATA)> <!ATTLIST Bouteille id CDATA #REQUIRED nom CDATA #IMPLIED annee CDATA #IMPLIED quantite CDATA #IMPLIED type CDATA #IMPLIED format CDATA #IMPLIED >
2.2 Générer le XSD de mapping
En ligne de commande :
[root@neptune]# java -cp .:commons-logging.jar:castor.jar:xerces.jar org.exolab.castor.xml.dtd.Converter cave.dtd cave.xsd ISO-8859-1
Ici un beau fichier XSD a dû être créé :
<?xml version="1.0" encoding="UTF-8"?> <schema xmlns="http://www.w3.org/2001/XMLSchema"> <element name="Bouteille"> <complexType mixed="true"> <attribute name="annee" type="string"/> <attribute name="nom" type="string"/> <attribute name="type" type="string"/> <attribute name="quantite" type="string"/> <attribute name="format" type="string"/> <attribute name="id" type="string" use="required"/> </complexType> </element> <element name="Cave"> <complexType> <sequence> <element ref="Bouteille" minOccurs="0" maxOccurs="unbounded"/> </sequence> <attribute name="bouteilleIndex" type="string" use="required"/> </complexType> </element> </schema>
2.3 Générer les sources Java
Bon, on va partir du fichier XSD, pour générer les sources Java que l’on compile ensuite :
[root@neptune]# java -cp .:commons-logging.jar:castor.jar:xerces.jar org.exolab.castor.builder.SourceGenerator -i cave.xsd -package mon.dossier.truc.muche -verbose Creating classes for: Cave Creating classes for: Bouteille [root@neptune]# javac -classpath .:castor.jar:xerces.jar mon/dossier/truc/muche/*.java
A ce stade vos sources java sont générées et les répertoires de package aussi…
2.4 Générer le fichier de mapping
Il ne reste plus qu’à générer le fichier de mapping :
[root@neptune]# java -cp .:commons-logging.jar:castor.jar:xerces.jar org.exolab.castor.tools.MappingTool -i mon.dossier.truc.muche.Cave -o mapping.xml
3. Conclusion
Castor rulez… Encore 😉
@musez-vous bien !
Leave a comment