Re: Correct usage of wsdl:part/@element for doc/literal

2005-06-22 Thread Z Ellmy
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 :



Re: Correct usage of wsdl:part/@element for doc/literal

2005-06-21 Thread Anne Thomas Manes
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 :