|
The problem is not related to RPC/Literal. It's an incompatibility with the
WSDL type definitions. As your error message says, there's no type
definition for the PropertyValue element. The PropertyValue element is an
element within the PropertySet type:
<s:complexType name="PropertySet">
- <s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="PropertyName" type="s:string"
/>
<s:element minOccurs="0" maxOccurs="1" name="PropertyValue" />
</s:sequence>
</s:complexType>
But as you can see, it has no type definition, and the element isn't defined
anywhere else in the WSDL file, either. It appears that IONA XMLBus requires
that all elements have an explicit type definition. SOAP doesn't specify a
default type, so I wouldn't say that IONA is in error here. Other WSDL tools
may be able to tolerate this situation, though.
For example, the WASP WSDL Compiler can process the WSDL just fine. It
produces the following class for PropertySet:
public class PropertySet {
public java.lang.String PropertyName;
public java.lang.Object PropertyValue;
}
As you can see, it maps the unknown XML type to an object.
If you want to get XMLbus to compile the WSDL, I guess you'll need to modify
the WSDL and give PropertyValue a type. It's hard to tell from the WSDL what
the PropertyValue is supposed to contain, but I would assume a string.
Modify the WSDL thus:
<s:complexType name="PropertySet">
- <s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="PropertyName" type="s:string"
/>
<s:element minOccurs="0" maxOccurs="1" name="PropertyValue"
type="s:string" />
</s:sequence>
</s:complexType>
and it should work.
|