<?xml version=“1.0” encoding=“UTF-8”?> <xs:schema

xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns="http://www.w3.org/1999/xhtml/datatypes/"
xmlns:xh11d="http://www.w3.org/1999/xhtml/datatypes/"
targetNamespace="http://www.w3.org/1999/xhtml/datatypes/"
elementFormDefault="qualified"

>

<xs:annotation>
    <xs:documentation>
      XHTML Datatypes
      This is the XML Schema datatypes module for XHTML

      Defines containers for the XHTML datatypes, many of
      these imported from other specifications and standards.

      $Id: xhtml-datatypes-1.xsd,v 1.11 2008/10/07 16:57:03 ahby Exp $
    </xs:documentation>
    <xs:documentation source="xhtml-copyright-1.xsd"/>
    <xs:documentation source="http://www.w3.org/TR/2001/REC-xhtml-modularization-20010410/abstraction.html#s_common_attrtypes"/>
</xs:annotation>

<!-- nn for pixels or nn% for percentage length -->
<xs:simpleType name="Length">
    <xs:union memberTypes="xs:nonNegativeInteger">
        <xs:simpleType>
            <xs:restriction base="xs:token">
                <xs:pattern value="\d+[%]|\d*\.\d+[%]"/>
            </xs:restriction>
        </xs:simpleType>
    </xs:union>
</xs:simpleType>
<!-- space-separated list of link types -->
<xs:simpleType name="LinkTypes">
    <xs:list itemType="xs:NMTOKEN"/>
</xs:simpleType>
<!-- single or comma-separated list of media descriptors -->
<xs:simpleType name="MediaDesc">
    <xs:restriction base="xs:string"/>
</xs:simpleType>
<!-- pixel, percentage, or relative -->
<xs:simpleType name="MultiLength">
    <xs:union memberTypes="xh11d:Length">
        <xs:simpleType>
            <xs:restriction base="xs:token">
                <xs:pattern value="\d*\*"/>
            </xs:restriction>
        </xs:simpleType>
    </xs:union>
</xs:simpleType>
<!-- one or more digits (NUMBER) -->
<xs:simpleType name="Number">
    <xs:restriction base="xs:nonNegativeInteger"/>
</xs:simpleType>
<!-- integer representing length in pixels -->
<xs:simpleType name="Pixels">
    <xs:restriction base="xs:nonNegativeInteger"/>
</xs:simpleType>
<!-- script expression -->
<xs:simpleType name="Script">
    <xs:restriction base="xs:string"/>
</xs:simpleType>
<!-- sixteen color names or RGB color expression-->
<xs:simpleType name="Color">
    <xs:union memberTypes="xs:NMTOKEN">
        <xs:simpleType>
            <xs:restriction base="xs:token">
                <xs:pattern value="#[0-9a-fA-F]{3}([0-9a-fA-F]{3})?"/>
            </xs:restriction>
        </xs:simpleType>
    </xs:union>
</xs:simpleType>
<!-- textual content -->
<xs:simpleType name="Text">
    <xs:restriction base="xs:string"/>
</xs:simpleType>
<!-- Imported Datatypes  -->
<!-- a single character, as per section 2.2 of [XML] -->
<xs:simpleType name="Character">
    <xs:restriction base="xs:string">
        <xs:length value="1" fixed="true"/>
    </xs:restriction>
</xs:simpleType>
<!-- a character encoding, as per [RFC2045] -->
<xs:simpleType name="Charset">
    <xs:restriction base="xs:string"/>
</xs:simpleType>
<!-- a space separated list of character encodings, as per [RFC2045] -->
<xs:simpleType name="Charsets">
    <xs:list itemType="Charset"/>
</xs:simpleType>
<!-- media type, as per [RFC2045] -->
<xs:simpleType name="ContentType">
    <xs:restriction base="xs:string"/>
</xs:simpleType>
<!-- comma-separated list of media types, as per [RFC2045] -->
<xs:simpleType name="ContentTypes">
    <xs:restriction base="xs:string"/>
</xs:simpleType>
<!-- date and time information. ISO date format -->
<xs:simpleType name="Datetime">
    <xs:restriction base="xs:dateTime"/>
</xs:simpleType>
<!-- formal public identifier, as per [ISO8879] -->
<xs:simpleType name="FPI">
    <xs:restriction base="xs:normalizedString"/>
</xs:simpleType>

<!-- a window name as used in the target attribute -->
<xs:simpleType name="FrameTarget">
  <xs:union>
    <xs:simpleType>
      <xs:restriction base="xs:NMTOKEN">
        <xs:enumeration value="_blank"/>
        <xs:enumeration value="_self"/>
        <xs:enumeration value="_parent"/>
        <xs:enumeration value="_top"/>
      </xs:restriction>
    </xs:simpleType>
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:pattern value="[a-zA-Z].*"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:union>
</xs:simpleType>

<!-- a language code, as per [RFC3066] -->
<xs:simpleType name="LanguageCode">
    <xs:restriction base="xs:language"/>
</xs:simpleType>
<!-- a comma separated list of language ranges -->
<xs:simpleType name="LanguageCodes">
    <xs:restriction base="xs:string"/>
</xs:simpleType>
<!-- a Uniform Resource Identifier, see [URI] -->
<xs:simpleType name="URI">
    <xs:restriction base="xs:anyURI"/>
</xs:simpleType>
<!-- a space-separated list of Uniform Resource Identifiers, see [URI] -->
<xs:simpleType name="URIs">
    <xs:list itemType="xs:anyURI"/>
</xs:simpleType>
<!-- comma-separated list of MultiLength -->
<xs:simpleType name="MultiLengths">
    <xs:restriction base="xs:string"/>
</xs:simpleType>
<!-- character Data -->
<xs:simpleType name="CDATA">
    <xs:restriction base="xs:string"/>
</xs:simpleType>
<!-- CURIE placeholder datatypes -->
<xs:simpleType name="CURIE">
    <xs:restriction base="xs:string">
        <xs:pattern value="(([\i-[:]][\c-[:]]*)?:)?.+" />
        <xs:minLength value="1"/>
    </xs:restriction>
</xs:simpleType> 
<xs:simpleType name="CURIEs">
    <xs:list itemType="xh11d:CURIE"/>
</xs:simpleType>
<xs:simpleType name="SafeCURIE">
<xs:restriction base="xs:string">
    <xs:pattern value="\[(([\i-[:]][\c-[:]]*)?:)?.+\]" />
    <xs:minLength value="3"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="SafeCURIEs">
    <xs:list itemType="xh11d:SafeCURIE"/>
</xs:simpleType>
<xs:simpleType name="URIorSafeCURIE">
    <xs:union memberTypes="xs:anyURI xh11d:SafeCURIE" />
</xs:simpleType>
<xs:simpleType name="URIorSafeCURIEs">
    <xs:list itemType="xh11d:URIorSafeCURIE"/>
</xs:simpleType>

</xs:schema>