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