<?xml version="1.0"?>
<!DOCTYPE xsd:schema SYSTEM "http://www.w3.org/1999/XMLSchema.dtd"[
<!ENTITY % p "xsd:" >
<!ENTITY % s ":xsd" >
<!-- keep this schema XML 1.0 valid -->
<!ATTLIST xsd:schema
    xmlns:html CDATA #FIXED "http://www.w3.org/1999/xhtml"
>
]>
<xsd:schema
  xmlns:xsd="http://www.w3.org/1999/XMLSchema"
  targetNamespace="http://www.w3.org/1999/xhtml"
  xmlns:html="http://www.w3.org/1999/xhtml"
  elementFormDefault="unqualified"
  attributeFormDefault="unqualified">

  <xsd:annotation>
    <xsd:documentation>
        XHTML Basic Ruby Module

        Author: Masayasu Ishikawa (mimasa@w3.org)
        $Id: xhtml-basic-ruby-1.xsd,v 1.1 2000/07/25 07:35:30 mimasa Exp $

        DISCLAIMER: This schema is at the moment merely an author's
          personal experiment.  Author doesn't guarantee at all whether
          this schema properly reformulate XHTML Ruby Module in XML Schema.

        This module is based on the W3C Ruby Annotation Specification:

           http://www.w3.org/TR/ruby

        This DTD module is identified by the PUBLIC and SYSTEM identifiers:

          PUBLIC "-//W3C//ELEMENTS XHTML Ruby 1.0//EN"
          SYSTEM "xhtml-ruby-1.mod"

        Basic Ruby Elements

           ruby, rb, rt, rp

        This module declares the elements and their attributes used to
        support ruby annotation markup.
    </xsd:documentation>
  </xsd:annotation>

  <xsd:element name="ruby" equivClass="html:Ruby.class">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
        ruby element
      </xsd:documentation>
    </xsd:annotation>

    <xsd:complexType content="elementOnly"
                     base="html:Common" derivedBy="restriction">
      <xsd:sequence>
        <xsd:element ref="html:rb"/>
        <xsd:choice>
          <xsd:element ref="html:rt"/>
          <xsd:sequence>
            <xsd:element ref="html:rp"/>
            <xsd:element ref="html:rt"/>
            <xsd:element ref="html:rp"/>
          </xsd:sequence>
        </xsd:choice>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>

  <xsd:element name="rb" type="html:NoRuby.content">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
        rb (ruby base) element

        %rb.content; uses %NoRuby.content; as its content model,
        which is '( #PCDATA )' by default. It may be overridden
        by other modules to allow other inline-level elements
        of its host markup language, but it should not include
        ruby descendent elements.
      </xsd:documentation>
    </xsd:annotation>
  </xsd:element>

  <xsd:element name="rt" type="html:NoRuby.content">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
        rt (ruby text) element

        %rt.content; uses %NoRuby.content; as its content model,
        which is '( #PCDATA )' by default. It may be overridden
        by other modules to allow other inline-level elements
        of its host markup language, but it should not include
        ruby descendent elements.
      </xsd:documentation>
    </xsd:annotation>
  </xsd:element>

  <xsd:element name="rp">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
        rp (ruby parenthesis) element
      </xsd:documentation>
    </xsd:annotation>

    <xsd:complexType content="textOnly">
      <xsd:attributeGroup ref="html:Common.attrib"/>
    </xsd:complexType>
  </xsd:element>

</xsd:schema>
