- From: Henry S. Thompson <ht@cogsci.ed.ac.uk>
- Date: 31 Oct 2000 08:37:49 +0000
- To: chuck.han@autodesk.com
- Cc: xmlschema-dev@w3.org
chuck.han@autodesk.com writes: <snip/> > <?xml version="1.0" encoding="UTF-8"?> > <fooRoot > xmlns="http://foo" > xmlns:xsi="http://www.w3.org/2000/10/XMLSchema-instance" > xsi:schemaLocation="http://foo foo.xsd" > > > <foo> > "hello, world" > </foo> > </fooRoot> > > (XSV reports an error with the element "foo") whereas if I make "foo" a global element (and reference it) in the schema: > > ... > <schema xmlns:foo="http://foo" targetNamespace="http://foo"> > <element name="fooRoot" type="foo:fooRootType"/> > <element name="foo" type="string"/> > <complexType name="fooRootType"> > <sequence> > <element ref="foo:foo"/> > </sequence> > </complexType> > </schema> > > the data file does validate. Perhaps this is related to my lack of understanding on the prefix/qualified namespace concept that I raised with attribute refs... Yup. In your instance, both fooRoot and foo are qualified with the http://foo namespace. In your schema, foo is declared locally, and so (since you didn't use either 'form="qualified"' on that declaration, or 'elementFormDefault="qualified"' on the schema, the declaration only allows _un_qualified <foo>. So either change your schema, or change your instance: <f:fooRoot xmlns:f="http://foo" xmlns:xsi="http://www.w3.org/2000/10/XMLSchema-instance" xsi:schemaLocation="http://foo foo.xsd"> <foo> "hello, world" </foo> </f:fooRoot> The Primer has an excellent discussion of this issue, q.v. [1] ht [1] http://www.w3.org/TR/xmlschema-0/ -- Henry S. Thompson, HCRC Language Technology Group, University of Edinburgh W3C Fellow 1999--2001, part-time member of W3C Team 2 Buccleuch Place, Edinburgh EH8 9LW, SCOTLAND -- (44) 131 650-4440 Fax: (44) 131 650-4587, e-mail: ht@cogsci.ed.ac.uk URL: http://www.ltg.ed.ac.uk/~ht/
Received on Tuesday, 31 October 2000 03:37:52 UTC