W3C home > Mailing lists > Public > xmlschema-dev@w3.org > November 2008

RE: Recursive XSD with targetNamespace

From: Michael Kay <mike@saxonica.com>
Date: Fri, 14 Nov 2008 21:01:07 -0000
To: "'Todd Moon'" <tmrfcm@gmail.com>, <xmlschema-dev@w3.org>
Message-ID: <EAB80736D360425D997C3C4C1E691BB2@Sealion>
Whenever you refer to a component in a namespace, you need to use a
qualified name. So it should be
 
type="foo:Item"
 
having declared
 
xmlns:foo=" <http://foo/> http://foo"
 
Michael Kay
http://www.saxonica.com/


  _____  

From: xmlschema-dev-request@w3.org [mailto:xmlschema-dev-request@w3.org] On
Behalf Of Todd Moon
Sent: 14 November 2008 20:24
To: xmlschema-dev@w3.org
Subject: Recursive XSD with targetNamespace


Hello everyone.

I have a recursively defined type called "Item" and the schema works fine at
first. However, if I specify a targetNamespace in the XSD, Visual Studio
gives me an error claiming that "Item" is not defined (when it's used within
the definition of Item itself.)

Here's a greatly simplified schema that still exposes the problem:

<?xml version="1.0" encoding="utf-8" ?>
<xsd:schema 
   targetNamespace="http://foo" 
   xmlns:xsd="http://www.w3.org/2001/XMLSchema">
   
   <xsd:complexType name="Item">
       <xsd:sequence>
           <xsd:element name="SerialNumber" />
           <xsd:sequence>
               <xsd:element name="Item" type="Item" />
           </xsd:sequence>
       </xsd:sequence>
   </xsd:complexType>
   
</xsd:schema>

If I remove the targetNamespace attribute this works fine. Why is this
causing a problem?

Thanks!

- Todd Moon
Received on Friday, 14 November 2008 21:01:45 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 11 January 2011 00:15:09 GMT