cannot find element declaration
438982Mar 29 2005 — edited Apr 1 2005I am using Process B to validate schemas on behalf of parent process A. Process B is catching the invalidData fault, and successfully assigning fault information to a fault message variable. But the reply in the catch block is faulting, saying the fault message variable does not match its schema:
Invalid data: The value for variable "faultReply", part "payload" does not match the schema definition for this part.The invalid xml document is shown below: Less
<ValidateSchemaFault xmlns="http://efast.gov/wsdl">
<code>9710</code>
<summary>Invalid xml document. According to the xml schemas,the xml document is invalid. the reason is: Error::cvc-pattern-valid: Value '0001' is not facet-valid with respect to pattern '([0-9]{2}[1-9]|[0-9][1-9][0-9]|[1-9][0-9][0-9])' for type 'PNType'. Error::cvc-type.3.1.3: The value '0001' of element 'PN' is not valid. Please make sure that the xml document is valid against your schemas.</summary>
</ValidateSchemaFault>
The second fault says: Invalid xml document. According to the xml schemas,the xml document is invalid. the reason is: Warning::One of the grammar(s) returned from the user''s grammar pool is in conflict with another grammar. Warning::One of the grammar(s) returned from the user''s grammar pool is in conflict with another grammar. Error::cvc-elt.1: Cannot find the declaration of element 'ValidateSchemaFault'. Warning::One of the grammar(s) returned from the user''s grammar pool is in conflict with another grammar. Warning::One of the grammar(s) returned from the user''s grammar pool is in conflict with another grammar. Warning::One of the grammar(s) returned from the user''s grammar pool is in conflict with another grammar. Warning::One of the grammar(s) returned from the user''s grammar pool is in conflict with another grammar. Please make sure that the xml document is valid against your schemas.
Here is the type declaration in the wsdl:
<types>
<schema attributeFormDefault="unqualified"
elementFormDefault="qualified"
targetNamespace="http://efast.gov/wsdl"
xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:tns="http://efast.gov/wsdl"
xmlns:n1="http://efast.gov"
>
<import namespace="http://efast.gov"
schemaLocation="http://localhost:9700/orabpel/xmllib/Filing.xsd"/>
<element name="ValidateSchemaRequest" type="n1:FilingType"/>
<element name="ValidateSchemaResponse" type="string"/>
<element name="ValidateSchemaFault">
<complexType>
<sequence>
<element name="code" type="string"/>
<element name="summary" type="string"/>
</sequence>
</complexType>
</element>
</schema>
</types>
and the relevant message declaration
<message name="ValidateFilingSchemaFaultMessage">
<part name="payload" element="tns:ValidateSchemaFault"/>
</message>
The reply in the catch block wants to return the faultReply variable, which is declared as messageType="tns:ValidateFilingSchemaFaultMessage".
I don't see what is wrong here.