XML模式方法命名不一致

时间:2012-08-03 19:32:27

标签: java xsd

我希望有人遇到过这个问题,也许可以解释一下。

我有一个xml架构和一个ant构建文件。当我在Windows上运行ant而不是Mac时,输出.java文件有所不同,即使我使用相同的jaxb-xjc.jar进行xml编译。 Windows方面将属性的“getter”方法命名为“getX”。 Mac方面想要将它们命名为“isX”。之前有人经历过这样的事情和/或有解决方案吗?这在Windows Vista和Windows Vista之间是一致的。 7这样做是单向和Mac OSX 10.6& 10.7(在Mac OSX 10.8上未经测试)另一个。

---- ----编辑

我将附上ant build.xml文件中的一些代码。

告诉它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>

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

1 个答案:

答案 0 :(得分:0)

从我得到的回复中,我能够谷歌寻求解决方案。显然这个命名不一致和另一个(一个getter返回一个原语,但是setter只接受对象)很明显,由于规范中的一些不一致,旧的xml编译器很偶然。

通过转到http://jaxb.java.net/并获得新的jaxb-impl.jar&amp; JAXB的xjc.jar。我下载并运行了jaxb.jar文件下载,它创建了所需的罐子。