0

我有 apache CXF wsdl2java 工具生成的 java 代码。我通过设置打开模式验证:

<jaxws:properties>
    <entry key="schema-validation-enabled" value="true" />
</jaxws:properties>

在 .wsdl 文件中,我有这些元素:

<s:element minOccurs="1" maxOccurs="1" nillable="false" name="propertyName" type="s:string"/>

他们正在研究:

@XmlElement(name = "ServiceSeq", required = true, nillable = false)
protected String propertyName;

但是当我发送包含以下内容的 XML 时:

<abc:propertyName></abc:propertyName>

它通过了验证,并且映射为空字符串。我不希望有空字符串。我希望这种请求不要通过验证。JAX-WS 是否提供这种验证?如果是 - 那么如何打开它?如果不是 - 编写我自己的代码以拒绝此类请求的最佳方法是什么?

4

1 回答 1

1

唯一的方法是定义类似于以下的元素:

<element minOccurs="1" maxOccurs="1" nillable="false" name="propertyName">
    <simpleType>
      <restriction base="string">
        <minLength value="1"/>
      </restriction>
    </simpleType>
</element>

将其标记为字符串中至少需要 1 个字符。

于 2013-03-13T17:32:00.633 回答