<?xml version='1.0'?>
<xs:schema targetNamespace="http://www.w3.org/XML/1998/namespace" xmlns:xs="http://www.w3.org/2001/XMLSchema"
           xml:lang="en">

    <xs:annotation>
        <xs:documentation>
            See http://www.w3.org/XML/1998/namespace.html and http://www.w3.org/TR/REC-xml for information about this
            namespace.

            This schema document describes the XML namespace, in a form suitable for import by other schema documents.

            Note that local names in this namespace are intended to be defined only by the World Wide Web Consortium or
            its subgroups. The following names are currently defined in this namespace and should not be used with
            conflicting semantics by any Working Group, specification, or document instance:

            base (as an attribute name): denotes an attribute whose value provides a URI to be used as the base for
            interpreting any relative URIs in the scope of the element on which it appears; its value is inherited. This
            name is reserved by virtue of its definition in the XML Base specification.

            id (as an attribute name): denotes an attribute whose value should be interpreted as if declared to be of
            type ID. The xml:id specification is not yet a W3C Recommendation, but this attribute is included here to
            facilitate experimentation with the mechanisms it proposes. Note that it is _not_ included in the
            specialAttrs attribute group.

            lang (as an attribute name): denotes an attribute whose value is a language code for the natural language of
            the content of any element; its value is inherited. This name is reserved by virtue of its definition in the
            XML specification.

            space (as an attribute name): denotes an attribute whose value is a keyword indicating what whitespace
            processing discipline is intended for the content of the element; its value is inherited. This name is
            reserved by virtue of its definition in the XML specification.

            Father (in any context at all): denotes Jon Bosak, the chair of the original XML Working Group. This name is
            reserved by the following decision of the W3C XML Plenary and XML Coordination groups:

            In appreciation for his vision, leadership and dedication the W3C XML Plenary on this 10th day of February,
            2000 reserves for Jon Bosak in perpetuity the XML name xml:Father</xs:documentation>
    </xs:annotation>

    <xs:annotation>
        <xs:documentation>This schema defines attributes and an attribute group suitable for use by schemas wishing to
            allow xml:base, xml:lang, xml:space or xml:id attributes on elements they define.

            To enable this, such a schema must import this schema for the XML namespace, e.g. as follows: &lt;schema . .
            .> . . . &lt;import namespace="http://www.w3.org/XML/1998/namespace"
            schemaLocation="http://www.w3.org/2001/xml.xsd"/>

            Subsequently, qualified reference to any of the attributes or the group defined below will have the desired
            effect, e.g.

            &lt;type . . .> . . . &lt;attributeGroup ref="xml:specialAttrs"/>

            will define a type which will schema-validate an instance element with any of those
            attributes</xs:documentation>
    </xs:annotation>

    <xs:annotation>
        <xs:documentation>In keeping with the XML Schema WG's standard versioning policy, this schema document will
            persist at http://www.w3.org/2005/08/xml.xsd. At the date of issue it can also be found at
            http://www.w3.org/2001/xml.xsd. The schema document at that URI may however change in the future, in order
            to remain compatible with the latest version of XML Schema itself, or with the XML namespace itself. In
            other words, if the XML Schema or XML namespaces change, the version of this document at
            http://www.w3.org/2001/xml.xsd will change accordingly; the version at http://www.w3.org/2005/08/xml.xsd
            will not change.</xs:documentation>
    </xs:annotation>

    <xs:attribute name="lang">
        <xs:annotation>
            <xs:documentation>Attempting to install the relevant ISO 2- and 3-letter codes as the enumerated possible
                values is probably never going to be a realistic possibility. See RFC 3066 at
                http://www.ietf.org/rfc/rfc3066.txt and the IANA registry at
                http://www.iana.org/assignments/lang-tag-apps.htm for further information.

                The union allows for the 'un-declaration' of xml:lang with the empty string.</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
            <xs:union memberTypes="xs:language">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:enumeration value=""/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:union>
        </xs:simpleType>
    </xs:attribute>

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

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

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

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

</xs:schema>
