2009-01-14 8 views
1

Étant donné un fichier XSD Dataset, est-il possible de générer des classes Java, qui n'utilisent pas System.Data? J'ai essayé d'exécuter un test en utilisant l'outil XJC de JAXB, mais cela ne produit rien de terriblement utile. Mise à jour: J'ai aussi essayé XmlBeans, en suivant la suggestion de Fernando, et il génère quelque chose de similaire à la sortie XJC - c'est-à-dire des représentations de classe des tables, mais sans colonnes, contraintes ou lignes. Je peux ajouter ces choses dans une façade, mais idéalement elles seraient générées par n'importe quel compilateur XSD utilisé.Existe-t-il un moyen de générer des classes Java à partir de fichiers MS-Dataset XSD?

Répondre

1

Vous pouvez essayer XMLBeans au lieu de l'API JAXB. Vous pouvez l'appeler en utilisant la commande par ligne de commande ou simplement utiliser un script ANT. J'ai passé la partie d'un fichier build.xml qui appelle XMLBeans pour compiler XSD dans un fichier jar.

<taskdef name="xmlbean" classname="org.apache.xmlbeans.impl.tool.XMLBean" classpathref="classpath"/> 


<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> 
<!-- Crea y compila las clases del modelo        --> 
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> 

<target name="build" description="--> crea las clases a partir del schema"> 
    <!-- Borra los fuentes del modelo --> 
    <delete quiet="true" dir="${build.dir}/src" /> 

    <mkdir dir="${build.classes}"/> 

    <!-- Construye fuentes asociadas y crea las clases --> 
    <xmlbean srcgendir="${build.dir}/src" classpathref="classpath" classgendir="${build.classes}"> 
     <fileset dir="${src.dir}" excludes="**/*.xsd"/> 
     <fileset dir="${schemas.dir}" includes="**/*.*"/> 
    </xmlbean> 

    <javac srcdir="${src.dir}" 
       destdir="${build.classes}" 
       encoding="Windows-1252" 
       debug="${debug}" 
       debuglevel="${debuglevel}" 
       deprecation="${deprecation}" 
       verbose="${verbose}" 
       optimize="${optimize}" 
       source="${source}" 
       target="${target}"> 
       <classpath refid="classpath" /> 
    </javac> 
</target> 
+0

Le compilateur XmlBeans Scomp (est-ce que vous vouliez dire?) Génère du code raisonnable à partir d'un MS-Dataset XSD, mais il perd toutes les informations sur les colonnes, les contraintes, etc. Je reçois un résultat similaire de XJC. – Andy

Questions connexes