Please see my answers below.

Gary

> -----Original Message-----
> From: Chris Williamson [mailto:[EMAIL PROTECTED] 
> Sent: Friday, September 26, 2003 9:35 AM
> To: [EMAIL PROTECTED]
> Subject: RE: namespace question
> 
> 
> I have a few followup questions about this.
> 
> 1) What is the preferred way to do this?  Is it preferred to 
> use elementFormDefault="qualified" or not?  Is there anything 
> mentioned about this in ws-i or any other spec that tries to 
> standardize web services?

I think Anne already answered this.  I'm not aware of any WS-I standard
about this.  It may be there, I just don't know.

> 
> 2) So if elementFormDefault="qualified" is not set and the 
> element is a child of the schema root then it should use the 
> targetNnamespace?

elementFormDefault does not affect children of the schema root one way or
the other.  They are always in the targetNamespace specified in the schema
element.  elementFormDefault only affects descendants of the schema below
the children.  If set to qualified, the descendent is in the
targetNamespace.  If set to unqualified, the descendant is not in any
namespace.  This can be overridden with a form attribute on the descendent
"element" element.


> Otherwise if it is a local element it 
> should not.

I'm not sure what this means.

> If elementFormDefault="qualified" is set then 
> all should use the targetNamespace.  Just to make sure.

Yes.

> 
> Thanks,
> 
> Chris
> 
> > -----Original Message-----
> > From: Anne Thomas Manes [mailto:[EMAIL PROTECTED]
> > Sent: Thursday, September 25, 2003 8:54 PM
> > To: [EMAIL PROTECTED]
> > Subject: Re: namespace question
> >
> >
> > Per your schema, the element <text> is a local element, which means 
> > that it should not be namespace qualified. Hence Axis does 
> produce an 
> > accurate realization of your element. Since the <operation> has a 
> > default namespace,
> > you must use xmlns="" to turn off the default namespace.
> >
> > If you added elementFormDefault="qualified" to your 
> <schema> element, 
> > then all of your local elements would also have qualified names, in 
> > which case they would inherit their namespace from their parent 
> > element.
> >
> > Anne
> >
> > At 05:20 PM 9/25/2003 -0500, you wrote:
> > >Hello,
> > >
> > >I have a question about namespaces while using document style
> > web service...
> > >
> > >Say I have a method defined by the schema...
> > >
> > ><schema
> > >     targetNamespace="http://www.domain.com/namespace";
> > >     xmlns="http://www.w3.org/2001/XMLSchema";>
> > >   <element name="operation">
> > >     <complexType>
> > >       <sequence>
> > >         <element maxOccurs="1" name="text" type="xsd:string"/>
> > >       </sequence>
> > >     </complexType>
> > >   </element>
> > >...
> > ></schema>
> > >
> > >It appears that the code that is generated by WSDL2Java
> > generates a message
> > >that would look something like this...
> > >
> > ><operation xmlns="http://www.domain.com/namespace";>
> > >   <text xmlns="">
> > >     blah
> > >   </text>
> > ></operation>
> > >
> > >Why does this add xmlns="" to the text element?  Should this not
> > be there so
> > >that the top level namespace persists?
> > >
> > >I want to know this because I am of the opinion that the namespace 
> > >should persist to the elements defined inside the element and you
> > should be able to
> > >check against the namespace of these elements on the server.  With 
> > >the client adding xmlns="", the namespace is null and I can't check
> > against the
> > >namespace.  Is it acceptable for the namespace to be null or the
> > namespace
> > >defined by targetNamespace?
> > >
> > >Thanks for any help,
> > >
> > >Chris
> >
> 

Reply via email to