Referencing attributes from the XMLSchema-instance namespace

Hi,

Microsof's Print Schema[1] has a fragment that looks like so:


<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

  <xs:complexType name="Type" mixed="true">
    <xs:attribute ref="xsi:type" use="required"/>
  </xs:complexType>

<xs:schema>


There is no import declaration for the xsi namespace. I am
wondering whether this is legal or not. I can see three
possible answers actually: (1) this schema is valid, (2) this
schema is invalid but can be made valid by importing a schema
that declares xsi:type:


<schema targetNamespace="http://www.w3.org/2001/XMLSchema-instance"
        xmlns="http://www.w3.org/2001/XMLSchema"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

<attribute name="type" type="xs:QName"/>
<attribute name="nil" type="xs:boolean"/>

</schema>


And, finally, (3) referencing attributes from the xsi namespace
in the definition is illegal.


[1] http://www.microsoft.com/whdc/xps/printschema.mspx


thanks,
-boris


--
Boris Kolpackov
Code Synthesis Tools CC
http://www.codesynthesis.com
Open-Source, Cross-Platform C++ XML Data Binding

Received on Thursday, 1 March 2007 16:42:19 UTC