JAX-WS:使用嵌套(内部)类型生成XSD

时间:2015-02-22 15:57:53

标签: java web-services xsd jax-ws inner-classes

我试图让我的JAX-WS Web服务生成内部类型的XSD。例如,我有返回Foo类型的WS方法:

Foo.java

public class Foo {

    @XmlElement(name = "type")
    private NestedType type;

    public NestedType getType() {
        return type;
    }

    public void setType(NestedType value) {
        this.type = value;
    }

    public Foo() {
    }

    public static class NestedType {

        @XmlElement(name = "name")
        private String name;

        public String getName() {
            return name;
        }
    }
}

这会生成以下XSD代码段:

<xs:complexType name="Foo">
    <xs:sequence>
        <xs:element name="type" type="tns:NestedType" minOccurs="0"/>
    </xs:sequence>
</xs:complexType>
<xs:complexType name="NestedType">
    <xs:sequence>
        <xs:element name="name" type="xs:string" minOccurs="0"/>
    </xs:sequence>
</xs:complexType>

并使用wsimport实用程序生成独立的NestedType类。 我需要的是拥有如下内容:

<xs:complexType name="Foo">
    <xs:sequence>
        <xs:element name="type" minOccurs="0">
            <xs:complexType name="NestedType">
                <xs:sequence>
                    <xs:element name="name" type="xs:string" minOccurs="0"/>
                </xs:sequence>
            </xs:complexType>
        </xs:element>
    </xs:sequence>
</xs:complexType>

让wsimport在Foo类中生成NestedType。

0 个答案:

没有答案