<?xml version="1.0" encoding="UTF-8"?>
<!--
    Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance
    with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless
    required by applicable law or agreed to in writing, software distributed under the License is distributed on an
    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
    specific language governing permissions and limitations under the License.
-->
<xsd:schema 
targetNamespace="http://www.w3.org/XML/1998/namespace" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
xml:lang="en">
 <xsd:attribute name="lang">
  <xsd:simpleType>
   <xsd:union memberTypes="xsd:language">
    <xsd:simpleType>    
     <xsd:restriction base="xsd:string">
      <xsd:enumeration value=""/>
     </xsd:restriction>
    </xsd:simpleType>
   </xsd:union>
  </xsd:simpleType>
 </xsd:attribute>

 <xsd:attribute name="space">
  <xsd:simpleType>
   <xsd:restriction base="xsd:NCName">
    <xsd:enumeration value="default"/>
    <xsd:enumeration value="preserve"/>
   </xsd:restriction>
  </xsd:simpleType>
 </xsd:attribute>

 <xsd:attribute name="base" type="xsd:anyURI">
  <xsd:annotation>
   <xsd:documentation>See http://www.w3.org/TR/xmlbase/ for
                     information about this attribute.</xsd:documentation>
  </xsd:annotation>
 </xsd:attribute>
 
 <xsd:attribute name="id" type="xsd:ID">
  <xsd:annotation>
   <xsd:documentation>See http://www.w3.org/TR/xml-id/ for
                     information about this attribute.</xsd:documentation>
  </xsd:annotation>
 </xsd:attribute>

 <xsd:attributeGroup name="specialAttrs">
  <xsd:attribute ref="xml:base"/>
  <xsd:attribute ref="xml:lang"/>
  <xsd:attribute ref="xml:space"/>
  <xsd:attribute ref="xml:id"/>
 </xsd:attributeGroup>

</xsd:schema>