簡體   English   中英

JAXB XJC:如何生成Java類

[英]JAXB XJC: how to generate java classes

我正在嘗試使用xjc工具,以便根據某些模式生成Java代碼。

我正在執行以下命令:

xjc -d generated -p net.mycom.tech .

第一個問題是

  1. -b bindings.xjb是什么意思? 它必須具有哪些內容? 它是強制性的嗎?
  2. 我收到以下兩種錯誤消息:

    一種。 [ERROR] Two declarations cause a collision in the ObjectFactory class.

    b。 A class/interface with the same name "net.mycom.tech.DatosGenericos" is already in use. Use a class customization to resolve this conflict.

我的文件夾包含幾個xsd:

在此處輸入圖片說明

請幫忙嗎?

對於XJC編譯器, -b用於外部JAXB綁定,它將覆蓋默認規則。 例如,下面是一個小片段。 該文件的名稱是mybind.xjb

<jaxb:bindings version="2.0" xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
    xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    jaxb:extensionBindingPrefixes="xjc">

    <jaxb:globalBindings>
        <xjc:simple />
        <xjc:serializable uid="-1" />
        <jaxb:javaType name="java.util.Calendar" xmlType="xs:dateTime"
            parse="javax.xml.bind.DatatypeConverter.parseDateTime"
            print="javax.xml.bind.DatatypeConverter.printDateTime" />
    </jaxb:globalBindings>
</jaxb:bindings>

在這種情況下,上述mybind.xjb會將 dateTime類型覆蓋為java.util.Calendar類型

有關更多詳細信息,您可以參考下面的oracle文檔鏈接。 https://docs.oracle.com/cd/E17802_01/webservices/webservices/docs/1.5/tutorial/doc/JAXBUsing4.html

就錯誤而言,我建議將類生成到一個空的新目錄。 您必須使用以下命令

xjc -d src -p com.projectname.place.functionality xmlSchema.xsd

在上述情況下,請確保目錄src不包含任何Java文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM