Thanks for your help Anne, I think I got it straightened out now.

As an aside, it turns out that along with my ignorance, some of the
tools that I've been trying to leverage to supplement my WSDL
knowledge (or lack thereof) have a few "problems". For example, I took
this example a step closer to my "real" problem and changed it to
import multiple schemas using xsd:import. In this scenario, I found
that:
- Axis wsdl2java works
- CapeClear SOA Editor validation succeeds
- Eclipse WTF (M7) WSDL validation fails
- MindReef SOAP Scop validation fails

To make matters worse, when I take things a step further towards my
"real" problem and import the 3rd party schemas I'm trying to use
(OTA), CapeClear SOA Editor hangs on validation.

Perhaps I'm doing something wrong, but it seems that the tools support
for this case is buggy and inconsistent. Hopefully when I get my
enterprise license for XMLSpy Enterprise the experience will be
better.

On 6/21/05, Anne Thomas Manes <[EMAIL PROTECTED]> wrote:
> You need to define an element in your schema (rather than just a
> type), and reference this element from your <part> description. You
> need to do the same for your input message. And rather than using the
> unwrapped document style, I recommend that you use the wrapped
> document style, which means that you should define input and output
> wrapper elements"
> 
> <xsd:schema targetNamespace="urn:listing2"
> xmlns:listing3="urn:listing3"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema";>
>   <xsd:import namespace="urn:listing3" schemaLocation="listing3.xsd" />
>   <xsd:element name="getPhone">
>     <xsd:complexType>
>        <xsd:sequence>
>          <xsd:element name="name" type="xsd:string"/>
>        </xsd:sequence>
>     </xsd:complexType>
>   </xsd:element>
>   <xsd:element name="getPhoneReturn">
>     <xsd:complexType>
>        <xsd:sequence>
>          <xsd:element name="phone" type="listing3:Phone"/>
>        </xsd:sequence>
>     </xsd:complexType>
>   </xsd:element>
>  </xsd:schema>
> 
>   <wsdl:message name="GetPhoneRequest">
>      <wsdl:part name="parameters" element="tns:getPhone" />
>   </wsdl:message>
>   <wsdl:message name="GetPhoneResponse">
>      <wsdl:part name="parameters" element="tns:getPhoneReturn" />
>    </wsdl:message>
> 
> Anne
> On 6/21/05, Z Ellmy <[EMAIL PROTECTED]> wrote:
> > I'm trying to compose a valid doc/literal WSDL but I'm having trouble.
> >
> > If I use:
> > <wsdl:part name="phone" type="listing3:Phone"/>
> >
> > this works and I can generate stubs and bindings but SOAPScope and
> > other tools clue me that this violates WS-I Basic Profile:
> >
> >   Missing "element" attribute - Wsdl:part phone does not have an "element"
> >   attribute defined and is referred to by a "document" style soap:body.
> >
> > So, if I change this to:
> > <wsdl:part name="phone" element="listing3:Phone"/>
> >
> > then I get an error with wsdl2java:
> >   WSDL processing error for AddressBook.wsdl : Element {urn:listing3}Phone
> >   is referenced but not defined.
> >
> > So I guess my question is what is the correct way to import this type
> > from another schema file and still satisfy the WS-I requirements? This
> > is just a basic example, my "real" problem involves creating a WSDL
> > for an existing set of complex schemas.
> >
> > I've attached my WSDL and my XSD.
> >
> > I'll be the first to admit any ignorance and/or misunderstand of the
> > concepts here -- but I'd really appreciate some help :
>

Reply via email to