Table 48 describes WSDL ODA support for various combinations of style, use, and part definitions, using either type or element in the WSDL and XML Schema.
The WSDL ODA can retrieve WSDL files that are completely self-contained (in one file) or are separated into an implementation file containing the service element, an interface file containing all the other WSDL elements including types, messages, portTypes, and bindings, and one or more files for the schemas. The WSDL ODA is not able to successfully retrieve WSDL files that have more than one interface file, for example, with messages and portTypes in one file and bindings in another file.
The <schema> element in the WSDL document must be self-contained in terms of namespace prefixes. You cannot use a namespace prefix that is defined in the <definitions><types>...</types></definitions> element of the WSDL document in the <schema> element that is a child of the <types> element. You need to re-define the namespace prefix on the <schema> element if it is to be used in the sub-elements of the <schema> element. The following example shows a schema that is incorrect because it is not self-contained:
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:NS="NS"> <types> <schema xmlns="http://www.w3.org/1999/XMLSchema"> <element name="NSElem" type="NS:NSType"/> </schema> </types> </definitions>
Namespace prefix NS is defined on the <definitions> element and is used without re-definition on the <schema> element. Hence the WSDL ODA will throw an error. To work around this limitation, re-define the namespace prefix NS on the <schema> element as shown below:
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:NS="NS">
<types>
<schema xmlns="http://www.w3.org/1999/XMLSchema" xmlns:NS="NS">
<element name="NSElem" type="NS:NSType"/>
</schema>
</types>
</definitions>