You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by Peter Klotz <pk...@iconet.wn.bawue.de> on 2002/10/30 22:29:29 UTC

REPOST5 PLEASE HELP! WSDL2Java generates uncompilable code

Hi,

this is the fifth repost of a problem that I'm having since one month
without anybody ever replying to my mail.

I mean I have a, to my best knowledge, valid WSDL file that others
obviously use but WSDL2Java from the 1.0 Axis release does not work for
it. This is not only a problem for me but for everybody that has a
document-style WSDL file and I think it should be of interest to the
Axis community to at least provide some tips!

So please, please, someone that has done something like this or knows of
a well-known problem please have a look at the WSDL file and tell me
what's wrong with either the WSDL file or Axis.


Here comes the problem description:

The attached WSDL file (OMI.wsdl) is document-oriented and has messages
for the call and receive XML documents with names like
"getNotifications" etc. I hope that doesn't disturb Axis.
Now what I see is that wsdl2java never generates a class for such a
message-type like "getNotifications". That is fine as it generates in
the OMIPortType a method call getNotifications(). But for some reason
wsdl2java does not generate a class "GetNotifications" although it
creates a reference to that parameter class in OMIPortType?
Is it because the message type and a type used as argument have the same
name?

Second there is type ObjectName that is used everywhere in the WSDL and
wsdl2java generates plenty of references to this class but for unknown
reason it does not generate a class for it! Although the class for
ObjectName should look exactly the same as "DisplayName" that is generated?
But even more strange, wsdl2java generates additionally references to
ObjectName_ElemType and ObjectName_Type but these names never appear in
the WSDL file and also no classes are generated for this?

So to summarize the following classes are referenced in the generated
source code but no class is generated:

- GetNotifications
- ObjectName
- NotificationSet

And yes I am using Axis 1.0 but that behaviour was the same with b3 and rc1.


Thanks very much for any help,

Peter


Re: REPOST5 PLEASE HELP! WSDL2Java generates uncompilable code

Posted by Steven Gollery <sg...@cadrc.calpoly.edu>.
Peter,

I couldn't find all these bug reports and previous posts that Alan Moore 
told you to look for, so I poked around and found that if your WSDL file 
doesn't "overload" the word getNotifications (as a type, an element 
name, and an operation name), the generated files do include a 
GetNotifications.java. I haven't tried to compile the result yet, but 
maybe this gives you a place to go forward from.

Thanks for giving me the opportunity to work with WSDL2Java: I didn't 
know its support for XML schema was so extensive, and I think I 
understand its usefulness now when I didn't before.

Steve


Peter Klotz wrote:

> Hi,
>
> this is the fifth repost of a problem that I'm having since one month
> without anybody ever replying to my mail.
>
> I mean I have a, to my best knowledge, valid WSDL file that others
> obviously use but WSDL2Java from the 1.0 Axis release does not work for
> it. This is not only a problem for me but for everybody that has a
> document-style WSDL file and I think it should be of interest to the
> Axis community to at least provide some tips!
>
> So please, please, someone that has done something like this or knows of
> a well-known problem please have a look at the WSDL file and tell me
> what's wrong with either the WSDL file or Axis.
>
>
> Here comes the problem description:
>
> The attached WSDL file (OMI.wsdl) is document-oriented and has messages
> for the call and receive XML documents with names like
> "getNotifications" etc. I hope that doesn't disturb Axis.
> Now what I see is that wsdl2java never generates a class for such a
> message-type like "getNotifications". That is fine as it generates in
> the OMIPortType a method call getNotifications(). But for some reason
> wsdl2java does not generate a class "GetNotifications" although it
> creates a reference to that parameter class in OMIPortType?
> Is it because the message type and a type used as argument have the same
> name?
>
> Second there is type ObjectName that is used everywhere in the WSDL and
> wsdl2java generates plenty of references to this class but for unknown
> reason it does not generate a class for it! Although the class for
> ObjectName should look exactly the same as "DisplayName" that is 
> generated?
> But even more strange, wsdl2java generates additionally references to
> ObjectName_ElemType and ObjectName_Type but these names never appear in
> the WSDL file and also no classes are generated for this?
>
> So to summarize the following classes are referenced in the generated
> source code but no class is generated:
>
> - GetNotifications
> - ObjectName
> - NotificationSet
>
> And yes I am using Axis 1.0 but that behaviour was the same with b3 
> and rc1.
>
>
> Thanks very much for any help,
>
> Peter
>
>
>------------------------------------------------------------------------
>
><?xml version="1.0" encoding="UTF-8"?>
><definitions name="OMI" targetNamespace="urn:omi-org:api" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="urn:omi-org:api" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:omids="urn:omi-org:api">
>	<documentation>WSDL Service Interface for OMI API V1.0. This WSDL
>               document defines the API calls for interacting with
>	       the OMI Web Service. 
> </documentation>
>	<types>
>		<xsd:schema targetNamespace="urn:omi-org:api" xmlns="urn:omi-org:api" xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="unqualified" attributeFormDefault="unqualified">
>			<xsd:annotation>
>				<xsd:documentation xml:lang="en">OMI Version 1.0 API schema</xsd:documentation>
>			</xsd:annotation>
>			<xsd:attribute name="name" type="xsd:string"/>
>			<xsd:attribute name="lang" type="xsd:string"/>
>			<xsd:attribute name="errorNumber" type="xsd:string"/>
>			<xsd:simpleType name="mode1">
>				<xsd:restriction base="xsd:string">
>					<xsd:enumeration value="inclusive"/>
>					<xsd:enumeration value="exclusive"/>
>				</xsd:restriction>
>			</xsd:simpleType>
>			<xsd:element name="mode1" type="mode1"/>
>			<xsd:simpleType name="mode2">
>				<xsd:restriction base="xsd:string">
>					<xsd:enumeration value="poll"/>
>					<xsd:enumeration value="wait"/>
>				</xsd:restriction>
>			</xsd:simpleType>
>			<xsd:element name="mode2" type="mode2"/>
>			<xsd:simpleType name="access1">
>				<xsd:restriction base="xsd:string"/>
>			</xsd:simpleType>
>			<xsd:element name="access1" type="access1"/>
>			<xsd:simpleType name="operationResultType">
>				<xsd:restriction base="xsd:string"/>
>			</xsd:simpleType>
>			<xsd:element name="operationResultType" type="operationResultType"/>
>			<xsd:simpleType name="description">
>				<xsd:restriction base="xsd:string"/>
>			</xsd:simpleType>
>			<xsd:element name="description" type="description"/>
>			<xsd:simpleType name="displayName">
>				<xsd:restriction base="xsd:string"/>
>			</xsd:simpleType>
>			<xsd:element name="displayName" type="displayName"/>
>			<xsd:simpleType name="tag-value">
>				<xsd:restriction base="xsd:string"/>
>			</xsd:simpleType>
>			<xsd:complexType name="operationParam">
>				<xsd:simpleContent>
>					<xsd:extension base="xsd:string">
>						<xsd:attribute name="name" type="xsd:string"/>
>						<xsd:attribute name="type" type="xsd:string"/>
>					</xsd:extension>
>				</xsd:simpleContent>
>			</xsd:complexType>
>			<xsd:element name="operationParam" type="operationParam"/>
>			<xsd:simpleType name="omi-severity">
>				<xsd:restriction base="xsd:string">
>					<xsd:enumeration value="critical"/>
>					<xsd:enumeration value="major"/>
>					<xsd:enumeration value="minor"/>
>					<xsd:enumeration value="warning"/>
>					<xsd:enumeration value="info"/>
>					<xsd:enumeration value="ok"/>
>					<xsd:enumeration value="indeterminate"/>
>				</xsd:restriction>
>			</xsd:simpleType>
>			<xsd:simpleType name="lastSerial">
>				<xsd:restriction base="xsd:long"/>
>			</xsd:simpleType>
>			<xsd:element name="lastSerial" type="lastSerial"/>
>			<xsd:simpleType name="nextSerial">
>				<xsd:restriction base="xsd:long"/>
>			</xsd:simpleType>
>			<xsd:element name="nextSerial" type="nextSerial"/>
>			<xsd:simpleType name="firstSerial">
>				<xsd:restriction base="xsd:long"/>
>			</xsd:simpleType>
>			<xsd:element name="firstSerial" type="firstSerial"/>
>			<xsd:simpleType name="startSerial">
>				<xsd:restriction base="xsd:long"/>
>			</xsd:simpleType>
>			<xsd:element name="startSerial" type="startSerial"/>
>			<xsd:simpleType name="endSerial">
>				<xsd:restriction base="xsd:long"/>
>			</xsd:simpleType>
>			<xsd:element name="endSerial" type="endSerial"/>
>			<xsd:complexType name="metric">
>				<xsd:attribute name="metricType" type="xsd:string" use="required"/>
>				<xsd:attribute name="unit" type="xsd:string" use="optional"/>
>			</xsd:complexType>
>			<xsd:element name="metric" type="metric"/>
>			<xsd:complexType name="omiSuccess">
>				<xsd:complexContent>
>					<xsd:restriction base="xsd:anyType"/>
>				</xsd:complexContent>
>			</xsd:complexType>
>			<xsd:element name="omiSuccess" type="omiSuccess"/>
>			<xsd:complexType name="getRootObject">
>				<xsd:complexContent>
>					<xsd:restriction base="xsd:anyType"/>
>				</xsd:complexContent>
>			</xsd:complexType>
>			<xsd:element name="getRootObject" type="getRootObject"/>
>			<xsd:simpleType name="sourceObject">
>				<xsd:restriction base="xsd:string"/>
>			</xsd:simpleType>
>			<xsd:element name="sourceObject" type="sourceObject"/>
>			<xsd:simpleType name="objectName">
>				<xsd:restriction base="xsd:string"/>
>			</xsd:simpleType>
>			<xsd:element name="objectName" type="objectName"/>
>			<xsd:complexType name="getObjectDescription">
>				<xsd:sequence>
>					<xsd:element ref="objectName" maxOccurs="unbounded"/>
>				</xsd:sequence>
>			</xsd:complexType>
>			<xsd:element name="getObjectDescription" type="getObjectDescription"/>
>			<xsd:complexType name="attributeInfo">
>				<xsd:sequence>
>					<xsd:element ref="description" minOccurs="0"/>
>					<xsd:element ref="displayName" minOccurs="0"/>
>					<xsd:element name="type" type="xsd:string"/>
>					<xsd:element name="metric" type="metric" minOccurs="0"/>
>				</xsd:sequence>
>				<xsd:attribute name="name" type="xsd:string" use="required"/>
>				<xsd:attribute name="dataType" type="xsd:string" use="optional"/>
>				<xsd:attribute name="access" type="access1" use="optional"/>
>			</xsd:complexType>
>			<xsd:element name="attributeInfo" type="attributeInfo"/>
>			<xsd:complexType name="operationParamType">
>				<xsd:sequence>
>					<xsd:element ref="description" type="xsd:string" minOccurs="0"/>
>					<xsd:element ref="displayName" type="xsd:string" minOccurs="0"/>
>				</xsd:sequence>
>				<xsd:attribute ref="name" type="xsd:string" use="required"/>
>				<xsd:attribute ref="dataType" type="xsd:string" use="required"/>
>			</xsd:complexType>
>			<xsd:element name="operationParamType" type="operationParamType"/>
>			<xsd:complexType name="operationInfo">
>				<xsd:sequence>
>					<xsd:element ref="displayName" type="xsd:string" minOccurs="0"/>
>					<xsd:element ref="description" type="xsd:string" minOccurs="0"/>
>					<xsd:element ref="operationResultType" type="xsd:string" minOccurs="0"/>
>					<xsd:element name="operationParamType" type="operationParamType" minOccurs="0" maxOccurs="unbounded"/>
>				</xsd:sequence>
>				<xsd:attribute ref="name" type="xsd:string" use="required"/>
>			</xsd:complexType>
>			<xsd:element name="operationInfo" type="operationInfo"/>
>			<xsd:complexType name="notificationInfo">
>				<xsd:sequence>
>					<xsd:element name="type" type="xsd:string" minOccurs="0"/>
>					<xsd:element name="description" type="xsd:string" minOccurs="0"/>
>					<xsd:element name="displayName" type="xsd:string" minOccurs="0"/>
>				</xsd:sequence>
>			</xsd:complexType>
>			<xsd:element name="notificationInfo" type="notificationInfo"/>
>			<xsd:complexType name="objectDescription">
>				<xsd:sequence>
>					<xsd:element ref="description" minOccurs="0"/>
>					<xsd:element ref="displayName" minOccurs="0"/>
>					<xsd:element name="interface" type="xsd:string" maxOccurs="unbounded"/>
>					<xsd:element name="attributeInfo" type="attributeInfo" maxOccurs="unbounded"/>
>					<xsd:element name="operationInfo" type="operationInfo" maxOccurs="unbounded"/>
>					<xsd:element name="notificationInfo" type="notificationInfo" maxOccurs="unbounded"/>
>				</xsd:sequence>
>				<xsd:attribute name="object" type="xsd:string" use="required"/>
>				<xsd:attribute name="lang" type="xsd:string" use="required"/>
>			</xsd:complexType>
>			<xsd:element name="objectDescription" type="objectDescription"/>
>			<xsd:complexType name="objectDescriptionSet">
>				<xsd:sequence>
>					<xsd:element ref="objectDescription" minOccurs="0"/>
>				</xsd:sequence>
>			</xsd:complexType>
>			<xsd:element name="objectDescriptionSet" type="objectDescriptionSet"/>
>			<xsd:complexType name="getObjectRelations">
>				<xsd:sequence>
>					<xsd:element ref="objectName" maxOccurs="unbounded"/>
>				</xsd:sequence>
>			</xsd:complexType>
>			<xsd:complexType name="role">
>				<xsd:sequence>
>					<xsd:element name="objectName" type="objectName" maxOccurs="unbounded"/>
>				</xsd:sequence>
>				<xsd:attribute name="relType" type="xsd:string" use="required"/>
>			</xsd:complexType>
>			<xsd:element name="getObjectRelations" type="getObjectRelations"/>
>			<xsd:complexType name="relation">
>				<xsd:sequence>
>					<xsd:element name="role" type="role" minOccurs="0" maxOccurs="unbounded"/>
>				</xsd:sequence>
>				<xsd:attribute name="relId" type="xsd:string" use="required"/>
>				<xsd:attribute name="relType" type="xsd:string" use="optional"/>
>			</xsd:complexType>
>			<xsd:complexType name="objectRelations">
>				<xsd:sequence>
>					<xsd:element name="relation" type="relation" minOccurs="0" maxOccurs="unbounded"/>
>				</xsd:sequence>
>				<xsd:attribute name="object" type="xsd:string" use="required"/>
>			</xsd:complexType>
>			<xsd:element name="objectRelations" type="objectRelations"/>
>			<xsd:complexType name="invokeOperation">
>				<xsd:sequence>
>					<xsd:element ref="objectName"/>
>					<xsd:element name="operation" type="xsd:string"/>
>					<xsd:element ref="operationParam" minOccurs="0" maxOccurs="unbounded"/>
>				</xsd:sequence>
>			</xsd:complexType>
>			<xsd:element name="invokeOperation" type="invokeOperation"/>
>			<xsd:simpleType name="operationResult">
>				<xsd:restriction base="xsd:string"/>
>			</xsd:simpleType>
>			<xsd:element name="operationResult" type="operationResult"/>
>			<xsd:complexType name="attributeNames">
>				<xsd:sequence>
>					<xsd:element ref="objectName" maxOccurs="unbounded"/>
>					<xsd:element name="attributeName" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/>
>				</xsd:sequence>
>			</xsd:complexType>
>			<xsd:element name="attributeNames" type="attributeNames"/>
>			<xsd:complexType name="getAttributeValues">
>				<xsd:sequence>
>					<xsd:element ref="attributeNames" maxOccurs="unbounded"/>
>				</xsd:sequence>
>			</xsd:complexType>
>			<xsd:element name="getAttributeValues" type="getAttributeValues"/>
>			<xsd:complexType name="attributeValue">
>				<xsd:simpleContent>
>					<xsd:extension base="xsd:string">
>						<xsd:attribute ref="name" type="xsd:string" use="required"/>
>						<xsd:attribute ref="lang" type="xsd:string" use="optional"/>
>						<xsd:attribute ref="errorNumber" type="xsd:string" use="optional"/>
>					</xsd:extension>
>				</xsd:simpleContent>
>			</xsd:complexType>
>			<xsd:element name="attributeValue" type="attributeValue"/>
>			<xsd:complexType name="attributeValues">
>				<xsd:sequence>
>					<xsd:element ref="objectName" minOccurs="0"/>
>					<xsd:element name="attributeValue" type="attributeValue" use="optional" maxOccurs="unbounded"/>
>				</xsd:sequence>
>			</xsd:complexType>
>			<xsd:element name="attributeValues" type="attributeValues"/>
>			<xsd:complexType name="setAttributeValues">
>				<xsd:sequence>
>					<xsd:element ref="attributeValues" maxOccurs="unbounded"/>
>				</xsd:sequence>
>			</xsd:complexType>
>			<xsd:element name="setAttributeValues" type="setAttributeValues"/>
>			<xsd:complexType name="attributeValuesSet">
>				<xsd:sequence>
>					<xsd:element ref="attributeValues" minOccurs="0"/>
>				</xsd:sequence>
>			</xsd:complexType>
>			<xsd:element name="attributeValuesSet" type="attributeValuesSet"/>
>			<xsd:complexType name="notificationInterest">
>				<xsd:sequence>
>					<xsd:element ref="objectName" type="objectName" minOccurs="0" maxOccurs="unbounded" use="optional"/>
>				</xsd:sequence>
>				<xsd:attribute name="mode" type="mode1" use="required"/>
>			</xsd:complexType>
>			<xsd:element name="notificationInterest" type="notificationInterest"/>
>			<xsd:complexType name="registerNotificationInterest">
>				<xsd:sequence>
>					<xsd:element ref="notificationInterest"/>
>				</xsd:sequence>
>			</xsd:complexType>
>			<xsd:element name="registerNotificationInterest" type="registerNotificationInterest"/>
>			<xsd:complexType name="cancelNotificationInterest">
>				<xsd:complexContent>
>					<xsd:restriction base="xsd:anyType"/>
>				</xsd:complexContent>
>			</xsd:complexType>
>			<xsd:element name="cancelNotificationInterest" type="cancelNotificationInterest"/>
>			<xsd:complexType name="getNotificationInterest">
>				<xsd:complexContent>
>					<xsd:restriction base="xsd:anyType"/>
>				</xsd:complexContent>
>			</xsd:complexType>
>			<xsd:element name="getNotificationInterest" type="getNotificationInterest"/>
>			<xsd:complexType name="getNotificationAvailability">
>				<xsd:complexContent>
>					<xsd:restriction base="xsd:anyType"/>
>				</xsd:complexContent>
>			</xsd:complexType>
>			<xsd:element name="getNotificationAvailability" type="getNotificationAvailability"/>
>			<xsd:complexType name="notificationAvailability">
>				<xsd:sequence>
>					<xsd:element ref="lastSerial"/>
>					<xsd:element ref="firstSerial"/>
>					<xsd:element ref="nextSerial"/>
>					<xsd:element name="lastTime" type="xsd:dateTime"/>
>					<xsd:element name="firstTime" type="xsd:dateTime"/>
>				</xsd:sequence>
>			</xsd:complexType>
>			<xsd:element name="notificationAvailability" type="notificationAvailability"/>
>			<xsd:complexType name="getNotifications">
>				<xsd:sequence>
>					<xsd:element name="startTime" type="xsd:dateTime" minOccurs="0" maxOccurs="unbounded" use="optional"/>
>					<xsd:element name="endTime" type="xsd:dateTime" minOccurs="0" maxOccurs="unbounded" use="optional"/>
>					<xsd:element name="startSerial" type="xsd:long" minOccurs="0" maxOccurs="unbounded" use="optional"/>
>					<xsd:element name="endSerial" type="xsd:long" minOccurs="0" maxOccurs="unbounded" use="optional"/>
>					<xsd:element ref="maxBatch" type="xsd:long" minOccurs="0" maxOccurs="unbounded" use="optional"/>
>				</xsd:sequence>
>				<xsd:attribute name="mode" type="mode2" use="required"/>
>			</xsd:complexType>
>			<xsd:element name="getNotifications" type="getNotifications"/>
>			<xsd:complexType name="resourceTag">
>				<xsd:simpleContent>
>					<xsd:extension base="tag-value">
>						<xsd:attribute name="key" type="xsd:string" use="required"/>
>					</xsd:extension>
>				</xsd:simpleContent>
>			</xsd:complexType>
>			<xsd:element name="resourceTag" type="resourceTag"/>
>			<xsd:complexType name="correctiveMessage">
>				<xsd:simpleContent>
>					<xsd:extension base="xsd:string">
>						<xsd:attribute name="msgId" type="xsd:string" use="required"/>
>					</xsd:extension>
>				</xsd:simpleContent>
>			</xsd:complexType>
>			<xsd:element name="correctiveMessage" type="correctiveMessage"/>
>			<xsd:complexType name="message">
>				<xsd:simpleContent>
>					<xsd:extension base="xsd:string">
>						<xsd:attribute name="lang" type="xsd:string" use="optional"/>
>						<xsd:attribute name="msgId" type="xsd:string" use="optional"/>
>					</xsd:extension>
>				</xsd:simpleContent>
>			</xsd:complexType>
>			<xsd:element name="message" type="message"/>
>			<xsd:complexType name="notification">
>				<xsd:sequence>
>					<xsd:element ref="sourceObject" type="sourceObject"/>
>					<xsd:element ref="type" type="xsd:string"/>
>					<xsd:element ref="severity" type="omi-severity"/>
>					<xsd:element ref="serial" type="xsd:long"/>
>					<xsd:element ref="timeStamp" type="xsd:dateTime"/>
>					<xsd:element ref="hostName" type="xsd:string"/>
>					<xsd:element ref="interface" type="xsd:string"/>
>					<xsd:element ref="origObject" type="xsd:string" use="optional"/>
>					<xsd:element name="resourceTag" type="xsd:string" use="optional" minOccurs="0" maxOccurs="unbounded"/>
>					<xsd:element ref="correctiveMessage" type="xsd:string" use="optional"/>
>					<xsd:element name="message" type="message" use="optional" minOccurs="0" maxOccurs="unbounded"/>
>					<xsd:element ref="detail" type="notedetail" use="optional"/>
>				</xsd:sequence>
>			</xsd:complexType>
>			<xsd:complexType name="notedetail">
>				<xsd:sequence>
>					<xsd:element name="serviceException" type="serviceException" use="optional"/>
>					<xsd:element ref="relation" type="relation" use="optional"/>
>				</xsd:sequence>
>			</xsd:complexType>
>			<xsd:complexType name="serviceException">
>				<xsd:sequence>
>					<xsd:element ref="user" type="xsd:string" use="optional"/>
>					<xsd:element ref="sessionId" type="xsd:string" use="optional"/>
>					<xsd:element ref="message" type="xsd:string" use="optional"/>
>					<xsd:element ref="ServiceName" type="xsd:string" use="optional"/>
>					<xsd:element ref="errorDump" type="xsd:string" use="optional"/>
>					<xsd:element ref="relation" type="relation" use="optional"/>
>					<xsd:element ref="objectName" type="xsd:string" use="optional"/>
>				</xsd:sequence>
>			</xsd:complexType>
>			<xsd:element name="notification" type="notification"/>
>			<xsd:complexType name="notificationSet">
>				<xsd:sequence>
>					<xsd:element name="notification" type="notification" minOccurs="0" maxOccurs="unbounded"/>
>				</xsd:sequence>
>			</xsd:complexType>
>			<xsd:element name="notificationSet" type="notificationSet"/>
>			<xsd:complexType name="registerNotificationListener">
>				<xsd:sequence>
>					<xsd:element name="listener" type="xsd:string"/>
>					<xsd:element ref="startSerial"/>
>					<xsd:element name="maxBatch" type="xsd:long" minOccurs="0"/>
>				</xsd:sequence>
>			</xsd:complexType>
>			<xsd:element name="registerNotificationListener" type="registerNotificationListener"/>
>			<xsd:complexType name="msg">
>				<xsd:simpleContent>
>					<xsd:extension base="xsd:string">
>						<xsd:attribute name="id" type="xsd:string" use="optional"/>
>					</xsd:extension>
>				</xsd:simpleContent>
>			</xsd:complexType>
>			<xsd:element name="msg" type="msg"/>
>			<xsd:complexType name="error">
>				<xsd:sequence>
>					<xsd:element name="message" type="msg"/>
>					<xsd:element name="detail" type="xsd:long" minOccurs="0" maxOccurs="unbounded"/>
>				</xsd:sequence>
>			</xsd:complexType>
>			<xsd:element name="error" type="error"/>
>			<xsd:complexType name="omiError">
>				<xsd:sequence>
>					<xsd:element name="error" type="error" maxOccurs="unbounded"/>
>				</xsd:sequence>
>			</xsd:complexType>
>			<xsd:element name="omiError" type="omiError"/>
>		</xsd:schema>
>	</types>
>	<message name="getRootObjectInput">
>		<part name="body" element="omids:getRootObject"/>
>	</message>
>	<message name="getRootObjectOutput">
>		<part name="body" element="omids:objectName"/>
>	</message>
>	<message name="getObjectDescriptionInput">
>		<part name="body" element="omids:getObjectDescription"/>
>	</message>
>	<message name="getObjectDescriptionOutput">
>		<part name="body" element="omids:objectDescriptionSet"/>
>	</message>
>	<message name="getObjectRelationsInput">
>		<part name="body" element="omids:getObjectRelations"/>
>	</message>
>	<message name="getObjectRelationsOutput">
>		<part name="body" element="omids:objectRelations"/>
>	</message>
>	<message name="invokeOperationInput">
>		<part name="body" element="omids:invokeOperation"/>
>	</message>
>	<message name="invokeOperationOutput">
>		<part name="body" element="omids:operationResult"/>
>	</message>
>	<message name="getAttributeValuesInput">
>		<part name="body" element="omids:getAttributeValues"/>
>	</message>
>	<message name="getAttributeValuesOutput">
>		<part name="body" element="omids:attributeValuesSet"/>
>	</message>
>	<message name="setAttributeValuesInput">
>		<part name="body" element="omids:setAttributeValues"/>
>	</message>
>	<message name="setAttributeValuesOutput">
>		<part name="body" element="omids:omiSuccess"/>
>	</message>
>	<message name="registerNotificationInterestInput">
>		<part name="body" element="omids:registerNotificationInterest"/>
>	</message>
>	<message name="registerNotificationInterestOutput">
>		<part name="body" element="omids:omiSuccess"/>
>	</message>
>	<message name="cancelNotificationInterestInput">
>		<part name="body" element="omids:cancelNotificationInterest"/>
>	</message>
>	<message name="cancelNotificationInterestOutput">
>		<part name="body" element="omids:omiSuccess"/>
>	</message>
>	<message name="getNotificationInterestInput">
>		<part name="body" element="omids:getNotificationInterest"/>
>	</message>
>	<message name="getNotificationInterestOutput">
>		<part name="body" element="omids:notificationInterest"/>
>	</message>
>	<message name="getNotificationAvailabilityInput">
>		<part name="body" element="omids:getNotificationAvailability"/>
>	</message>
>	<message name="getNotificationAvailabilityOutput">
>		<part name="body" element="omids:notificationAvailability"/>
>	</message>
>	<message name="getNotificationsInput">
>		<part name="body" element="omids:getNotifications"/>
>	</message>
>	<message name="getNotificationsOutput">
>		<part name="body" element="omids:notificationSet"/>
>	</message>
>	<message name="registerNotificationListenerInput">
>		<part name="body" element="omids:registerNotificationListener"/>
>	</message>
>	<message name="registerNotificationListenerOutput">
>		<part name="body" element="omids:omiSuccess"/>
>	</message>
>	<message name="omiErrorMsg">
>		<part name="body" element="omids:omiError"/>
>	</message>
>	<portType name="OMIPortType">
>		<operation name="getRootObject">
>			<input message="tns:getRootObjectInput"/>
>			<output message="tns:getRootObjectOutput"/>
>			<fault name="error" message="tns:omiErrorMsg"/>
>		</operation>
>		<operation name="getObjectDescription">
>			<input message="tns:getObjectDescriptionInput"/>
>			<output message="tns:getObjectDescriptionOutput"/>
>			<fault name="error" message="tns:omiErrorMsg"/>
>		</operation>
>		<operation name="getObjectRelations">
>			<input message="tns:getObjectRelationsInput"/>
>			<output message="tns:getObjectRelationsOutput"/>
>			<fault name="error" message="tns:omiErrorMsg"/>
>		</operation>
>		<operation name="invokeOperation">
>			<input message="tns:invokeOperationInput"/>
>			<output message="tns:invokeOperationOutput"/>
>			<fault name="error" message="tns:omiErrorMsg"/>
>		</operation>
>		<operation name="getAttributeValues">
>			<input message="tns:getAttributeValuesInput"/>
>			<output message="tns:getAttributeValuesOutput"/>
>			<fault name="error" message="tns:omiErrorMsg"/>
>		</operation>
>		<operation name="setAttributeValues">
>			<input message="tns:setAttributeValuesInput"/>
>			<output message="tns:setAttributeValuesOutput"/>
>			<fault name="error" message="tns:omiErrorMsg"/>
>		</operation>
>		<operation name="registerNotificationInterest">
>			<input message="tns:registerNotificationInterestInput"/>
>			<output message="tns:registerNotificationInterestOutput"/>
>			<fault name="error" message="tns:omiErrorMsg"/>
>		</operation>
>		<operation name="cancelNotificationInterest">
>			<input message="tns:cancelNotificationInterestInput"/>
>			<output message="tns:cancelNotificationInterestOutput"/>
>			<fault name="error" message="tns:omiErrorMsg"/>
>		</operation>
>		<operation name="getNotificationInterest">
>			<input message="tns:getNotificationInterestInput"/>
>			<output message="tns:getNotificationInterestOutput"/>
>			<fault name="error" message="tns:omiErrorMsg"/>
>		</operation>
>		<operation name="getNotificationAvailability">
>			<input message="tns:getNotificationAvailabilityInput"/>
>			<output message="tns:getNotificationAvailabilityOutput"/>
>			<fault name="error" message="tns:omiErrorMsg"/>
>		</operation>
>		<operation name="getNotifications">
>			<input message="tns:getNotificationsInput"/>
>			<output message="tns:getNotificationsOutput"/>
>			<fault name="error" message="tns:omiErrorMsg"/>
>		</operation>
>		<operation name="registerNotificationListener">
>			<input message="tns:registerNotificationListenerInput"/>
>			<output message="tns:registerNotificationListenerOutput"/>
>			<fault name="error" message="tns:omiErrorMsg"/>
>		</operation>
>	</portType>
>	<binding name="OMISoapBinding" type="tns:OMIPortType">
>		<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
>		<operation name="getRootObject">
>			<soap:operation soapAction="OMI"/>
>			<input>
>				<soap:body parts="body" use="literal" namespace="urn:omi-org:api"/>
>				<soap:header element="omids:omiHeader"/>
>			</input>
>			<output>
>				<soap:body parts="body" use="literal" namespace="urn:omi-org:api"/>
>			</output>
>			<fault name="error">
>				<soap:fault namespace="urn:omi-org:api"/>
>			</fault>
>		</operation>
>		<operation name="getObjectDescription">
>			<soap:operation soapAction="OMI"/>
>			<input>
>				<soap:body parts="body" use="literal" namespace="urn:omi-org:api"/>
>				<soap:header element="omids:omiHeader"/>
>			</input>
>			<output>
>				<soap:body parts="body" use="literal" namespace="urn:omi-org:api"/>
>			</output>
>			<fault name="error">
>				<soap:fault namespace="urn:omi-org:api"/>
>			</fault>
>		</operation>
>		<operation name="getObjectRelations">
>			<soap:operation soapAction="OMI"/>
>			<input>
>				<soap:body parts="body" use="literal" namespace="urn:omi-org:api"/>
>				<soap:header element="omids:omiHeader"/>
>			</input>
>			<output>
>				<soap:body parts="body" use="literal" namespace="urn:omi-org:api"/>
>			</output>
>			<fault name="error">
>				<soap:fault namespace="urn:omi-org:api"/>
>			</fault>
>		</operation>
>		<operation name="invokeOperation">
>			<soap:operation soapAction="OMI"/>
>			<input>
>				<soap:body parts="body" use="literal" namespace="urn:omi-org:api"/>
>				<soap:header element="omids:omiHeader"/>
>			</input>
>			<output>
>				<soap:body parts="body" use="literal" namespace="urn:omi-org:api"/>
>			</output>
>			<fault name="error">
>				<soap:fault namespace="urn:omi-org:api"/>
>			</fault>
>		</operation>
>		<operation name="getAttributeValues">
>			<soap:operation soapAction="OMI"/>
>			<input>
>				<soap:body parts="body" use="literal" namespace="urn:omi-org:api"/>
>				<soap:header element="omids:omiHeader"/>
>			</input>
>			<output>
>				<soap:body parts="body" use="literal" namespace="urn:omi-org:api"/>
>			</output>
>			<fault name="error">
>				<soap:fault namespace="urn:omi-org:api"/>
>			</fault>
>		</operation>
>		<operation name="setAttributeValues">
>			<soap:operation soapAction="OMI"/>
>			<input>
>				<soap:body parts="body" use="literal" namespace="urn:omi-org:api"/>
>				<soap:header element="omids:omiHeader"/>
>			</input>
>			<output>
>				<soap:body parts="body" use="literal" namespace="urn:omi-org:api"/>
>			</output>
>			<fault name="error">
>				<soap:fault namespace="urn:omi-org:api"/>
>			</fault>
>		</operation>
>		<operation name="registerNotificationInterest">
>			<soap:operation soapAction="OMI"/>
>			<input>
>				<soap:body parts="body" use="literal" namespace="urn:omi-org:api"/>
>				<soap:header element="omids:omiHeader"/>
>			</input>
>			<output>
>				<soap:body parts="body" use="literal" namespace="urn:omi-org:api"/>
>			</output>
>			<fault name="error">
>				<soap:fault namespace="urn:omi-org:api"/>
>			</fault>
>		</operation>
>		<operation name="cancelNotificationInterest">
>			<soap:operation soapAction="OMI"/>
>			<input>
>				<soap:body parts="body" use="literal" namespace="urn:omi-org:api"/>
>				<soap:header element="omids:omiHeader"/>
>			</input>
>			<output>
>				<soap:body parts="body" use="literal" namespace="urn:omi-org:api"/>
>			</output>
>			<fault name="error">
>				<soap:fault namespace="urn:omi-org:api"/>
>			</fault>
>		</operation>
>		<operation name="getNotificationInterest">
>			<soap:operation soapAction="OMI"/>
>			<input>
>				<soap:body parts="body" use="literal" namespace="urn:omi-org:api"/>
>				<soap:header element="omids:omiHeader"/>
>			</input>
>			<output>
>				<soap:body parts="body" use="literal" namespace="urn:omi-org:api"/>
>			</output>
>			<fault name="error">
>				<soap:fault namespace="urn:omi-org:api"/>
>			</fault>
>		</operation>
>		<operation name="getNotificationAvailability">
>			<soap:operation soapAction="OMI"/>
>			<input>
>				<soap:body parts="body" use="literal" namespace="urn:omi-org:api"/>
>				<soap:header element="omids:omiHeader"/>
>			</input>
>			<output>
>				<soap:body parts="body" use="literal" namespace="urn:omi-org:api"/>
>			</output>
>			<fault name="error">
>				<soap:fault namespace="urn:omi-org:api"/>
>			</fault>
>		</operation>
>		<operation name="getNotifications">
>			<soap:operation soapAction="OMI"/>
>			<input>
>				<soap:body parts="body" use="literal" namespace="urn:omi-org:api"/>
>				<soap:header element="omids:omiHeader"/>
>			</input>
>			<output>
>				<soap:body parts="body" use="literal" namespace="urn:omi-org:api"/>
>			</output>
>			<fault name="error">
>				<soap:fault namespace="urn:omi-org:api"/>
>			</fault>
>		</operation>
>		<operation name="registerNotificationListener">
>			<soap:operation soapAction="OMI"/>
>			<input>
>				<soap:body parts="body" use="literal" namespace="urn:omi-org:api"/>
>				<soap:header element="omids:omiHeader"/>
>			</input>
>			<output>
>				<soap:body parts="body" use="literal" namespace="urn:omi-org:api"/>
>			</output>
>			<fault name="error">
>				<soap:fault namespace="urn:omi-org:api"/>
>			</fault>
>		</operation>
>	</binding>
>	<service name="OMIService">
>		<documentation>OMI Web Service</documentation>
>		<port name="OMIBindingPort" binding="tns:OMISoapBinding">
>			<soap:address location="http://levma03_dt:5555/soap/omi"/>
>		</port>
>	</service>
></definitions>
>