【问题标题】:Is there a way to generate java classes from MS-Dataset XSD files?有没有办法从 MS-Dataset XSD 文件生成 java 类?
【发布时间】:2010-10-01 09:32:03
【问题描述】:

给定一个 Dataset XSD 文件,是否可以生成不使用 System.Data 的 java 类? 我尝试使用 JAXB 的 XJC 工具运行测试,但它没有产生任何非常有用的东西。

更新:我也尝试过 XmlBeans,遵循 Fernando 的建议,它生成类似于 XJC 输出的内容 - 即表的类表示,但没有任何列、约束或行。我可以在外观中添加这些东西,但理想情况下它们将由使用的任何 XSD 编译器生成。

【问题讨论】:

    标签: java xsd code-generation dataset


    【解决方案1】:

    您可以尝试 XMLBeans 代替 JAXB API。您可以通过命令行命令或仅使用 ANT 脚本来调用它。我通过了调用 XMLBeans 将 XSD 编译为 jar 文件的 build.xml 文件的一部分。

    <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>
    

    【讨论】:

    • XmlBeans scomp 编译器(这是您的意思吗?)从 MS-Dataset XSD 生成合理的代码,但它丢失了有关列、约束等的所有信息。我从 XJC 得到了类似的结果。
    猜你喜欢
    • 1970-01-01
    • 2010-10-15
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    • 2011-07-07
    • 2018-07-23
    • 2020-06-12
    • 1970-01-01
    相关资源
    最近更新 更多