0

apacheCXFwsdl2javaツールによって生成された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"/>

それらはmappnigです:

@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 に答える