Re: Schemas, namespaces, local, global, in no namespace

----- Original Message -----
From: "Liz Castro" <lcastro@cookwood.com>
To: <www-xml-schema-comments@w3.org>
Sent: Monday, August 14, 2000 2:28 PM
Subject: Re: Schemas, namespaces, local, global, in no namespace


<SNIP>
> OK, that does help. I guess what I don't get is if name and town (and bar
and item) are all not associated
> with the 'something' namespace that I'm using to schema validate my xml
docs, how does XSV (or any
> validator) know how to validate them?
>
> Imagine that I dutifly qualify the something namespace in the xml document
with "red" and I add a new
> element (zip) of type integer (and deliberately give it bad content.
> http://www.cookwood.com/xmltests/martin3.xml:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <red:baz xmlns:red="http://www.example.org/something"
> xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance"
xsi:schemaLocation="http://www.example.org/something
>
> F:\schemas\martin2.xsd">
>  <bar>this is a string</bar>
>  <item>
>   <name>pen knife</name>
>   <town>nyc</town>
>   <zip>not a number!</zip>
>  </item>
> </red:baz>
>
> I add a definition for the zip element in the new schema
(http://www.cookwood.com/xmltests/martin3.xsd):
>
> <?xml version="1.0" encoding="UTF-8"?>
> <schema xmlns="http://www.w3.org/1999/XMLSchema"
xmlns:tns="http://www.example.org/something"
> targetNamespace="http://www.example.org/something">
>  <complexType name="foo">
>   <element name="bar" type="string"/>
>   <element name="item">
>    <complexType>
>     <element name="name" type="string"/>
>     <element name="town" type="string"/>
>     <element name="zip" type="integer"/>
>    </complexType>
>   </element>
>  </complexType>
>  <element name="baz" type="tns:foo"/>
> </schema>
>
> XSV properly tells me that the zip element has bad content. But how does
it know that if zip isn't in the
> target namespace that is defined with the schema?

[MJG]
A validator knows how to validate zip ( and name and town ( and item and
bar )) because the schema says:

'When you find something of type foo in the http://www.example.org/something
namespace it will contain an unqualified bar element of type string followed
by an unqualified item element. Furthermore the item element will contain
unqualified name and town elements in that order, both of type string
followed by an unqualified zip element of type integer'

Hope this helps,

Martin Gudgin

Received on Monday, 14 August 2000 10:20:19 UTC