IBM Support

DFHPI9027E XML parser error

Technote (troubleshooting)


Problem(Abstract)

You are using DFHWS2LS to create a COBOL copybook from a vendor supplied WSDL for an outbound Web service. You receive error message DFHPI9027E The XML parser error has found an error.

Symptom

DFHPI9027E The XML parser error has found an error: "XSD: Element reference 'http://www.w3.org/2001/XMLSchema#schema' is unresolved" at line "296" and column "2319" in document "name.wsdl".


Cause

The statement causing the error message is <s:element ref="s:schema" />

Diagnosing the problem

The WSDL was evaluated with the ECLIPSE Validation Tool and it pointed to the line below as being incorrect, just as the DFHPI9027E message stated: line 296 column 19. The <s:element ref="s:schema"/> statement is causing the error:

000294            <s:complexType>
=COLS> ----+----1----+----2----+----3----+----4----+----5
000295              <s:sequence>
000296                <s:element ref="s:schema" /> <-- Bad Line
000297                <s:any />
000298              </s:sequence>
000299            </s:complexType>


The error issued by the Validation Tool reads as follows:

Error resolving component 's:schema'. It was detected that 's:schema' is in namespace 'http://www.w3.org/2001/XMLSchema', but components from this namespace are not referenceable from schema document "wsdlname.wsdl". If this is the incorrect namespace, perhaps the prefix of 's:schema' needs to be changed. If this is the correct namespace, then an appropriate 'import' tag should be added to 'wsdlname.wsdl'.

Resolving the problem

You need to replace the <s:element ref="s:schema"/> with an <s:any/> element. If that is done in this WSDL then there would be 2 s:any elements in the same scope and CICS does not support this. However, you can use a minOccurs and maxOccurs to get around this problem, as shown below:

The original XML:

<s:complexType>
  <s:sequence>
    <s:element ref="s schema  />
    <s:any />
  </s:sequence>
</s:complexType>


Would be replaced with:

<s:complexType>
  <s:sequence>
    <s:any maxOccurs="2" minOccurs="2"/>
  </s:sequence>
<s:complexType>


With MAPPING-LEVEL=2.1 or higher this will be processed by CICS. The application in CICS will receive raw XML in a container that is the content of the s:any elements. The application is responsible for processing the contents of the container.

Product Alias/Synonym

CICS/TS CICS TS CICS Transaction Server

Document information

More support for: CICS Transaction Server
Web Services

Software version: 3.2, 4.1, 4.2, 5.1

Operating system(s): z/OS

Reference #: 1381850

Modified date: 22 September 2009