- 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 UTC