[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Newsgroup Home]
[news.eclipse.webtools] Re: Help with WSDL validation error

Here's the complete WSDL:

<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";
 xmlns:axis2="http://access.webservice.cardinis.cardinis.com";
 xmlns:ns1="http://access.webservice.cardinis.cardinis.com/xsd";
 xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl";
 xmlns:http="http://schemas.xmlsoap.org/wsdl/http/";
 xmlns:ns0="http://ticketFramework.webservice.cardinis.com/xsd";
 xmlns:xs="http://www.w3.org/2001/XMLSchema";
 xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/";
 xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/";
 xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/";
 targetNamespace="http://access.webservice.cardinis.cardinis.com";>
 <wsdl:types>
  <xs:schema
   xmlns:ax21="http://ticketFramework.webservice.cardinis.com/xsd";
   attributeFormDefault="qualified" elementFormDefault="qualified"
   targetNamespace="http://ticketFramework.webservice.cardinis.com/xsd";>

I think you need this here:

<xs:import namespace="http://access.webservice.cardinis.cardinis.com/xsd"/>

Otherwise, the schema doesn't know where ns1:Exception comes from.

   <xs:complexType name="FailedConfigurationException">
    <xs:complexContent>
     <xs:extension base="ns1:Exception">
      <xs:sequence />
     </xs:extension>
    </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="InvalidArgumentException">
    <xs:complexContent>
     <xs:extension base="ns1:Exception">
      <xs:sequence />
     </xs:extension>
    </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="GenericTicketingException">
    <xs:complexContent>
     <xs:extension base="ns1:Exception">
      <xs:sequence />
     </xs:extension>
    </xs:complexContent>
   </xs:complexType>
  </xs:schema>

Depending on the WSDL editor and validator, you may need to flip these definitions around, so that the one below comes before the one above as well.


Personally though, I would create a new schema that imported or included each of these itself. Multiple schemas in the wsdl:type definition is a gray area amongst tools.

  <xs:schema
   xmlns:xsd="http://access.webservice.cardinis.cardinis.com/xsd";
   attributeFormDefault="qualified" elementFormDefault="qualified"
   targetNamespace="http://access.webservice.cardinis.cardinis.com/xsd";>
   <xs:complexType name="Exception">
    <xs:sequence>
     <xs:element minOccurs="0" name="Exception" nillable="true"
      type="xs:anyType" />
    </xs:sequence>
   </xs:complexType>
   <xs:element name="FailedConfigurationException">
    <xs:complexType>
     <xs:sequence>
      <xs:element minOccurs="0" name="FailedConfigurationException"
       nillable="true" type="ns0:FailedConfigurationException" />
     </xs:sequence>
    </xs:complexType>
   </xs:element>
   <xs:element name="InvalidArgumentException">
    <xs:complexType>
     <xs:sequence>
      <xs:element minOccurs="0" name="InvalidArgumentException"
       nillable="true" type="ns0:InvalidArgumentException" />
     </xs:sequence>
    </xs:complexType>
   </xs:element>
   <xs:element name="GenericTicketingException">
    <xs:complexType>
     <xs:sequence>
      <xs:element minOccurs="0" name="GenericTicketingException"
       nillable="true" type="ns0:GenericTicketingException" />
     </xs:sequence>
    </xs:complexType>
   </xs:element>
   <xs:element name="loginByUsernamePassword">
    <xs:complexType>
     <xs:sequence>
      <xs:element minOccurs="0" name="username" nillable="true"
       type="xs:string" />
      <xs:element minOccurs="0" name="password" nillable="true"
       type="xs:string" />
     </xs:sequence>
    </xs:complexType>
   </xs:element>
   <xs:element name="loginByUsernamePasswordResponse">
    <xs:complexType>
     <xs:sequence>
      <xs:element minOccurs="0" name="return" nillable="true"
       type="xs:string" />
     </xs:sequence>
    </xs:complexType>
   </xs:element>
   <xs:element name="logout">
    <xs:complexType>
     <xs:sequence>
      <xs:element minOccurs="0" name="ticket" nillable="true"
       type="xs:string" />
     </xs:sequence>
    </xs:complexType>
   </xs:element>
  </xs:schema>
 </wsdl:types>