1
<!-- ...................................................................... -->
2
<!-- XHTML Ruby Module .................................................... -->
3
<!-- file: xhtml-ruby-1.mod
5
This is XHTML, a reformulation of HTML as a modular XML application.
6
Copyright 1999-2001 W3C (MIT, INRIA, Keio), All Rights Reserved.
7
Revision: $Id: xhtml-ruby-1.mod,v 1.1 2008/06/21 19:42:10 smccarro Exp $
9
This module is based on the W3C Ruby Annotation Specification:
11
http://www.w3.org/TR/ruby
13
This DTD module is identified by the PUBLIC and SYSTEM identifiers:
15
PUBLIC "-//W3C//ELEMENTS XHTML Ruby 1.0//EN"
16
SYSTEM "http://www.w3.org/TR/ruby/xhtml-ruby-1.mod"
18
...................................................................... -->
22
ruby, rbc, rtc, rb, rt, rp
24
This module declares the elements and their attributes used to
25
support ruby annotation markup.
28
<!-- declare qualified element type names:
30
<!ENTITY % ruby.qname "ruby" >
31
<!ENTITY % rbc.qname "rbc" >
32
<!ENTITY % rtc.qname "rtc" >
33
<!ENTITY % rb.qname "rb" >
34
<!ENTITY % rt.qname "rt" >
35
<!ENTITY % rp.qname "rp" >
37
<!-- rp fallback is included by default.
39
<!ENTITY % Ruby.fallback "INCLUDE" >
40
<!ENTITY % Ruby.fallback.mandatory "IGNORE" >
42
<!-- Complex ruby is included by default; it may be
43
overridden by other modules to ignore it.
45
<!ENTITY % Ruby.complex "INCLUDE" >
47
<!-- Fragments for the content model of the ruby element -->
49
<![%Ruby.fallback.mandatory;[
50
<!ENTITY % Ruby.content.simple
51
"( %rb.qname;, %rp.qname;, %rt.qname;, %rp.qname; )"
54
<!ENTITY % Ruby.content.simple
55
"( %rb.qname;, ( %rt.qname; | ( %rp.qname;, %rt.qname;, %rp.qname; ) ) )"
58
<!ENTITY % Ruby.content.simple "( %rb.qname;, %rt.qname; )" >
61
<!ENTITY % Ruby.content.complex
62
"| ( %rbc.qname;, %rtc.qname;, %rtc.qname;? )"
65
<!ENTITY % Ruby.content.complex "" >
67
<!-- Content models of the rb and the rt elements are intended to
68
allow other inline-level elements of its parent markup language,
69
but it should not include ruby descendent elements. The following
70
parameter entity %NoRuby.content; can be used to redefine
71
those content models with minimum effort. It's defined as
72
'( #PCDATA )' by default.
74
<!ENTITY % NoRuby.content "( #PCDATA )" >
76
<!-- one or more digits (NUMBER) -->
77
<!ENTITY % Number.datatype "CDATA" >
79
<!-- ruby element ...................................... -->
81
<!ENTITY % ruby.element "INCLUDE" >
83
<!ENTITY % ruby.content
84
"( %Ruby.content.simple; %Ruby.content.complex; )"
86
<!ELEMENT %ruby.qname; %ruby.content; >
87
<!-- end of ruby.element -->]]>
90
<!-- rbc (ruby base component) element ................. -->
92
<!ENTITY % rbc.element "INCLUDE" >
94
<!ENTITY % rbc.content
97
<!ELEMENT %rbc.qname; %rbc.content; >
98
<!-- end of rbc.element -->]]>
100
<!-- rtc (ruby text component) element ................. -->
102
<!ENTITY % rtc.element "INCLUDE" >
104
<!ENTITY % rtc.content
107
<!ELEMENT %rtc.qname; %rtc.content; >
108
<!-- end of rtc.element -->]]>
111
<!-- rb (ruby base) element ............................ -->
113
<!ENTITY % rb.element "INCLUDE" >
115
<!-- %rb.content; uses %NoRuby.content; as its content model,
116
which is '( #PCDATA )' by default. It may be overridden
117
by other modules to allow other inline-level elements
118
of its parent markup language, but it should not include
119
ruby descendent elements.
121
<!ENTITY % rb.content "%NoRuby.content;" >
122
<!ELEMENT %rb.qname; %rb.content; >
123
<!-- end of rb.element -->]]>
125
<!-- rt (ruby text) element ............................ -->
127
<!ENTITY % rt.element "INCLUDE" >
129
<!-- %rt.content; uses %NoRuby.content; as its content model,
130
which is '( #PCDATA )' by default. It may be overridden
131
by other modules to allow other inline-level elements
132
of its parent markup language, but it should not include
133
ruby descendent elements.
135
<!ENTITY % rt.content "%NoRuby.content;" >
137
<!ELEMENT %rt.qname; %rt.content; >
138
<!-- end of rt.element -->]]>
140
<!-- rbspan attribute is used for complex ruby only ...... -->
142
<!ENTITY % rt.attlist "INCLUDE" >
145
rbspan %Number.datatype; "1"
147
<!-- end of rt.attlist -->]]>
150
<!-- rp (ruby parenthesis) element ..................... -->
153
<!ENTITY % rp.element "INCLUDE" >
155
<!ENTITY % rp.content
158
<!ELEMENT %rp.qname; %rp.content; >
159
<!-- end of rp.element -->]]>
162
<!-- Ruby Common Attributes
164
The following optional ATTLIST declarations provide an easy way
165
to define common attributes for ruby elements. These declarations
166
are ignored by default.
168
Ruby elements are intended to have common attributes of its
169
parent markup language. For example, if a markup language defines
170
common attributes as a parameter entity %attrs;, you may add
171
those attributes by just declaring the following parameter entities
173
<!ENTITY % Ruby.common.attlists "INCLUDE" >
174
<!ENTITY % Ruby.common.attrib "%attrs;" >
176
before including the Ruby module.
179
<!ENTITY % Ruby.common.attlists "IGNORE" >
180
<![%Ruby.common.attlists;[
181
<!ENTITY % Ruby.common.attrib "" >
183
<!-- common attributes for ruby ........................ -->
185
<!ENTITY % Ruby.common.attlist "INCLUDE" >
186
<![%Ruby.common.attlist;[
187
<!ATTLIST %ruby.qname;
190
<!-- end of Ruby.common.attlist -->]]>
193
<!-- common attributes for rbc ......................... -->
195
<!ENTITY % Rbc.common.attlist "INCLUDE" >
196
<![%Rbc.common.attlist;[
197
<!ATTLIST %rbc.qname;
200
<!-- end of Rbc.common.attlist -->]]>
202
<!-- common attributes for rtc ......................... -->
204
<!ENTITY % Rtc.common.attlist "INCLUDE" >
205
<![%Rtc.common.attlist;[
206
<!ATTLIST %rtc.qname;
209
<!-- end of Rtc.common.attlist -->]]>
212
<!-- common attributes for rb .......................... -->
214
<!ENTITY % Rb.common.attlist "INCLUDE" >
215
<![%Rb.common.attlist;[
219
<!-- end of Rb.common.attlist -->]]>
221
<!-- common attributes for rt .......................... -->
223
<!ENTITY % Rt.common.attlist "INCLUDE" >
224
<![%Rt.common.attlist;[
228
<!-- end of Rt.common.attlist -->]]>
231
<!-- common attributes for rp .......................... -->
233
<!ENTITY % Rp.common.attlist "INCLUDE" >
234
<![%Rp.common.attlist;[
238
<!-- end of Rp.common.attlist -->]]>
242
<!-- end of xhtml-ruby-1.mod -->