RE: XML Schema WG Comments on XInclude

The Schema WG concluded discussion of your responses to our comments on the XML
Inclusions Last Call Working Draft. 

As a WG we are satisfied with your answer on point (6) and willing to accede to
your answer on point (4). On point (4), some individuals continue to express 
reservations and would be happier with a wording that clarified that the MIME
type is 'coerced' to text/xml. 

On point (5), we have reviewed the schema in the WG draft and suggest it be
revised to the following. In addition to some correcting some minor syntax
errors, the changes revolve around the handling of non-XInclude extensions.

The content model given for the 'include' element permits there to be more than
one fallback child (as well as none at all), which is indicated in the spec to
be an error only when fallback processing is attempted. If you prefer, a
stricter content model could be:

<xs:complexType mixed="true">
  <xs:sequence>
    <xs:element ref="fallback" minOccurs="0"/> 
    <xs:any namespace="#other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  </xs:sequence>
  ... etc.
</xs:complexType>

This would force user extensions to follow the fallback element, although this
strikes us as not a bad thing for either users or XInclude processors.

The full schema:

 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
            xmlns:xi=http://www.w3.org/2001/XInclude
            targetNamespace="http://www.w3.org/2001/XInclude">
   <xs:element name="include">
     <xs:complexType mixed="true">
       <xs:choice minOccurs="0" maxOccurs="unbounded">
         <xs:element ref="xi:fallback"/>
         <xs:any namespace="#other" processContents="lax"/>
       </xs:choice>
       <xs:attribute name="href" type="xs:anyURI" use="required"/>
       <xs:attribute name="parse" use="optional" default="xml">
         <xs:simpleType>
           <xs:restriction base="xs:string">
             <xs:enumeration value="xml"/>
             <xs:enumeration value="text"/>
           </xs:restriction>
         </xs:simpleType>
       </xs:attribute>
      <xs:attribute name="encoding" type="xs:string" use="optional"/>
      <xs:anyAttribute namespace="##other" processContents="lax" />
    </xs:complexType>
  </xs:element>

  <xs:element name="fallback">
   <xs:complexType mixed="true">
     <xs:choice minOccurs="0" maxOccurs="unbounded">
       <xs:element ref="xi:include"/>
       <xs:any namespace="##other" processContents="lax"/>
     </xs:choice>
     <xs:anyAttribute namespace="##other" processContents="lax" />
   </xs:complexType>
 </xs:element>
</xs:schema>

-- Mary Holstege
   for the XML Schema WG

Received on Friday, 18 January 2002 14:05:32 UTC