- 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