- From: Jeff Rafter <jeffrafter@definedweb.com>
- Date: Mon, 18 Jun 2001 23:02:03 -0700
- To: <xmlschema-dev@w3.org>
I posted this to Xerces directly as well-- I just want to make sure I am
understanding QName resolution properly:
Is Xerces-J 1.4 enforcing the QName resolution constraint? [1] In the
sample personal.xsd (at end of mail) I believe there is an error that is not
reported. I don't think the ref's to the schema components should be
resolved as they should be in the no-namespace (because there is no
targetNamespace) and they are actually in th schema namespace because they
are qualified. I could be wrong about that. Nevertheless, I added a
targetNamespace to personal.xsd and referred to it in personal-schema.xml to
ensure that there is very clearly an error-- but Xerces didn't catch it (IBM
Schema Quality Checker reports it as an error):
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns='http://www.w3.org/2001/XMLSchema'
targetNamespace="http://foo">
<element name="personnel">
<complexType>
<sequence>
<element ref="person" minOccurs='1' maxOccurs='unbounded'/>
</sequence>
</complexType>
...
<element name="person">
...
</element>
Above the peronal element contains a person element which is declared by
reference. The ref to the person element should raise an error as it cannot
be resolved because the ref is unqualified.
[1] http://www.w3.org/TR/xmlschema-1/#src-resolve
Thanks,
Jeff Rafter
Defined Systems
http://www.defined.net
XML Development and Developer Web Hosting
personal.xsd
=========
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns='http://www.w3.org/2001/XMLSchema'>
<element name="personnel">
<complexType>
<sequence>
<element ref="person" minOccurs='1' maxOccurs='unbounded'/>
</sequence>
</complexType>
<unique name="unique1">
<selector xpath="person"/>
<field xpath="@name"/>
</unique>
<key name='empid'>
<selector xpath="person"/>
<field xpath="@id"/>
</key>
<!--
<keyref name="keyref1" refer='empid'>
<selector xpath="person"/>
<field xpath="link/@manager"/>
</keyref>
-->
</element>
<element name="person">
<complexType>
<sequence>
<element ref="name"/>
<element ref="email" minOccurs='0' maxOccurs='unbounded'/>
<element ref="url" minOccurs='0' maxOccurs='unbounded'/>
<element ref="link" minOccurs='0' maxOccurs='1'/>
</sequence>
<attribute name="id" type="ID" use='required'/>
<attribute name="note" type="string"/>
<attribute name="contr" default="false">
<simpleType>
<restriction base = "string">
<enumeration value="true"/>
<enumeration value="false"/>
</restriction>
</simpleType>
</attribute>
<attribute name="salary" type="integer"/>
</complexType>
</element>
<element name="name">
<complexType>
<all>
<element ref="family"/>
<element ref="given"/>
</all>
</complexType>
</element>
<element name="family" type='string'/>
<element name="given" type='string'/>
<element name="email" type='string'/>
<element name="url">
<complexType>
<attribute name="href" type="string" default="http://"/>
</complexType>
</element>
<element name="link">
<complexType>
<attribute name="manager" type="IDREF"/>
<attribute name="subordinates" type="IDREFS"/>
</complexType>
</element>
<notation name='gif' public='-//APP/Photoshop/4.0' system='photoshop.exe'/>
</schema>
Received on Tuesday, 19 June 2001 02:02:19 UTC