我希望有人遇到過這個問題,也許可以解釋一下。XML架構方法命名不一致
我有一個xml架構和一個ant構建文件。當我在Windows上運行ant與Mac時,輸出.java文件不同,即使我使用相同的jaxb-xjc.jar來執行xml編譯。 Windows方面將屬性的「getter」方法命名爲「getX」。 Mac方面想將它們命名爲「isX」。任何人遇到過這樣的事情和/或有解決方案嗎?這與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'方法。它們是布爾屬性,如果未指定,它們具有默認值。
請包含更多信息。這個XML Schema使用什麼工具?看起來你正在生成代碼? – 2012-08-03 19:36:09
您使用的是哪個版本的JDK? – 2012-08-03 20:46:02
@JohnSaunders BlaiseDoughan 不一致性已被發現與Java 1.6.23,1.6.26 Mac和Windows和運行1.7的Windows。生成getX函數。 我正在使用jaxb-xjc.jar綁定編譯器。當我運行java -jar jaxb-xjc.jar -version時,它響應「hudson-jaxb-ri-2.1-661」。我正在使用模式來生成稍後用於爲程序「加載」xml文件的類。 – Lan 2012-08-06 13:19:18