You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by "Chathura Herath (JIRA)" <ji...@apache.org> on 2005/06/09 12:41:23 UTC
[jira] Updated: (AXIS2-25) WSDL parsing issue.
[ http://issues.apache.org/jira/browse/AXIS2-25?page=all ]
Chathura Herath updated AXIS2-25:
---------------------------------
Attachment: patch.txt
Patch for the Issue. Commited to SVN (Revision: 189736)
> WSDL parsing issue.
> -------------------
>
> Key: AXIS2-25
> URL: http://issues.apache.org/jira/browse/AXIS2-25
> Project: Axis2
> Type: Bug
> Components: wsdl
> Environment: NA
> Reporter: Chathura Herath
> Assignee: Davanum Srinivas
> Attachments: 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