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="&gt;=3 &amp;&amp; &lt;= 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