+ Start a Discussion
SFineSFine 

WSDL Parsing issues

Hey everyone, I'm getting a "Error: Failed to parse wsdl: Unsupported Schema element found http://www.w3.org/2001/XMLSchema:attribute. At: 220:57" message when I try parsing a wsdl.

 

I'm still relatively new to wsdl and webservices, and was wondering if someone could point out the issue in the code. Any help is appreciated.

 

<?xml version="1.0" encoding="UTF-8"?>
<!--Created by TIBCO WSDL-->
<wsdl:definitions xmlns:ns1="http://www.medassets.com/ESB/schemas/EsbEnvelope.xsd" xmlns:tns="http://www.medassets.com/ESB/Match/service/1.0.0/EsbMatchingService" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:ns0="http://www.medassets.com/ESB/MatchingService/schemas/1.0.0/MatchQuery.xsd" xmlns:jms="http://www.tibco.com/namespaces/ws/2004/soap/binding/JMS" xmlns:soap1="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:jndi="http://www.tibco.com/namespaces/ws/2004/soap/apis/jndi" name="Untitled" targetNamespace="http://www.medassets.com/ESB/Match/service/1.0.0/EsbMatchingService">
    <wsdl:documentation>Enterprise Service to perform TIBCO Matching Engine Matches</wsdl:documentation>
    <wsdl:types>
        <xs:schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:esbms="http://www.medassets.com/ESB/MatchingService/schemas/1.0.0/MatchQuery.xsd" xmlns:esbenv="http://www.medassets.com/ESB/schemas/EsbEnvelope.xsd" targetNamespace="http://www.medassets.com/ESB/MatchingService/schemas/1.0.0/MatchQuery.xsd" elementFormDefault="qualified" attributeFormDefault="unqualified">
            <import namespace="http://www.medassets.com/ESB/schemas/EsbEnvelope.xsd"/>
            <simpleType name="name">
                <restriction base="xs:string"/>
            </simpleType>
            <simpleType name="score">
                <restriction base="xs:double">
                    <maxInclusive value="1.0E0"/>
                    <minInclusive value="0.0E0"/>
                </restriction>
            </simpleType>
            <simpleType name="weight">
                <restriction base="xs:double">
                    <maxInclusive value="1.0E0"/>
                    <minInclusive value="0.0E0"/>
                </restriction>
            </simpleType>
            <element name="CognateQuery">
                <complexType>
                    <sequence>
                        <element ref="esbms:weight" minOccurs="0"/>
                        <element name="Field" minOccurs="0" maxOccurs="unbounded">
                            <complexType>
                                <sequence>
                                    <element ref="esbms:name"/>
                                    <element ref="esbms:weight" minOccurs="0"/>
                                    <element ref="esbms:query"/>
                                </sequence>
                            </complexType>
                        </element>
                        <element name="nonCognateWeight" type="esbms:weight"/>
                        <element ref="esbms:Options" minOccurs="0"/>
                    </sequence>
                </complexType>
            </element>
            <element name="Config">
                <complexType>
                    <sequence>
                        <element ref="esbms:maxMatches" minOccurs="0"/>
                        <element ref="esbms:scoreType" minOccurs="0"/>
                        <element ref="esbms:predicate" minOccurs="0"/>
                        <element ref="esbms:cutOffType" minOccurs="0"/>
                        <element ref="esbms:cutOffValue" minOccurs="0"/>
                    </sequence>
                </complexType>
            </element>
            <element name="CustomDateQuery">
                <complexType>
                    <sequence>
                        <element ref="esbms:weight" minOccurs="0"/>
                        <element ref="esbms:query"/>
                        <element name="Field">
                            <complexType>
                                <sequence>
                                    <element ref="esbms:name"/>
                                </sequence>
                            </complexType>
                        </element>
                        <element ref="esbms:emptyScore" minOccurs="0"/>
                        <element ref="esbms:invalidScore" minOccurs="0"/>
                    </sequence>
                </complexType>
            </element>
            <element name="Match">
                <complexType>
                    <sequence>
                        <element ref="esbms:score" minOccurs="0"/>
                        <element ref="esbms:subScore" minOccurs="0"/>
                        <element ref="esbms:recordKey" minOccurs="0"/>
                        <element name="Field" minOccurs="0" maxOccurs="unbounded">
                            <complexType>
                                <sequence>
                                    <element ref="esbms:name" minOccurs="0"/>
                                    <element ref="esbms:value" minOccurs="0"/>
                                </sequence>
                            </complexType>
                        </element>
                    </sequence>
                </complexType>
            </element>
            <element name="MatchRequest">
                <complexType>
                    <sequence>
                        <element ref="esbms:Query" maxOccurs="unbounded"/>
                    </sequence>
                </complexType>
            </element>
            <element name="MatchResponse">
                <complexType>
                    <sequence>
                        <element ref="esbms:Matches" maxOccurs="unbounded"/>
                    </sequence>
                </complexType>
            </element>
            <element name="Matches">
                <complexType>
                    <sequence>
                        <element ref="esbms:matchTime" minOccurs="0"/>
                        <element ref="esbms:Match" minOccurs="0" maxOccurs="unbounded"/>
                        <element ref="esbenv:Fault" minOccurs="0"/>
                    </sequence>
                    <attribute ref="esbms:queryId" name="QueryID" type="xs:string"/>
                </complexType>
            </element>
            <element name="Options">
                <complexType>
                    <sequence>
                        <element ref="esbms:Thesaurus" minOccurs="0"/>
                        <element ref="esbms:emptyScore" minOccurs="0"/>
                        <element ref="esbms:invalidScore" minOccurs="0"/>
                        <element ref="esbms:XOptions" minOccurs="0" maxOccurs="unbounded"/>
                    </sequence>
                </complexType>
            </element>
            <element name="PredicateQuery">
                <complexType>
                    <sequence>
                        <element ref="esbms:predicate"/>
                        <element ref="esbms:weight" minOccurs="0"/>
                    </sequence>
                </complexType>
            </element>
            <element name="Query">
                <complexType>
                    <sequence>
                        <element ref="esbms:table"/>
                        <element ref="esbms:SimpleQuery" maxOccurs="unbounded"/>
                        <element ref="esbms:CognateQuery" minOccurs="0" maxOccurs="unbounded"/>
                        <element ref="esbms:CustomDateQuery" minOccurs="0" maxOccurs="unbounded"/>
                        <element ref="esbms:PredicateQuery" minOccurs="0" maxOccurs="unbounded"/>
                        <element ref="esbms:Config" minOccurs="0"/>
                    </sequence>
                    <attribute ref="esbms:queryId" name="ID" type="xs:string"/>
                </complexType>
            </element>
            <element name="SimpleQuery">
                <complexType>
                    <sequence>
                        <element ref="esbms:query"/>
                        <element ref="esbms:weight" minOccurs="0"/>
                        <element name="Field" minOccurs="0" maxOccurs="unbounded">
                            <complexType>
                                <sequence>
                                    <element ref="esbms:name"/>
                                    <element ref="esbms:weight" minOccurs="0"/>
                                </sequence>
                            </complexType>
                        </element>
                        <element ref="esbms:Options" minOccurs="0"/>
                    </sequence>
                </complexType>
            </element>
            <element name="Thesaurus">
                <complexType>
                    <sequence>
                        <element ref="esbms:name"/>
                        <element ref="esbms:weight" minOccurs="0"/>
                    </sequence>
                </complexType>
            </element>
            <element name="XOptions">
                <complexType>
                    <sequence>
                        <element ref="esbms:id"/>
                        <element ref="esbms:value"/>
                    </sequence>
                </complexType>
            </element>
            <element name="cutOffType">
                <simpleType>
                    <restriction base="xs:string">
                        <enumeration value="none"/>
                        <enumeration value="absolute"/>
                        <enumeration value="gap"/>
                        <enumeration value="percentage"/>
                        <enumeration value="exact"/>
                    </restriction>
                </simpleType>
            </element>
            <element name="cutOffValue">
                <simpleType>
                    <restriction base="xs:int">
                        <maxInclusive value="100"/>
                        <minInclusive value="0"/>
                    </restriction>
                </simpleType>
            </element>
            <element name="emptyScore" type="esbms:score"/>
            <element name="id" type="xs:int"/>
            <element name="invalidScore" type="esbms:score"/>
            <element name="matchTime" type="xs:double"/>
            <element name="maxMatches" type="xs:int"/>
            <element name="name" type="esbms:name"/>
            <element name="predicate" type="xs:string"/>
            <element name="query" type="xs:string"/>
            <element name="recordKey" type="xs:string"/>
            <element name="score" type="esbms:score"/>
            <element name="scoreType">
                <simpleType>
                    <restriction base="xs:string">
                        <enumeration value="normal"/>
                        <enumeration value="symmetric"/>
                        <enumeration value="reverse"/>
                        <enumeration value="min"/>
                        <enumeration value="max"/>
                        <enumeration value="it"/>
                    </restriction>
                </simpleType>
            </element>
            <element name="subScore" type="xs:string"/>
            <element name="table" type="esbms:name"/>
            <element name="thesaurusWeight" type="esbms:weight"/>
            <element name="value" type="xs:string"/>
            <element name="weight" type="esbms:weight"/>
            <attribute name="queryId" type="xs:string"/>
        </schema>
        <xs:schema xmlns="http://www.medassets.com/ESB/schemas/EsbEnvelope.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.medassets.com/ESB/schemas/EsbEnvelope.xsd" elementFormDefault="qualified" attributeFormDefault="unqualified">
            <xs:element name="Fault">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element ref="ns1:code" minOccurs="0"/>
                        <xs:element ref="ns1:message" minOccurs="0"/>
                        <xs:element ref="ns1:details" minOccurs="0"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="Header">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element ref="ns1:applicationID"/>
                        <xs:element ref="ns1:componentName" minOccurs="0"/>
                        <xs:element ref="ns1:hostname" minOccurs="0"/>
                        <xs:element ref="ns1:timestamp" minOccurs="0"/>
                        <xs:element ref="ns1:transactionDomain" minOccurs="0"/>
                        <xs:element ref="ns1:transactionType" minOccurs="0"/>
                        <xs:element ref="ns1:transactionID"/>
                        <xs:element ref="ns1:correlationID" minOccurs="0"/>
                        <xs:element ref="ns1:environment" minOccurs="0"/>
                        <xs:element ref="ns1:userID" minOccurs="0"/>
                        <xs:element ref="ns1:dataCenterID" minOccurs="0"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="applicationID" type="xs:string"/>
            <xs:element name="code" type="xs:string"/>
            <xs:element name="componentName" type="xs:string"/>
            <xs:element name="correlationID" type="xs:string"/>
            <xs:element name="dataCenterID" type="xs:string"/>
            <xs:element name="details" type="xs:string"/>
            <xs:element name="environment" type="xs:string"/>
            <xs:element name="hostname" type="xs:string"/>
            <xs:element name="message" type="xs:string"/>
            <xs:element name="timestamp" type="xs:dateTime"/>
            <xs:element name="transactionDomain" type="xs:string"/>
            <xs:element name="transactionID" type="xs:string"/>
            <xs:element name="transactionType" type="xs:string"/>
            <xs:element name="userID" type="xs:string"/>
        </xs:schema>
    </wsdl:types>
    <wsdl:service name="EsbMatchingService.serviceagent">
        <wsdl:port name="MatchQueryJmsEndpoint" binding="tns:MatchQueryJmsEndpointBinding">
            <soap:address location=""/>
            <jms:connectionFactory>QueueConnectionFactory</jms:connectionFactory>
            <jms:targetAddress destination="queue">MA.ESB.MATCH.SERVICE.QUERY.V1</jms:targetAddress>
        </wsdl:port>
        <wsdl:port name="MatchQueryHttpEndpoint" binding="tns:MatchQueryHttpEndpointBinding">
            <soap:address location="http://localhost:10700/EsbMatchingService/MatchQueryHttpEndpoint"/>
        </wsdl:port>
    </wsdl:service>
    <wsdl:portType name="MatchQueryPort">
        <wsdl:operation name="MatchQueryOp">
            <wsdl:input message="tns:MatchQueryReqMsg"/>
            <wsdl:output message="tns:MatchQueryRespMsg"/>
        </wsdl:operation>
    </wsdl:portType>
    <wsdl:binding name="MatchQueryJmsEndpointBinding" type="tns:MatchQueryPort">
        <soap:binding style="document" transport="http://www.tibco.com/namespaces/ws/2004/soap/binding/JMS"/>
        <jms:binding messageFormat="bytes"/>
        <wsdl:operation name="MatchQueryOp">
            <soap:operation style="document" soapAction="/EsbMatchingService/MatchQueryJmsEndpoint/MatchQueryOp"/>
            <wsdl:input>
                <soap:body use="literal" parts="input"/>
            </wsdl:input>
            <wsdl:output>
                <soap:body use="literal" parts="output"/>
            </wsdl:output>
        </wsdl:operation>
    </wsdl:binding>
    <wsdl:binding name="MatchQueryHttpEndpointBinding" type="tns:MatchQueryPort">
        <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
        <wsdl:operation name="MatchQueryOp">
            <soap:operation style="document" soapAction="/EsbMatchingService/MatchQueryHttpEndpoint/MatchQueryOp"/>
            <wsdl:input>
                <soap:body use="literal" parts="input"/>
            </wsdl:input>
            <wsdl:output>
                <soap:body use="literal" parts="output"/>
            </wsdl:output>
        </wsdl:operation>
    </wsdl:binding>
    <wsdl:message name="MatchQueryReqMsg">
        <wsdl:part name="input" element="ns0:MatchRequest"/>
    </wsdl:message>
    <wsdl:message name="MatchQueryRespMsg">
        <wsdl:part name="output" element="ns0:MatchResponse"/>
    </wsdl:message>
</wsdl:definitions>