Jaxb没有';t为复杂类型的元素生成接口

Jaxb没有';t为复杂类型的元素生成接口,jaxb,Jaxb,我有一个xsd(用于basecamp xml),它包含 <xsd:complexType name="ProjectType"> <xsd:sequence> <xsd:element name="announcement" type="TypedNilableStringElementType" maxOccurs="1"

我有一个xsd(用于basecamp xml),它包含

<xsd:complexType name="ProjectType">
    <xsd:sequence>
        <xsd:element name="announcement"
                     type="TypedNilableStringElementType"
                     maxOccurs="1" 
                     minOccurs="1">
        </xsd:element>
        <xsd:element name="created-on"
                     type="TypedDateElementType" 
                     maxOccurs="1"
                     minOccurs="1">
        </xsd:element>
        <xsd:element name="id"
                     type="TypedIntegerElementType" 
                     maxOccurs="1"
                     minOccurs="1">
        </xsd:element>
        <xsd:element name="last-changed-on"
                     type="TypedDateTimeElementType" 
                     maxOccurs="1"
                     minOccurs="1">
        </xsd:element>
        <xsd:element name="name" 
                     type="xsd:string" 
                     maxOccurs="1"
                     minOccurs="1">
        </xsd:element>
        <xsd:element name="show-announcement"
                     type="TypedBooleanElementType" 
                     maxOccurs="1"
                     minOccurs="1">
        </xsd:element>
        <xsd:element name="show-writeboards"
                     type="TypedBooleanElementType" 
                     maxOccurs="1"
                     minOccurs="1">
        </xsd:element>
        <xsd:element name="start-page" 
                     type="xsd:string"
                     maxOccurs="1" 
                     minOccurs="1">
        </xsd:element>
        <xsd:element name="status" 
                     type="xsd:string" 
                     maxOccurs="1"
                     minOccurs="1">
        </xsd:element>
        <xsd:element name="company"
                     type="SimpleCompanyType" 
                     maxOccurs="1" 
                     minOccurs="1">
        </xsd:element>
    </xsd:sequence>
</xsd:complexType>


我正在查看并且无法理解我所做的与表17-13中的示例模式的不同之处,其中有一个名为purchaseOrder的元素,类型为
PurchaseOrderType
。根据教程,在模式上运行xjc将获得PurchaseOrder.java接口和PurchaseOrderType.java接口

当我在我的模式上运行xjc时,我只得到一个ProjectType.java类,当xml实际上由一个
元素组成时,它不会解析,因为没有可匹配的Project.java类/接口。

终于找到了答案(感谢google:-)

终于找到了答案(感谢谷歌:-)


本教程的哪一部分对此进行了描述?JAXB通常不生成接口,只生成bean类。请参见上面的url,表17-13——当我在该xsd上运行xjc时,我只得到PurchaseOrderType.java,没有得到PurchaseOrder.java。这相当于我的xsd,在xsd中,我只获取元素的ProjectType.java,而不是Project.java。我想将项目的结构定义为complexType,然后两者都有一个包含多个元素的元素(这很好),但我也希望能够处理一个根元素,xjc不会为此生成元素类。我可以在ProjectType.java文件中添加@XmlRootElement(name=“Project”),然后我可以使用as根标记对xml进行marshall和demarshall处理。但是当我已经在xsd中指定了ProjectType类型的元素“project”时,我想jaxb会自动为我这样做。我不喜欢手动修改jaxb生成的代码。本教程的哪一部分对此进行了描述?JAXB通常不生成接口,只生成bean类。请参见上面的url,表17-13——当我在该xsd上运行xjc时,我只得到PurchaseOrderType.java,没有得到PurchaseOrder.java。这相当于我的xsd,在xsd中,我只获取元素的ProjectType.java,而不是Project.java。我想将项目的结构定义为complexType,然后两者都有一个包含多个元素的元素(这很好),但我也希望能够处理一个根元素,xjc不会为此生成元素类。我可以在ProjectType.java文件中添加@XmlRootElement(name=“Project”),然后我可以使用as根标记对xml进行marshall和demarshall处理。但是当我已经在xsd中指定了ProjectType类型的元素“project”时,我想jaxb会自动为我这样做。我不喜欢手动修改jaxb生成的代码。链接已断开。链接已断开。
<xsd:element name="project" 
             type="ProjectType">
</xsd:element>