Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java XML模式方法命名不一致_Java_Xsd - Fatal编程技术网

Java XML模式方法命名不一致

Java XML模式方法命名不一致,java,xsd,Java,Xsd,我希望有人经历过这个问题,也许能给我们一些启示 <echo>Compiling old automaton schema</echo> <xjc schema="${oldxml-schema}" destdir="${src.dir}" package="${oldxml.package}"> <produces dir="${oldxml-gen.dir}" includes="**/*.java"/>

我希望有人经历过这个问题,也许能给我们一些启示

    <echo>Compiling old automaton schema</echo>
    <xjc schema="${oldxml-schema}" destdir="${src.dir}" package="${oldxml.package}">
        <produces dir="${oldxml-gen.dir}" includes="**/*.java"/>
    </xjc>

    <echo>Compiling the plugin schema</echo>
    <mkdir dir="${plugin-gen.dir}" />
     <xjc schema="${plugin-schema}" destdir="${src.dir}" package="${plugin.package}">
         <produces dir="${plugin-gen.dir}" includes="**/*.java"/>
    </xjc>

    <echo>Compiling the pluginDesumaSide schema</echo>
    <mkdir dir="${pluginDesumaSide-gen.dir}" />
     <xjc schema="${pluginDesumaSide-schema}" destdir="${src.dir}" package="${pluginDesumaSide.package}">
        <produces dir="${pluginDesumaSide-gen.dir}" includes="**/*.java"/>
    </xjc>
</target>
我有一个xml模式和一个ant构建文件。当我在Windows和Mac上运行ant时,输出的.java文件不同,即使我使用相同的jaxb-xjc.jar进行xml编译。Windows端将属性的“getter”方法命名为“getX”。Mac方面想把它们命名为“isX”。有没有人曾经经历过类似的事情,并且/或者有解决方案?Windows Vista和7以一种方式执行此操作与Mac OSX 10.6和10.7(未在Mac OSX 10.8上测试)以另一种方式执行此操作是一致的

    <echo>Compiling old automaton schema</echo>
    <xjc schema="${oldxml-schema}" destdir="${src.dir}" package="${oldxml.package}">
        <produces dir="${oldxml-gen.dir}" includes="**/*.java"/>
    </xjc>

    <echo>Compiling the plugin schema</echo>
    <mkdir dir="${plugin-gen.dir}" />
     <xjc schema="${plugin-schema}" destdir="${src.dir}" package="${plugin.package}">
         <produces dir="${plugin-gen.dir}" includes="**/*.java"/>
    </xjc>

    <echo>Compiling the pluginDesumaSide schema</echo>
    <mkdir dir="${pluginDesumaSide-gen.dir}" />
     <xjc schema="${pluginDesumaSide-schema}" destdir="${src.dir}" package="${pluginDesumaSide.package}">
        <produces dir="${pluginDesumaSide-gen.dir}" includes="**/*.java"/>
    </xjc>
</target>
----编辑----

    <echo>Compiling old automaton schema</echo>
    <xjc schema="${oldxml-schema}" destdir="${src.dir}" package="${oldxml.package}">
        <produces dir="${oldxml-gen.dir}" includes="**/*.java"/>
    </xjc>

    <echo>Compiling the plugin schema</echo>
    <mkdir dir="${plugin-gen.dir}" />
     <xjc schema="${plugin-schema}" destdir="${src.dir}" package="${plugin.package}">
         <produces dir="${plugin-gen.dir}" includes="**/*.java"/>
    </xjc>

    <echo>Compiling the pluginDesumaSide schema</echo>
    <mkdir dir="${pluginDesumaSide-gen.dir}" />
     <xjc schema="${pluginDesumaSide-schema}" destdir="${src.dir}" package="${pluginDesumaSide.package}">
        <produces dir="${pluginDesumaSide-gen.dir}" includes="**/*.java"/>
    </xjc>
</target>
我将附加ant build.xml文件中的一些代码

    <echo>Compiling old automaton schema</echo>
    <xjc schema="${oldxml-schema}" destdir="${src.dir}" package="${oldxml.package}">
        <produces dir="${oldxml-gen.dir}" includes="**/*.java"/>
    </xjc>

    <echo>Compiling the plugin schema</echo>
    <mkdir dir="${plugin-gen.dir}" />
     <xjc schema="${plugin-schema}" destdir="${src.dir}" package="${plugin.package}">
         <produces dir="${plugin-gen.dir}" includes="**/*.java"/>
    </xjc>

    <echo>Compiling the pluginDesumaSide schema</echo>
    <mkdir dir="${pluginDesumaSide-gen.dir}" />
     <xjc schema="${pluginDesumaSide-schema}" destdir="${src.dir}" package="${pluginDesumaSide.package}">
        <produces dir="${pluginDesumaSide-gen.dir}" includes="**/*.java"/>
    </xjc>
</target>
告诉它xjc是什么

<taskdef name="xjc" classname="com.sun.tools.xjc.XJCTask">
    <classpath refid="classpath"/>
</taskdef>
    <echo>Compiling old automaton schema</echo>
    <xjc schema="${oldxml-schema}" destdir="${src.dir}" package="${oldxml.package}">
        <produces dir="${oldxml-gen.dir}" includes="**/*.java"/>
    </xjc>

    <echo>Compiling the plugin schema</echo>
    <mkdir dir="${plugin-gen.dir}" />
     <xjc schema="${plugin-schema}" destdir="${src.dir}" package="${plugin.package}">
         <produces dir="${plugin-gen.dir}" includes="**/*.java"/>
    </xjc>

    <echo>Compiling the pluginDesumaSide schema</echo>
    <mkdir dir="${pluginDesumaSide-gen.dir}" />
     <xjc schema="${pluginDesumaSide-schema}" destdir="${src.dir}" package="${pluginDesumaSide.package}">
        <produces dir="${pluginDesumaSide-gen.dir}" includes="**/*.java"/>
    </xjc>
</target>

以下是“实际”编译:

    <echo>Compiling old automaton schema</echo>
    <xjc schema="${oldxml-schema}" destdir="${src.dir}" package="${oldxml.package}">
        <produces dir="${oldxml-gen.dir}" includes="**/*.java"/>
    </xjc>

    <echo>Compiling the plugin schema</echo>
    <mkdir dir="${plugin-gen.dir}" />
     <xjc schema="${plugin-schema}" destdir="${src.dir}" package="${plugin.package}">
         <produces dir="${plugin-gen.dir}" includes="**/*.java"/>
    </xjc>

    <echo>Compiling the pluginDesumaSide schema</echo>
    <mkdir dir="${pluginDesumaSide-gen.dir}" />
     <xjc schema="${pluginDesumaSide-schema}" destdir="${src.dir}" package="${pluginDesumaSide.package}">
        <produces dir="${pluginDesumaSide-gen.dir}" includes="**/*.java"/>
    </xjc>
</target>
编译自动机模式

    <echo>Compiling old automaton schema</echo>
    <xjc schema="${oldxml-schema}" destdir="${src.dir}" package="${oldxml.package}">
        <produces dir="${oldxml-gen.dir}" includes="**/*.java"/>
    </xjc>

    <echo>Compiling the plugin schema</echo>
    <mkdir dir="${plugin-gen.dir}" />
     <xjc schema="${plugin-schema}" destdir="${src.dir}" package="${plugin.package}">
         <produces dir="${plugin-gen.dir}" includes="**/*.java"/>
    </xjc>

    <echo>Compiling the pluginDesumaSide schema</echo>
    <mkdir dir="${pluginDesumaSide-gen.dir}" />
     <xjc schema="${pluginDesumaSide-schema}" destdir="${src.dir}" package="${pluginDesumaSide.package}">
        <produces dir="${pluginDesumaSide-gen.dir}" includes="**/*.java"/>
    </xjc>
</target>
编译旧的自动机模式
编译插件模式
编译pluginDesumaSide模式

所有目标(我指的是像${}这样提到的任何东西)都是定义的,每个链接和编译都是正确的,除了Mac将变量的“getter”方法命名为“is”方法之外。它们是布尔属性,如果未指定,则会有默认值。

从我得到的响应中,我可以通过谷歌搜索解决方案。显然,由于规范中的一些不一致性,这种命名不一致性和另一种(getter返回原语,setter只接受对象)对于较旧的xml编译器来说是很明显的

    <echo>Compiling old automaton schema</echo>
    <xjc schema="${oldxml-schema}" destdir="${src.dir}" package="${oldxml.package}">
        <produces dir="${oldxml-gen.dir}" includes="**/*.java"/>
    </xjc>

    <echo>Compiling the plugin schema</echo>
    <mkdir dir="${plugin-gen.dir}" />
     <xjc schema="${plugin-schema}" destdir="${src.dir}" package="${plugin.package}">
         <produces dir="${plugin-gen.dir}" includes="**/*.java"/>
    </xjc>

    <echo>Compiling the pluginDesumaSide schema</echo>
    <mkdir dir="${pluginDesumaSide-gen.dir}" />
     <xjc schema="${pluginDesumaSide-schema}" destdir="${src.dir}" package="${pluginDesumaSide.package}">
        <produces dir="${pluginDesumaSide-gen.dir}" includes="**/*.java"/>
    </xjc>
</target>

这是通过转到并获得一个新的jaxb-impl.jar&jaxb-xjc.jar修复的。我下载并运行了jaxb.jar文件下载,它创建了所需的jar。

请提供更多信息。您使用什么工具处理此XML架构?您似乎正在生成代码?您使用的JDK版本是什么?@JohnSaunders BlaiseDoughan发现Mac和Windows的Java 1.6.23、1.6.26以及运行1.7的Windows存在不一致。?生成getX函数。我正在使用jaxb-xjc.jar绑定编译器。当我运行java-jarjaxb-xjc.jar-version时,它会响应“hudson-jaxb-ri-2.1-661”。我正在使用模式生成类,这些类稍后用于“加载”程序的xml文件。它是为所有方法生成
isX
,还是只为特定方法生成?这很奇怪,基本上它应该为布尔值生成isX,所以mac行为是正确的。您使用完全相同的xsd运行完全相同的命令?
    <echo>Compiling old automaton schema</echo>
    <xjc schema="${oldxml-schema}" destdir="${src.dir}" package="${oldxml.package}">
        <produces dir="${oldxml-gen.dir}" includes="**/*.java"/>
    </xjc>

    <echo>Compiling the plugin schema</echo>
    <mkdir dir="${plugin-gen.dir}" />
     <xjc schema="${plugin-schema}" destdir="${src.dir}" package="${plugin.package}">
         <produces dir="${plugin-gen.dir}" includes="**/*.java"/>
    </xjc>

    <echo>Compiling the pluginDesumaSide schema</echo>
    <mkdir dir="${pluginDesumaSide-gen.dir}" />
     <xjc schema="${pluginDesumaSide-schema}" destdir="${src.dir}" package="${pluginDesumaSide.package}">
        <produces dir="${pluginDesumaSide-gen.dir}" includes="**/*.java"/>
    </xjc>
</target>