Srinath, Please close this JIRA, it was fixed and the patch and the test case attached. Chathura
> -----Original Message----- > From: Srinath Perera (JIRA) [mailto:[EMAIL PROTECTED] > Sent: Thursday, June 23, 2005 9:20 AM > To: [email protected] > Subject: [jira] Assigned: (AXIS2-25) WSDL parsing issue. > > [ http://issues.apache.org/jira/browse/AXIS2-25?page=all ] > > Srinath Perera reassigned AXIS2-25: > ----------------------------------- > > Assign To: Chathura Herath (was: Davanum Srinivas) > > > WSDL parsing issue. > > ------------------- > > > > Key: AXIS2-25 > > URL: http://issues.apache.org/jira/browse/AXIS2-25 > > Project: Apache Axis 2.0 (Axis2) > > Type: Bug > > Components: wsdl > > Environment: NA > > Reporter: Chathura Herath > > Assignee: Chathura Herath > > Attachments: BindingOperationTest.java, BookQuote.wsdl, patch.txt > > > > The issue arrives when the optional WSDL Binding Operation message > references(which are optional) does not match with the Operations message > references. Example.. WSDL > > > .......................................................................... > ............ > > <?xml version="1.0" encoding="UTF-8"?> > > <!-- > > This is the main description file for the web service. > > It is used to generate some code, which is used by client and server. > > The data types are based on the XML Schema for license files, namely > licenses.xsd. This file > > is imported directly into the types definition of this web server > description language file. > > @author mhaller > > --> > > <wsdl:definitions xmlns:apachesoap="http://xml.apache.org/xml-soap" > > xmlns:impl="http://www.innovations.de/2005/v1/XMLLicenseSchema#Intf" > > xmlns:inno="http://www.innovations.de/2005/v1/XMLLicenseSchema" > > xmlns:intf="http://www.innovations.de/2005/v1/XMLLicenseSchema#Impl" > > xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" > > xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" > > xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" > > xmlns:xsd="http://www.w3.org/2001/XMLSchema" > > > targetNamespace="http://www.innovations.de/2005/v1/XMLLicenseSchema#Impl"> > > > > <!-- Declare the custom datatypes used in the license server web > service --> > > <wsdl:types> > > <xsd:schema > targetNamespace="http://www.innovations.de/2005/v1/XMLLicenseSchema"> > > <!-- Import the license datatypes schema file --> > > <xsd:import schemaLocation="E:\licenses.xsd" > namespace="http://www.innovations.de/2005/v1/XMLLicenseSchema"/> > > </xsd:schema> > > </wsdl:types> > > > > > > > > <!-- The declarations of the messages. There are two types of > messages: > > Request-Messages which are sent from the client to the server. > > And Response-Messages which are sent from the server to the client. > > The message have "parts" - something like wrappers for parameters. > > The parts are declared below. --> > > <!-- The QueryLicense pair > > IN: A string with a list of features > > OUT: An object of type Licenses, which is a container for LicenseType > objects --> > > <wsdl:message name="QueryLicensesRequest"> > > <wsdl:part name="Features" type="xsd:string"/> > > </wsdl:message> > > <wsdl:message name="QueryLicensesResponse"> > > <wsdl:part name="QueryLicensesReturn" type="inno:Licenses"/> > > </wsdl:message> > > <!-- Request a single license --> > > <wsdl:message name="RequestLicenseResponse"> > > <wsdl:part name="RequestLicenseReturn" type="inno:License"/> > > </wsdl:message> > > <wsdl:message name="RequestLicenseRequest"> > > <wsdl:part name="UniqueIdentifier" type="xsd:string"/> > > </wsdl:message> > > <!-- Free or unlock a license which was in use --> > > <wsdl:message name="FreeLicenseRequest"> > > <wsdl:part name="UniqueIdentifier" type="xsd:string"/> > > </wsdl:message> > > <wsdl:message name="FreeLicenseResponse"> > > <wsdl:part name="FreeLicenseReturn" type="xsd:boolean"/> > > </wsdl:message> > > <!-- Admin Messages --> > > <wsdl:message name="InstallLicenseRequest"> > > <wsdl:part name="License" type="inno:License"/> > > </wsdl:message> > > <wsdl:message name="InstallLicenseResponse"> > > <wsdl:part name="InstallLicenseReturn" type="xsd:boolean"/> > > </wsdl:message> > > <wsdl:message name="GetServerStatusRequest"> > > </wsdl:message> > > <wsdl:message name="GetServerStatusResponse"> > > <wsdl:part name="GetServerStatusReturn" type="inno:ServerStatus"/> > > </wsdl:message> > > <wsdl:message name="ReloadRequest"> > > </wsdl:message> > > <wsdl:message name="ReloadResponse"> > > </wsdl:message> > > <!-- The portType definition declares all the methods of the webserver > > and which messages it takes in from the client, and which messages it > send out to the client. --> > > <wsdl:portType name="ILicenseServer"> > > <wsdl:operation name="QueryLicenses" parameterOrder="Features"> > > <wsdl:input message="intf:QueryLicensesRequest" > name="QueryLicensesRequest"/> > > <wsdl:output message="intf:QueryLicensesResponse" > name="QueryLicensesResponse"/> > > </wsdl:operation> > > <wsdl:operation name="RequestLicense" > parameterOrder="UniqueIdentifier"> > > <wsdl:input message="intf:RequestLicenseRequest" > name="RequestLicenseRequest"/> > > <wsdl:output message="intf:RequestLicenseResponse" > name="RequestLicenseResponse"/> > > </wsdl:operation> > > <wsdl:operation name="FreeLicense" > parameterOrder="UniqueIdentifier"> > > <wsdl:input message="intf:FreeLicenseRequest" > name="FreeLicenseRequest"/> > > <wsdl:output message="intf:FreeLicenseResponse" > name="FreeLicenseResponse"/> > > </wsdl:operation> > > <wsdl:operation name="InstallLicense" parameterOrder="License"> > > <wsdl:input message="intf:InstallLicenseRequest" > name="InstallLicenseRequest"/> > > <wsdl:output message="intf:InstallLicenseResponse" > name="InstallLicenseResponse"/> > > </wsdl:operation> > > <wsdl:operation name="GetServerStatus"> > > <wsdl:input message="intf:GetServerStatusRequest" > name="GetServerStatusRequest"/> > > <wsdl:output message="intf:GetServerStatusResponse" > name="GetServerStatusResponse"/> > > </wsdl:operation> > > <wsdl:operation name="Reload"> > > <wsdl:input message="intf:ReloadRequest" name="ReloadRequest"/> > > <wsdl:output message="intf:ReloadResponse" name="ReloadResponse"/> > > </wsdl:operation> > > </wsdl:portType> > > <!-- The binding part of the WSDL file describes the transport > implementation. > > Here, it's defined that the webservice can be accessed via HTTP > protocol (or, to be more > > specific: via SOAP HTTP) > > The "document" style is used for interop, the "literal" use is the way > how > > the parameters get wrapped (or not wrapped, in this case) > > Valid values for style are: "document" and "rpc", although there > should also > > be "wrapped", which is a subtype of document. --> > > <wsdl:binding name="LicenseServerSoapBinding" > type="intf:ILicenseServer"> > > <wsdlsoap:binding style="document" > transport="http://schemas.xmlsoap.org/soap/http"/> > > <wsdl:operation name="QueryLicenses"> > > <wsdlsoap:operation soapAction=""/> > > <wsdl:input name="QueryLicensesRequest"> > > <wsdlsoap:body use="literal"/> > > </wsdl:input> > > <wsdl:output name="QueryLicensesResponse"> > > <wsdlsoap:body use="literal"/> > > </wsdl:output> > > </wsdl:operation> > > <wsdl:operation name="RequestLicense"> > > <wsdlsoap:operation soapAction=""/> > > <wsdl:input name="RequestLicenseRequest"> > > <wsdlsoap:body use="literal"/> > > </wsdl:input> > > <wsdl:output name="RequestLicenseResponse"> > > <wsdlsoap:body use="literal"/> > > </wsdl:output> > > </wsdl:operation> > > <wsdl:operation name="FreeLicense"> > > <wsdlsoap:operation soapAction=""/> > > <wsdl:input name="FreeLicenseRequest"> > > <wsdlsoap:body use="literal"/> > > </wsdl:input> > > <wsdl:output name="FreeLicenseResponse"> > > <wsdlsoap:body use="literal"/> > > </wsdl:output> > > </wsdl:operation> > > <wsdl:operation name="InstallLicense"> > > <wsdlsoap:operation soapAction=""/> > > <wsdl:input name="InstallLicenseRequest"> > > <wsdlsoap:body use="literal"/> > > </wsdl:input> > > <wsdl:output name="InstallLicenseResponse"> > > <wsdlsoap:body use="literal"/> > > </wsdl:output> > > </wsdl:operation> > > <wsdl:operation name="GetServerStatus"> > > <wsdlsoap:operation soapAction=""/> > > <wsdl:output name="GetServerStatusResponse"> > > <wsdlsoap:body use="literal"/> > > </wsdl:output> > > </wsdl:operation> > > <wsdl:operation name="Reload"> > > <wsdlsoap:operation soapAction=""/> > > </wsdl:operation> > > </wsdl:binding> > > <!-- The service definition just tells us the name of the service, > > and where (address) we can find it. As this is no public web service, > > we are not defining a full qualified domain name here, but a short > hostname. > > Later, in the client, the endpoint hostname will be made changeable. - > -> > > <wsdl:service name="ILicenseServerService"> > > <wsdl:port binding="intf:LicenseServerSoapBinding" > name="LicenseServer"> > > <wsdlsoap:address > location="http://licenseserver:8080/licenseserver/services/LicenseServer"/ > > > > </wsdl:port> > > </wsdl:service> > > </wsdl:definitions> > > > .......................................................................... > .................................... > > XSD > > <?xml version="1.0"?> > > <!-- > > This schema defines all the custom datatypes for use in the license > server communication. > > It represents the model for licenses, license containers, and the values > a license can have. > > It is used by the WSDL file to generate code. > > It is used by the Castor codegenerator to generate model code. > > It is used by the license files to validate themselves. > > --> > > <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" > > targetNamespace="http://www.innovations.de/2005/v1/XMLLicenseSchema" > > xmlns:inno="http://www.innovations.de/2005/v1/XMLLicenseSchema" > > xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" > > elementFormDefault="qualified"> > > <!-- > > Documentation > > --> > > <xsd:annotation> > > <xsd:documentation xml:lang="en">A XML Schema for License Key > Information as replacement for > > legacy file-based software license keys. Copyright (c) 2005 > Innovations > > Softwaretechnologie GmbH. </xsd:documentation> > > <xsd:documentation xml:lang="de">Ein XML Schema für > Lizenzschlüssel, als Ersatz für das > > bestehende dateibasierte Lizenzformat. Copyright (c) 2005 > Innovations > > Softwaretechnologie GmbH. </xsd:documentation> > > </xsd:annotation> > > <!-- Importing the XML Security Schema --> > > > > > > <!-- > > This is the root element of all license files. > > <Licenses> > > <License> > > </License> > > <License> > > </License> > > <LogEntry> > > </LogEntry> > > </Licenses> > > --> > > <!-- The container type for license keys --> > > <xsd:element name="Licenses" type="inno:LicenseContainer"/> > > <xsd:complexType name="LicenseContainer"> > > <xsd:sequence> > > <xsd:element name="License" minOccurs="0" > maxOccurs="unbounded" type="inno:LicenseType"/> > > <xsd:element name="LogEntry" minOccurs="0" > maxOccurs="unbounded" type="inno:LogEntryType"/> > > </xsd:sequence> > > </xsd:complexType> > > <!-- A named license key binds a license to a specific person --> > > <xsd:element name="NamedLicenseModel"> > > <xsd:complexType> > > <xsd:sequence> > > <xsd:element name="Person" type="inno:Identity"/> > > </xsd:sequence> > > </xsd:complexType> > > </xsd:element> > > <!-- A Node Locked License model locks a license to a specific > machine --> > > <xsd:element name="NodeLockedLicenseModel"> > > <xsd:complexType> > > <xsd:sequence> > > <xsd:element name="Node" type="inno:Identity"/> > > </xsd:sequence> > > </xsd:complexType> > > </xsd:element> > > <!-- A Floating License can be used concurrently by an amount of > users --> > > <xsd:element name="FloatingLicenseModel"> > > <xsd:complexType> > > <xsd:sequence> > > <xsd:element name="ConcurrentDevices" type="xsd:int" > minOccurs="1" maxOccurs="1" > > nillable="false"/> > > <xsd:element name="AllowMultipleInstances" > type="xsd:boolean" minOccurs="0" > > maxOccurs="1" nillable="false"/> > > </xsd:sequence> > > </xsd:complexType> > > </xsd:element> > > <!-- A Site license is only restricted to be used by employees by a > single company --> > > <xsd:element name="SiteLicenseModel"> > > <xsd:complexType> > > <xsd:sequence> > > <xsd:element name="Company" minOccurs="1" maxOccurs="1" > type="inno:Identity"/> > > </xsd:sequence> > > </xsd:complexType> > > </xsd:element> > > <!-- Time restricted license model --> > > <xsd:element name="TimeRestrictedLicenseModel"> > > <xsd:complexType> > > <xsd:sequence> > > <xsd:element minOccurs="0" name="ValidAfter" > type="xsd:date"/> > > <xsd:element minOccurs="0" name="ValidBefore" > type="xsd:date"/> > > <xsd:element minOccurs="0" name="ReleaseDateBefore" > type="xsd:date"/> > > </xsd:sequence> > > </xsd:complexType> > > </xsd:element> > > <!-- The main License type includes signed information about the > license key itself, > > meta information and optionally runtime-information --> > > <xsd:complexType name="LicenseType"> > > <xsd:sequence> > > <!-- Very Important License Information --> > > <xsd:element name="SignedLicenseInfo" minOccurs="1"> > > <xsd:complexType> > > <!-- This Id is used by XML Security to reference > the signed element --> > > <xsd:sequence> > > <xsd:element name="Vendor" type="xsd:string"/> > > <xsd:element name="Application" > type="xsd:string"/> > > <xsd:choice> > > <xsd:element ref="inno:NamedLicenseModel"/> > > <xsd:element > ref="inno:NodeLockedLicenseModel"/> > > <xsd:element > ref="inno:FloatingLicenseModel"/> > > <xsd:element ref="inno:SiteLicenseModel"/> > > <xsd:element > ref="inno:TimeRestrictedLicenseModel"/> > > </xsd:choice> > > <!-- Extendable License Information --> > > <xsd:element name="Feature" > maxOccurs="unbounded" minOccurs="0" > > type="inno:FeatureType"/> > > </xsd:sequence> > > <xsd:attribute name="Id" use="required" > type="xsd:string"/> > > </xsd:complexType> > > </xsd:element> > > <!-- The position of the Digital Signature for this License > --> > > <xsd:element ref="dsig:Signature" minOccurs="0" > maxOccurs="unbounded"/> > > <!-- Additional License Information --> > > <xsd:element name="MetaInfo" minOccurs="0"> > > <xsd:complexType> > > <xsd:sequence> > > <!-- Vendor/Application Information --> > > <xsd:element minOccurs="0" name="Description" > type="xsd:string"/> > > <xsd:element minOccurs="0" name="Creation" > type="xsd:date"/> > > </xsd:sequence> > > </xsd:complexType> > > </xsd:element> > > <!-- Additional Runtime License Information --> > > <xsd:element name="RuntimeInfo" minOccurs="0"> > > <xsd:complexType> > > <xsd:sequence> > > <!-- Server-related Runtime Information --> > > <xsd:element minOccurs="0" maxOccurs="1" > name="Locked" type="xsd:boolean"/> > > <xsd:element minOccurs="0" maxOccurs="1" > name="LockedByUser" > > type="xsd:string"/> > > <xsd:element minOccurs="0" maxOccurs="1" > name="LockedSince" type="xsd:date"/> > > <xsd:element minOccurs="0" maxOccurs="1" > name="LockedUntil" type="xsd:date" > > /> > > </xsd:sequence> > > </xsd:complexType> > > </xsd:element> > > </xsd:sequence> > > </xsd:complexType> > > <!-- Error Codes --> > > <xsd:simpleType name="StatusCode"> > > <xsd:annotation> > > <xsd:documentation>Status codes being used in > logfile</xsd:documentation> > > </xsd:annotation> > > <xsd:restriction base="xsd:int"> > > <xsd:enumeration value="200" id="STATUS_OK"/> > > <xsd:enumeration value="403" id="STATUS_ERR_NO_AUTH"/> > > <xsd:enumeration value="404" id="STATUS_ERR_NOT_FOUND"/> > > <xsd:enumeration value="500" id="STATUS_ERR_INTERNAL"/> > > </xsd:restriction> > > </xsd:simpleType> > > <!-- Represents an identity, namely a person, a company or a machine > --> > > <xsd:complexType name="Identity"> > > <xsd:sequence> > > <xsd:element name="Name" type="xsd:string" minOccurs="0" > maxOccurs="1"/> > > <xsd:element name="Address" type="xsd:string" minOccurs="0" > maxOccurs="1"/> > > <xsd:element name="EMail" type="xsd:string" minOccurs="0" > maxOccurs="1"/> > > <xsd:element name="Hostname" type="xsd:string" minOccurs="0" > maxOccurs="1"/> > > <xsd:element name="IPAddress" type="xsd:string" > minOccurs="0" maxOccurs="1"/> > > <xsd:element name="MACAddress" type="xsd:string" > minOccurs="0" maxOccurs="1"/> > > </xsd:sequence> > > </xsd:complexType> > > <!-- This is a complex type, which represents a map (key and value > pairs) for > > defining features of a license. --> > > <xsd:complexType name="FeatureType"> > > <xsd:attribute name="name" type="xsd:string" use="required"/> > > <xsd:attribute name="value" type="xsd:string" use="required"/> > > <!-- This can be used to differentiate content types, e.g. > > to use some basic scripting language like: > > <Feature name="majorVersion" type="script" value=">=3 > && <= 4"/> > > --> > > <xsd:attribute name="type" type="xsd:string" default="plain" > use="optional"/> > > </xsd:complexType> > > <!-- > > Admin-Level: Server Management > > --> > > <xsd:complexType name="ServerStatus"> > > <xsd:sequence> > > <xsd:element name="VersionString" maxOccurs="1" > minOccurs="0" type="xsd:string"/> > > <xsd:element name="NumberLicenses" maxOccurs="1" > minOccurs="0" type="xsd:int"/> > > <xsd:element name="NumberQueries" maxOccurs="1" > minOccurs="0" type="xsd:long"/> > > <xsd:element name="NumberRequests" maxOccurs="1" > minOccurs="0" type="xsd:long"/> > > <xsd:element name="RegistreeString" maxOccurs="1" > minOccurs="0" type="xsd:string"/> > > <xsd:element name="UptimeSince" maxOccurs="1" minOccurs="0" > type="xsd:duration"/> > > </xsd:sequence> > > </xsd:complexType> > > <!-- Server Stuff --> > > <xsd:complexType name="LogEntryType"> > > <xsd:sequence> > > <xsd:element name="TimeStamp" type="xsd:date"/> > > <xsd:element name="RemoteUser" type="xsd:string"/> > > <xsd:element name="RemoteHost" type="xsd:string"/> > > <xsd:element name="StatusCode" type="inno:StatusCode"/> > > <xsd:element name="LicenseID" type="xsd:string"/> > > </xsd:sequence> > > </xsd:complexType> > > > > </xsd:schema> > > -- > This message is automatically generated by JIRA. > - > If you think it was sent incorrectly contact one of the administrators: > http://issues.apache.org/jira/secure/Administrators.jspa > - > For more information on JIRA, see: > http://www.atlassian.com/software/jira >
