You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@xmlbeans.apache.org by Don Stewart <Do...@corizon.com> on 2006/11/10 12:22:50 UTC
SOAPFault validate challenge
Looking at the XML Schema for SOAP and specifically the SOAPFault I
appear to be enjoying a challenge :)
I have a SOAPFault document response that is failing to validate using
the validate on the class generated from the SOAP Schema.
The Response looks like:-
<?xml version="1.0"?>
<SOAP-ENV:Fault
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://schemas.xmlsoap.org/soap/envelope/
file:///c:/eclipse/workspace/SOAPEnvelope/SOAPEvelope.xsd">
<faultcode>SOAP-ENV:Server</faultcode>
<faultstring>An error was detected while executing the Web Service
request. (10893)</faultstring>
<detail>
<ns1:FaultDetail xmlns:ns1="urn:soap-fault:details">
<errorMessage>The example parameter was not of type intPrgs
(10937)</errorMessage>
<requestID>7c02cf73648f42b9:-32c9e224:10ecc18015b:-7ff8#48</requestID>
</ns1:FaultDetail>
</detail>
</SOAP-ENV:Fault>
and the SOAPFault Schema section is:-
<xs:element name="Fault" type="tns:Fault" />
<xs:complexType name="Fault" final="extension" >
<xs:annotation>
<xs:documentation>
Fault reporting structure
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="faultcode" type="xs:QName" />
<xs:element name="faultstring" type="xs:string" />
<xs:element name="faultactor" type="xs:anyURI" minOccurs="0" />
<xs:element name="detail" type="tns:detail" minOccurs="0" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="detail">
<xs:sequence>
<xs:any namespace="##any" minOccurs="0" maxOccurs="unbounded"
processContents="lax" />
</xs:sequence>
<xs:anyAttribute namespace="##any" processContents="lax" />
</xs:complexType>
I have an XmlOptions object passed to validate which has the XmlOptions
setValidateTreatLaxAsSkip() set.
I apopreciate that the ns1:FaultDetail is defined as an xs:any with it's
namespace defined as namespace="##any" and has processContents="lax".
I am experiencinge an error Invalid QName value: Can't resolve prefix
'SOAP-ENV'.
Can anyone spot the deliberate mistake :o)
Many Thanks
Don