blob: a44bb3fa94615a29f5a44a382e4219146527415e [file] [log] [blame]
<!-- ...................................................................... -->
<!-- XHTML Ruby Module .................................................... -->
<!-- file: xhtml-ruby-1.mod
This is XHTML, a reformulation of HTML as a modular XML application.
Copyright 1999-2001 W3C (MIT, INRIA, Keio), All Rights Reserved.
Revision: $Id: xhtml-ruby-1.mod,v 4.0 2001/04/03 23:14:33 altheim Exp $
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 "http://www.w3.org/TR/ruby/xhtml-ruby-1.mod"
...................................................................... -->
<!-- Ruby Elements
ruby, rbc, rtc, rb, rt, rp
This module declares the elements and their attributes used to
support ruby annotation markup.
-->
<!-- declare qualified element type names:
-->
<!ENTITY % ruby.qname "ruby" >
<!ENTITY % rbc.qname "rbc" >
<!ENTITY % rtc.qname "rtc" >
<!ENTITY % rb.qname "rb" >
<!ENTITY % rt.qname "rt" >
<!ENTITY % rp.qname "rp" >
<!-- rp fallback is included by default.
-->
<!ENTITY % Ruby.fallback "INCLUDE" >
<!ENTITY % Ruby.fallback.mandatory "IGNORE" >
<!-- Complex ruby is included by default; it may be
overridden by other modules to ignore it.
-->
<!ENTITY % Ruby.complex "INCLUDE" >
<!-- Fragments for the content model of the ruby element -->
<![%Ruby.fallback;[
<![%Ruby.fallback.mandatory;[
<!ENTITY % Ruby.content.simple
"( %rb.qname;, %rp.qname;, %rt.qname;, %rp.qname; )"
>
]]>
<!ENTITY % Ruby.content.simple
"( %rb.qname;, ( %rt.qname; | ( %rp.qname;, %rt.qname;, %rp.qname; ) ) )"
>
]]>
<!ENTITY % Ruby.content.simple "( %rb.qname;, %rt.qname; )" >
<![%Ruby.complex;[
<!ENTITY % Ruby.content.complex
"| ( %rbc.qname;, %rtc.qname;, %rtc.qname;? )"
>
]]>
<!ENTITY % Ruby.content.complex "" >
<!-- Content models of the rb and the rt elements are intended to
allow other inline-level elements of its parent markup language,
but it should not include ruby descendent elements. The following
parameter entity %NoRuby.content; can be used to redefine
those content models with minimum effort. It's defined as
'( #PCDATA )' by default.
-->
<!ENTITY % NoRuby.content "( #PCDATA )" >
<!-- one or more digits (NUMBER) -->
<!ENTITY % Number.datatype "CDATA" >
<!-- ruby element ...................................... -->
<!ENTITY % ruby.element "INCLUDE" >
<![%ruby.element;[
<!ENTITY % ruby.content
"( %Ruby.content.simple; %Ruby.content.complex; )"
>
<!ELEMENT %ruby.qname; %ruby.content; >
<!-- end of ruby.element -->]]>
<![%Ruby.complex;[
<!-- rbc (ruby base component) element ................. -->
<!ENTITY % rbc.element "INCLUDE" >
<![%rbc.element;[
<!ENTITY % rbc.content
"(%rb.qname;)+"
>
<!ELEMENT %rbc.qname; %rbc.content; >
<!-- end of rbc.element -->]]>
<!-- rtc (ruby text component) element ................. -->
<!ENTITY % rtc.element "INCLUDE" >
<![%rtc.element;[
<!ENTITY % rtc.content
"(%rt.qname;)+"
>
<!ELEMENT %rtc.qname; %rtc.content; >
<!-- end of rtc.element -->]]>
]]>
<!-- rb (ruby base) element ............................ -->
<!ENTITY % rb.element "INCLUDE" >
<![%rb.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 parent markup language, but it should not include
ruby descendent elements.
-->
<!ENTITY % rb.content "%NoRuby.content;" >
<!ELEMENT %rb.qname; %rb.content; >
<!-- end of rb.element -->]]>
<!-- rt (ruby text) element ............................ -->
<!ENTITY % rt.element "INCLUDE" >
<![%rt.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 parent markup language, but it should not include
ruby descendent elements.
-->
<!ENTITY % rt.content "%NoRuby.content;" >
<!ELEMENT %rt.qname; %rt.content; >
<!-- end of rt.element -->]]>
<!-- rbspan attribute is used for complex ruby only ...... -->
<![%Ruby.complex;[
<!ENTITY % rt.attlist "INCLUDE" >
<![%rt.attlist;[
<!ATTLIST %rt.qname;
rbspan %Number.datatype; "1"
>
<!-- end of rt.attlist -->]]>
]]>
<!-- rp (ruby parenthesis) element ..................... -->
<![%Ruby.fallback;[
<!ENTITY % rp.element "INCLUDE" >
<![%rp.element;[
<!ENTITY % rp.content
"( #PCDATA )"
>
<!ELEMENT %rp.qname; %rp.content; >
<!-- end of rp.element -->]]>
]]>
<!-- Ruby Common Attributes
The following optional ATTLIST declarations provide an easy way
to define common attributes for ruby elements. These declarations
are ignored by default.
Ruby elements are intended to have common attributes of its
parent markup language. For example, if a markup language defines
common attributes as a parameter entity %attrs;, you may add
those attributes by just declaring the following parameter entities
<!ENTITY % Ruby.common.attlists "INCLUDE" >
<!ENTITY % Ruby.common.attrib "%attrs;" >
before including the Ruby module.
-->
<!ENTITY % Ruby.common.attlists "IGNORE" >
<![%Ruby.common.attlists;[
<!ENTITY % Ruby.common.attrib "" >
<!-- common attributes for ruby ........................ -->
<!ENTITY % Ruby.common.attlist "INCLUDE" >
<![%Ruby.common.attlist;[
<!ATTLIST %ruby.qname;
%Ruby.common.attrib;
>
<!-- end of Ruby.common.attlist -->]]>
<![%Ruby.complex;[
<!-- common attributes for rbc ......................... -->
<!ENTITY % Rbc.common.attlist "INCLUDE" >
<![%Rbc.common.attlist;[
<!ATTLIST %rbc.qname;
%Ruby.common.attrib;
>
<!-- end of Rbc.common.attlist -->]]>
<!-- common attributes for rtc ......................... -->
<!ENTITY % Rtc.common.attlist "INCLUDE" >
<![%Rtc.common.attlist;[
<!ATTLIST %rtc.qname;
%Ruby.common.attrib;
>
<!-- end of Rtc.common.attlist -->]]>
]]>
<!-- common attributes for rb .......................... -->
<!ENTITY % Rb.common.attlist "INCLUDE" >
<![%Rb.common.attlist;[
<!ATTLIST %rb.qname;
%Ruby.common.attrib;
>
<!-- end of Rb.common.attlist -->]]>
<!-- common attributes for rt .......................... -->
<!ENTITY % Rt.common.attlist "INCLUDE" >
<![%Rt.common.attlist;[
<!ATTLIST %rt.qname;
%Ruby.common.attrib;
>
<!-- end of Rt.common.attlist -->]]>
<![%Ruby.fallback;[
<!-- common attributes for rp .......................... -->
<!ENTITY % Rp.common.attlist "INCLUDE" >
<![%Rp.common.attlist;[
<!ATTLIST %rp.qname;
%Ruby.common.attrib;
>
<!-- end of Rp.common.attlist -->]]>
]]>
]]>
<!-- end of xhtml-ruby-1.mod -->