没有通过jax ws生成java工件

时间:2012-08-12 15:04:30

标签: java xsd jax-ws

我正在使用JAX-WS 2.1从xsd文件为Web服务生成工件。

这里是问题工件的XSD定义:

<xs:simpleType name='Example'>
    <xs:annotation>
      <xs:documentation>Example</xs:documentation>
    </xs:annotation>
    <xs:restriction base='xs:string'>
      <xs:minLength value='0'/>
      <xs:maxLength value='1'/>
    </xs:restriction>
</xs:simpleType>

Jax WS不生成工件示例。我没有看到名为Example的类。

但是当我向XSD定义添加枚举时,JAX-WS会成功生成它:

<xs:simpleType name='Example'>
    <xs:annotation>
      <xs:documentation>Example</xs:documentation>
    </xs:annotation>
    <xs:restriction base='xs:string'>
      <xs:minLength value='0'/>
      <xs:maxLength value='1'/>
      <xs:enumeration value='A'/>
    </xs:restriction>
</xs:simpleType>

如果有人知道问题请帮助

2 个答案:

答案 0 :(得分:0)

xs:minLengthxs:maxLength无法与xs:enumeration一起使用。 Enumeratio是固定值的集合,xs:minLengthxs:maxLength需要在应用程序中输入的值。所以只使用枚举

  <xsd:restriction base="xsd:string">
     <xsd:enumeration value="A"/>
     <xsd:enumeration value="B"/>
     <xsd:enumeration value="C"/>
  </xsd:restriction>

答案 1 :(得分:0)

要为您的方案获取课程,您需要自定义绑定。 This post on SO显示自定义绑定文件的结构。

您需要记住的一件事是,默认情况下,JAXB将为复杂类型生成类,而不是简单类型。