xs:限制在Spring WS中不起作用

时间:2011-08-02 11:34:37

标签: spring-ws

我用这种方式定义了我的xsd(部分):

            <xs:element name="entityNo" minOccurs="1" maxOccurs="1">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:minLength value="1"/>
                        <xs:maxLength value="20"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:element>

但是当我用SoapUI发送一个长于20的字符串时,我的Endpoint仍然接收它,好像它是一个有效的输入。 我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

好的,限制工作,我只需要在spring-ws配置文件中添加PayloadValidatingInterceptor拦截器:

<sws:interceptors>
<bean class="org.springframework.ws.soap.server.endpoint.interceptor.PayloadValidatingInterceptor">
    <property name="schemas">
        <list>
            <value>/WEB-INF/schemasDef/first.xsd</value>
            <value>/WEB-INF/schemasDef/second.xsd</value>
        </list>
    </property>
    <property name="validateRequest" value="true"/>
    <property name="validateResponse" value="true"/>
</bean>
</sws:interceptors>