[
Lists Home |
Date Index |
Thread Index
]
Excellent, that's what I was hoping for =)
Thanks again,
-Jack
> The spec gives implementations great latitude on this. I think that
> conforming processors could choose whichever definition they hit
> first, or
> they could throw an error because there is more than one definition of
> {ns2}child, or they could recognize that the two definitions are
> actually
> equivalent and avoid throwing the error. It's best to avoid the
> situation
> arising.
>
> Saxon will tend to do the first of these: if you've already got a
> schema (a
> set of schema components) for namespace {ns2} in your cache, then
> an import
> of that namespace is a no-op, even if the schema location is
> different. This
> is justified on the basis that the schema location is only a
> "hint". As a
> general rule, it's troublesome to have several schemas in existence
> for the
> same namespace - even though there are very good reasons for doing
> it, such
> as validating the same document at different stages in its lifecycle.
>
> Michael Kay
> http://www.saxonica.com/
>
>> -----Original Message-----
>> From: Jack Matheson [mailto:jack@snazzypost.com]
>> Sent: 03 February 2006 20:32
>> To: xml-dev@lists.xml.org
>> Subject: [xml-dev] XML Schema and instance documents
>>
>> Can anyone tell me how a schema-aware validating parser
>> decides which
>> schema to use in this case:
>>
>> ns1.xsd:
>> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
>> targetNamespace="ns1">
>> <xs:import schemaLocation="import.xsd" namespace="ns2"/>
>>
>> <xs:element name="root"/>
>> </xs:schema>
>>
>> import.xsd:
>> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
>> targetNamespace="ns2">
>> <xs:element name="child"/>
>> </xs:schema>
>>
>> ns2.xsd:
>> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
>> targetNamespace="ns2">
>> <xs:element name="child"/>
>> </xs:schema>
>>
>> test.xml:
>> <a:root xmlns:a="ns1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-
>> instance"
>> xsi:schemaLocation="ns ns1.xsd ns2 ns2.xsd">
>> <child xmlns="ns2"/>
>> </a:root>
>>
>> If I remove the "ns2 ns2.xsd" pairing from the instance document's
>> xsi:schemaLocation attribute, the rule defined by
>> import.xsd will be used. What happens when this attribute is
>> left in?
>> Is it up to the processor to decide?
>>
>> Any help is appreciated!
>>
>> -Jack
>>
>>
>> -----------------------------------------------------------------
>> The xml-dev list is sponsored by XML.org <http://www.xml.org>, an
>> initiative of OASIS <http://www.oasis-open.org>
>>
>> The list archives are at http://lists.xml.org/archives/xml-dev/
>>
>> To subscribe or unsubscribe from this list use the subscription
>> manager: <http://www.oasis-open.org/mlmanage/index.php>
>>
>>
>
>
>
> -----------------------------------------------------------------
> The xml-dev list is sponsored by XML.org <http://www.xml.org>, an
> initiative of OASIS <http://www.oasis-open.org>
>
> The list archives are at http://lists.xml.org/archives/xml-dev/
>
> To subscribe or unsubscribe from this list use the subscription
> manager: <http://www.oasis-open.org/mlmanage/index.php>
>
>
|