axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Chathura Herath (JIRA)" <j...@apache.org>
Subject [jira] Created: (AXIS2-25) WSDL parsing issue.
Date Thu, 09 Jun 2005 09:57:27 GMT
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
 Assigned to: Davanum Srinivas 


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


Mime
View raw message