Details
Description
Using CXF 2.3.1.
Generated Java from WSDLs using JAXB.
Using
<jaxws:properties>
<entry key="schema-validation-enabled" value="true" />
</jaxws:properties>
in the client configuration.
My test creates an object that fails this particular requirement of the WSDL:
<xsd:simpleType name="UUID.Content">
<xsd:annotation>
<xsd:documentation xml:lang="EN">
Universally Unique Identifier
</xsd:documentation>
</xsd:annotation>
<xsd:restriction base="xsd:token">
<xsd:length value="36" />
<xsd:pattern
value="[0-9a-fA-F]
-[0-9a-fA-F]
{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]
{4}-[0-9a-fA-F]
{12}" />
</xsd:restriction>
</xsd:simpleType>
However, the message is marshalled and makes it all the way through the outgoing interceptor chain.
The WSDL is one-way: input-only.
wsdlLocation is specified in an annotation in the Impls.
Interestingly, incoming messages that fail validation of this same constraint are blocked by the interceptor chain during unmarshalling.
I'm testing on WebLogic. I could also test on WebSphere is needed.
Other XSD validation failures (such as a missing required element) are being caught by the outgoing marshaller.
The reason that we upgraded to 2.3.1 from 2.2.6 was that we were seeing similar issues on the inbound messages. In 2.3.1, complete XSD validation occurs for inbound messages but not for outbound ones.