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 MoonReceived on Friday, 14 November 2008 21:01:45 GMT
This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 16 March 2009 11:13:42 GMT