<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://www.w3.org/2005/11/its" xmlns:its="http://www.w3.org/2005/11/its">
  <!-- Schema generated 2006-02-17T11:19:30+09:00 -->
  <!-- Set predeclared macros -->
  <xs:simpleType name="data.itsBoolean">
    <xs:restriction base="xs:token">
      <xs:enumeration value="yes"/>
      <xs:enumeration value="no"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="data.dirValues">
    <xs:restriction base="xs:token">
      <xs:enumeration value="ltr"/>
      <xs:enumeration value="rtl"/>
      <xs:enumeration value="lro"/>
      <xs:enumeration value="rlo"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="data.locInfoType">
    <xs:restriction base="xs:token">
      <xs:enumeration value="alert"/>
      <xs:enumeration value="description"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="data.itsBooleanTrue">
    <xs:restriction base="xs:token">
      <xs:enumeration value="yes"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:attributeGroup name="att.selector.attributes">
    <xs:attributeGroup ref="its:att.selector.attribute.translateSelector"/>
    <xs:attributeGroup ref="its:att.selector.attribute.locInfoSelector"/>
    <xs:attributeGroup ref="its:att.selector.attribute.termSelector"/>
    <xs:attributeGroup ref="its:att.selector.attribute.dirSelector"/>
    <xs:attributeGroup ref="its:att.selector.attribute.rubySelector"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="att.selector.attribute.translateSelector">
    <xs:attribute name="translateSelector" form="qualified"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="att.selector.attribute.locInfoSelector">
    <xs:attribute name="locInfoSelector" form="qualified"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="att.selector.attribute.termSelector">
    <xs:attribute name="termSelector" form="qualified"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="att.selector.attribute.dirSelector">
    <xs:attribute name="dirSelector" form="qualified"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="att.selector.attribute.rubySelector">
    <xs:attribute name="rubySelector" form="qualified"/>
  </xs:attributeGroup>
  <xs:element name="documentRules" type="its:documentRules.content">
    <xs:annotation>
      <xs:documentation>This element contains rules for ITS information, to be used in documents.</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="documentRules.content">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" ref="its:ns"/>
      <xs:element maxOccurs="unbounded" ref="its:documentRule"/>
    </xs:sequence>
  </xs:complexType>
  <xs:element name="ns">
    <xs:annotation>
      <xs:documentation>An element to describe namespace URIs and prefixes within XPath expressions in
                selector attributes.</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:attributeGroup ref="its:ns.attributes"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="ns.attributes">
    <xs:attributeGroup ref="its:att.nsident.attributes"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="att.nsident.attributes">
    <xs:attributeGroup ref="its:att.nsident.attribute.prefix"/>
    <xs:attributeGroup ref="its:att.nsident.attribute.uri"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="att.nsident.attribute.prefix">
    <xs:attribute name="prefix" use="required" form="qualified" type="xs:NCName"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="att.nsident.attribute.uri">
    <xs:attribute name="uri" use="required" form="qualified" type="xs:anyURI"/>
  </xs:attributeGroup>
  <xs:element name="documentRule">
    <xs:annotation>
      <xs:documentation>A rule to express ITS information and select parts of a document respectively.
                documentRule is to be used in a in rule context only.</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:attributeGroup ref="its:documentRule.attributes"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="documentRule.attributes">
    <xs:attributeGroup ref="its:att.selector.attributes"/>
    <xs:attributeGroup ref="its:att.datacats.attributes"/>
  </xs:attributeGroup>
  <xs:element name="schemaRule">
    <xs:annotation>
      <xs:documentation>A rule to express ITS information about the element declaration to which the
                schemaRule element is attached as schema annotation.</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:attributeGroup ref="its:schemaRule.attributes"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="schemaRule.attributes">
    <xs:attributeGroup ref="its:att.datacats.attributes"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="att.datacats.attributes">
    <xs:attributeGroup ref="its:att.datacats.attribute.translate"/>
    <xs:attributeGroup ref="its:att.datacats.attribute.locInfo"/>
    <xs:attributeGroup ref="its:att.datacats.attribute.locInfoType"/>
    <xs:attributeGroup ref="its:att.datacats.attribute.term"/>
    <xs:attributeGroup ref="its:att.datacats.attribute.termRef"/>
    <xs:attributeGroup ref="its:att.datacats.attribute.dir"/>
    <xs:attributeGroup ref="its:att.datacats.attribute.rubyText"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="att.datacats.attribute.translate">
    <xs:attribute name="translate" form="qualified" type="its:data.itsBoolean"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="att.datacats.attribute.locInfo">
    <xs:attribute name="locInfo" form="qualified"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="att.datacats.attribute.locInfoType">
    <xs:attribute name="locInfoType" form="qualified" type="its:data.locInfoType"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="att.datacats.attribute.term">
    <xs:attribute name="term" form="qualified" type="its:data.itsBooleanTrue"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="att.datacats.attribute.termRef">
    <xs:attribute name="termRef" form="qualified" type="xs:anyURI"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="att.datacats.attribute.dir">
    <xs:attribute name="dir" form="qualified" type="its:data.dirValues"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="att.datacats.attribute.rubyText">
    <xs:attribute name="rubyText" form="qualified"/>
  </xs:attributeGroup>
  <xs:element name="rubyBase" type="xs:string"/>
  <xs:element name="ruby" type="its:ruby.content"/>
  <xs:complexType name="ruby.content">
    <xs:sequence>
      <xs:element ref="its:rubyBase"/>
      <xs:element ref="its:rubyText"/>
    </xs:sequence>
  </xs:complexType>
  <xs:element name="rubyText" type="xs:string"/>
  <xs:element name="span">
    <xs:annotation>
      <xs:documentation>An element used as a general container for ITS data category attributes.</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:attributeGroup ref="its:span.attributes"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="span.attributes">
    <xs:attributeGroup ref="its:att.datacats.attributes"/>
  </xs:attributeGroup>
</xs:schema>
