2014-05-06 30 views

回答

0

要編譯xsd文件,必須先創建模式(.java文件)。要做到這一點,你需要添加taskdef,它包含在你給出的鏈接中。然後你必須使用ant xjc任務。這裏有一個例子:

<xjc schema="your.xsd.file" target="place.to.put.java.file" package="package.for.the.file.eg.com.soft.anonymous"/> 

現在,你有你的.java文件,bgm.ser和XSD架構,放置在目標目錄中創建jaxb.properties。編譯它們只需使用ant javac任務。 我希望這對你有所幫助。如果沒有,請在您嘗試編譯時指定問題究竟是什麼。

可以放置的taskdef在很多地方,但最好的地方將只是你的XJC任務之前。因此,例如,您有一個名爲xjc.target的目標。在這個目標中你放上taskdef,然後把xjc任務和javac。

讓我稍微解釋一下:

  • 要確保在你的taskdef已正確設置文件集目錄。它必須是您放置jaxb.jar文件的目錄。例如project/lib。
  • 在taskdef之後使用xjc任務。在src中給出你的xsd文件的路徑。在目標中,寫一個你想放置java文件的路徑。例如src/java /文件。在包中,你可以放置你的課程包。例如,如果你把pl.com.website,你的課程將去src/java/pl/com/website。
  • 現在,你有你的Java文件。要使用它們,你必須使用javac任務編譯它們。所以你把這些java文件的src路徑。在目標中,你把你想要編譯它們的路徑(創建.class文件)。就這樣。

請嘗試一步一步,如果您有問題,請爲我複製粘貼控制檯輸出。這會幫助我更好地理解你的問題。

<target name="xjc.target"> 
    <taskdef name="xjc" classname="com.sun.tools.xjc.XJCTask"> 
     <classpath> 
      <fileset dir="path/to/jaxb/lib" includes="*.jar" /> 
     </classpath> 
    </taskdef> 

    <xjc schema="your.xsd.file" target="${java.files.dir}" package="package.for.the.file.eg.com.soft.anonymous"/> 

    <javac src="${java.files.dir}" target="${classes}"/> 
</target> 
+0

HI,感謝您的支持。據該鏈接我放在了taskdef在build.xml.I得到了我的項目erors對於一些封裝級代碼bcoz Java對象不是found.I編碼使用maven everythg所以現在試圖轉換爲ANT項目結構。下一步我必須放置ant xjc任務。然後如何編譯只有xsd才能生成java對象。 – user3040633

+0

你可以在很多地方放置taskdef,但最好的地方就在你的xjc任務之前。因此,例如,您有一個名爲xjc.target的目標。在這個目標中你放上taskdef,然後把xjc任務和javac。 (檢查我的答案編輯#1) – skyline00

+0

<的taskdef名稱= 「XJC」 類名= 「com.sun.tools.xjc.XJCTask」> \t \t <文件集DIR = 「LIB」 包括= 「*。罐子」/ > \t \t \t \t \t <架構DIR =「模式「includes =」*。xsd「/> \t \t \t我在build.xml文件中使用過這樣的內容。使用ANTits在下面的行中拋出錯誤,在cmd提示符下進行編譯 user3040633