2009-01-14 1 views
1

Учитывая файл XSD Dataset, можно ли генерировать классы Java, которые не используют System.Data? Я попытался запустить тест с помощью инструмента JJXB XJC, но он не принесет ничего ужасно полезного.Есть ли способ генерации классов Java из файлов MS-Dataset XSD?

Обновление: Я также пробовал XmlBeans, следуя предложению Фернандо, и он генерирует нечто похожее на выход XJC - то есть представления классов в виде таблиц, но без каких-либо столбцов, ограничений или строк. Я могу добавить эти вещи в фасад, но в идеале они будут сгенерированы любым XSD-компилятором.

ответ

1

Вы можете попробовать XMLBeans вместо JAXB API. Вы можете вызвать его как средство командной строки или просто использовать ANT-скрипт. Я прошел часть файла build.xml, который вызывает XMLBeans для компиляции XSD в файл 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

В XMLBeans scomp компилятора (это то, что вы имели в виду?) Генерирует разумный код из MS-Dataset XSD, но она теряет всю информацию о столбцах, ограничениях и т.д. я получаю такой же результат с XJC. – Andy

Смежные вопросы