CR045: Inline schemas with no target namespace

this was recorded as CR045, and I took an action on today's
telcon to try and make some progress

http://www.w3.org/2002/ws/desc/5/cr-issues/#CR045

> Menon wrote:
> Section 3.1.2.1 of the Core Langage spec says
> "WSDL 2.0 modifies the XML Schema definition of the xs:schema element
> information item to make this attribute information item required".

So it's assertion #Schema-0019-summary which is the issue here:

"The xs:schema element information item MUST contain a targetNamespace 
attribute information item.†"

> There is a scenario where I have an existing XSD that I am intending
> to re-use while designing the WSDL. The XSD has no target namespace,
> and has a bunch of elements and attributes defined within it. What it
> also does is to import a couple of XSDs that have a non-null target
> namespace. the wsdl intends to define the message parts to point to
> one of the nodes defined in the imported XSDs within the nonamespace
> XSD. 
> The nodes that had been directly defined in the no-namespace XSD
> are not used by the WSDL, but are consumed by other applications.

So the Global Element Declaration (GED) you'd like to reference
has a qname, but is imported by a schema with no-namespace.

> I was wondering that atleast
> theoretically, this should be possible. The question is - "Do we need
> to make some statements around this in the spec" ?

> Arthur wrote:
> Just the immediate childen of the wsdl:types element need a namespace. 
> Within those you can include or import a no-namespace schema.

xs:include isn't going to help here, as the components in the 
no-namespace schema will take on the namespace of the includer,
chameleon style.

You could create a wrapper schema with a targetNamespace
and then xs:import a no-namespace schema from outside the WSDL:

    <xs:schema targetNamespace="http://example.com/dev/null">
      <xs:import schemaLocation"no-namespace.xsd"/>
    </xs:schema>

But then the no-namspace schema is no longer inlined.

> [snippit]
> In this case, do yo think that it would be "really" invalid to inline
> such an XSD into the WSDL ? 

Well with the targetNamespace required assertion, yes :-)
But I get your drift - what is the benefit for this assertion?
Can we relax it based upon this new knowledge?

Paul

Received on Thursday, 8 June 2006 16:27:10 UTC