← Prev in month ← Prev in thread

XML Schema and instance documents

From
Jack Matheson <>
To
Date
2006-02-03T20:31:51Z
ID
<>
Thread
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
← Prev in month ← Prev in thread