JAXB不会生成所有元素类

浮点数:

对于REST服务,我以XML定义了必要的DTO来生成它的JAXB对象。对于生成,我使用Eclipse IDE的内置选项。

问题在于类没有按预期生成。给定下面的XML模式文件,我预计将生成3类。ImageTypeImageImages但是Image不会生成Image元素类。目前,我不知道我在做什么错。

<?xml version="1.0" encoding="UTF-8"?>
<schema targetNamespace="http://www.company.com/schema/v1/ImageDTO"
    elementFormDefault="qualified" xmlns="http://www.w3.org/2001/XMLSchema"
    xmlns:Q1="http://www.company.com/schema/v1/BusinessObjectDTO"
    xmlns:Q2="http://www.company.com/schema/v1/ImageDTO">

    <import schemaLocation="BusinessObjectDTO.xsd"
        namespace="http://www.company.com/schema/v1/BusinessObjectDTO"></import>

    <complexType name="ImageType" abstract="false">
        <complexContent>
            <extension base="Q1:BusinessObjectType">
                <sequence>
                    <element name="name" type="string" maxOccurs="1" minOccurs="1"></element>
                    <element name="fileName" type="string" maxOccurs="1"
                        minOccurs="1"></element>
                    <element name="thumbnailFileName" type="string" maxOccurs="1"
                        minOccurs="1"></element>
                </sequence>
            </extension>
        </complexContent>
    </complexType>

    <element name="Image" type="Q2:ImageType"></element>

    <element name="Images">
        <complexType>
            <sequence>
                <element name="ImageList" type="Q2:ImageType" maxOccurs="unbounded"
                    minOccurs="0"></element>
            </sequence>
        </complexType>
    </element>
</schema> 
G_H:

您已将其定义Image为type的元素ImageTypeImage因此,只是该类型使用的名称。ImageType定义将被转换为Java类,并且当Image在架构中的某个地方引用元素,将导致类型字段ImageType被注释为具有名称的XML元素Image

所以说你有...

<element ref="Image" minOccurs="1" maxOccurs="1" />

类型定义中的某处会导致...

@XmlElement(name="Image" ...)
ImageType image;

...在相应的类别中。

Images获得类定义的原因是因为您已将其定义为内嵌的complexType。Image指的是一种类型,因此它们只是使用相应的类。Images具有匿名类型定义,因此必须生成一个类以捕获其结构。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章