xs: ограничение не работает в Spring WS - PullRequest
2 голосов
/ 02 августа 2011

Я определил свой 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, моя конечная точка все равно получает ее, как если бы это был допустимый ввод. Как я могу это исправить?

1 Ответ

1 голос
/ 10 августа 2011

ОК, ограничение работает, мне просто нужно было добавить перехватчик PayloadValidatingInterceptor в конфигурационном файле spring-ws:

<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>
...