I do not understand how an xml validator ("schema aware processor" as the w3c refers to it) knows where to find the schema instance in a typical external reference to an xsd from within an xml document.
Here's a typical declaration:
<root xmlns="www.example.org"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="www.example.org" "http://example.org/schemas/schema1.xsd">
<foo>some data</foo>
</root>
we declare the default namespace for the root element and all its children to be "www.example.org"
we bind the name/prefix "xsi" to the namespace "http://www.w3.org/2001/XMLSchema-instance".
If I am understanding correctly (which is evidently not the case!), it is the information within the actual resource that the xsi namespace refers to that allows the validator to know that schemaLocation (in the following line) is a legitimate attribute of the xsi ("http://www.w3.org/2001/XMLSchema-instance") namespace itself.
But a namespace is not a location (URI), so how does the parser know where to go to determine whether schemaLocation is in fact an attribute defined in the "http://www.w3.org/2001/XMLSchema-instance" namespace?
namespace==schemaLocation
:)), so case of xsi, you are not right! (see: stackoverflow.com/q/17094247/592355) ..you can also verify by downloading (the document) from this url... – xerx593xsi:schemaLocation="www.example.org http://example.org/schemas/schema1.xsd"
..notxsi:schemaLocation="www.example.org" "http://example.org/schemas/schema1.xsd"
– xerx593xsi:schemaLocation="www.example.org http://example.org/schemas/schema1.xsd http://www.w3.org/2001/XMLSchema-instance http://www.w3.org/2001/XMLSchema-instance"
;) – xerx593