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 !

Previous
Zi Youltimayte Castor gaïde !
Next
CastorHelper

Leave a comment

Your email address will not be published. Required fields are marked *

Time limit is exhausted. Please reload the CAPTCHA.