2

我正在使用 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>

如果有人知道问题所在,请帮助

4

2 回答 2

0

xs:minLength,xs: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>
于 2012-08-12T20:55:53.090 回答
0

要为您的场景获取一个类,您需要一个自定义绑定。SO 上的这篇文章向您展示了自定义绑定文件的结构。

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

于 2012-08-13T12:14:54.913 回答