我有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"/>
他们是mappnig:
@XmlElement(name = "ServiceSeq", required = true, nillable = false)
protected String propertyName;
但是当我发送包含以下内容的XML时:
<abc:propertyName></abc:propertyName>
它通过验证,并且映射为空字符串。我不想要空字符串。我希望那些请求不要通过验证。 JAX-WS是否提供这种验证?如果是 - 那么如何打开它?如果不是 - 编写我自己的代码以拒绝这些请求的最佳方法是什么?
答案 0 :(得分:1)
唯一的方法是定义类似于:
的元素<element minOccurs="1" maxOccurs="1" nillable="false" name="propertyName">
<simpleType>
<restriction base="string">
<minLength value="1"/>
</restriction>
</simpleType>
</element>
将其标记为字符串中至少需要1个字符。