1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
|
<!--
This is an XML DTD for writing Frequently Asked Questions FAQs.
QAML Version 2.4 last modified Oct 6 1999
by Justin Higgins (jhiggins@dn.net)
www.faq.org
and Rick Jelliffe (ricko@gate.sinica.edu.tw)
www.ascc.net/xml/
It is based on the QAML 1.0 DTD, with minimal alterations
for XML, I18N (internationalization), XLL hypertext linking,
style, accessability and tracking. Multi-part answers are
supported a little better. Corporate and "look-and-feel"
needs are supported better: rights, PICS, logos, advertising
sections, corporate addresses.
* XML: Documents written using the QAML 1.0 DTD
are structurally compatible with this DTD; however, such
documents need to be converted into "well-formed" XML:
make sure they are fully tagged with start-end tags for
every element. If you are not using 7-bit ACSCII or
UTF-8, specify the appropriate XML encoding header. If you are
not using English, specify the appropriate xml:lang language
attributes. Use lower-case element type names.
* I18N: All elements with data content, and the top element,
may have a language attribute. People may have alternative names
in different scripts: e.g., a Chinese name and an English
name.
* XLink: All elements may have an ID attribute. A fixed xml:link
attribute has been added to link and archive, for housekeeping.
(Link is used like HTML's <a> and <img> and <link> element types.
Archive points to the official location of the current and
precious version of the FAQ, and to translations.)
Note that the xml:show attribute is available in this DTD, but
may not be available at the user's system. The following
link roles are defined by this DTD, but you can add your own:
"Text", "Image", "Sound", "Software", "Data", "Interactive"
are the base Dublin Core categories for the resource types.
A logo is a special XLink: it just points to some icon or logo
or picture. (The logo does not represent a clickable hypertext
link: it is just for graphical purposes.) The link elements at
the start of the head element are intended for similar uses as
the HTML link element type: a role "bgimage" is defined by this DTD.
* Style: An element "span" is introduced with the same use as in HTML.
All elements have a class attribute, which may help better
processing in CSS. The following classes are defined by this DTD,
but you can add your own:
For section elements: "intro" (a preamble), "rights" (copyright),
"advert" (for advertising), "info" (for corporate info about the
siteowner, subject, product, or sponsor) and "links" (related sites);
For p elements: "li" and "pre", with the HTML meanings: there
is no provision for nested lists or tables;
For span elements: "tt", "em", "i", "b" & "strong", with the HTML meanings;
Also: "definition" and "keyword", for indexing
For p and span elements: "sent", with the JSML meaning
(a sentence);
For the span element type: "literal" with the JSML meaning
(to be spelled out as letters)-this helps WAI too;
For the span element type: "abbr" and "acronym" are also available,
(an acronym is pronouncable: NASA), roughly from HTML
For the div element type: "ul" and "ol" with the HTML meanings.
The div element type is new with QAML 2.1; we found we could
not create good HTML lists without it. However, we have not
allowed nested lists with it, at this stage.
Note: if you use class="pre", also specify xml:space="preserve"
to inhibit the stripping of white space by the XML processor.
If you are attempting "ASCII art", use
<p class="pre" xml:space="preserve" alt="explanatory text">...
where the alt attribute holds some explanatory text.
Please note that you should not rely on format effects
(font, boldness) to convey meaning in these FAQs. The output
system of the user may not support them.
If you do not put your own numbers in titles, you can signify this
by specifying the autonum attribute on a body or section to "yes".
* Accessability: QAML has been checked against the W3C WAI guidelines;
the link, p & span elements can have an "title" attribute.
The span element can have a class="literal", for contractions to be
spoken out in individual letters, "abbr" for an abbreviations,
and "acronym" for acronyms. The latter two may be marked up with
title attribute for better pronunciation. Multiple logos are possible,
to allow sound as well as visual logos.
Refer /www.w3.org/TR/WD-WAI-PAGEAUTH/
* Dublin Core: The mappings to Dublin Core metadata are noted.
The Dublin Core type for FAQs is "faq". (The althdr element
can be used similar to the HTML meta element, to add arbitrary
kinds of metadata.)
* Tracking: A data attribute has been added to various elements.
Use an ISO 8601 format date: yyyy-mm-dd or yyyymmdd.
The archive element can link to previous versions and translations.
The maintainer can advise the preferred subject line to be used
in emails about the FAQ, using the element type "subject".
A version element has been added to element type head
* PICS and rights: PICS labels can be added to the header using the
label element type. Refer http://www.w3.org/PICS/
A text version concerning rights can be given in a section
with a class="rights" attribute.
* PDA and Wireless Systems: to allow better interaction with PDA and
wireless systems, which have very small screen real-estate, the
<a> answer element type can take a "gist" attribute: this can have
a 1 to 5 word summary of the answer. The PDA would use that for example:
Q: What is a dog?
A: Barking animal >more>
Q: Are dogs cats?
A: No! >more>
where the ">more>" links to the full answer.
QAML Version 1.0 last modified 16 July 1997
by Justin Higgins (jhiggins@dn.net)
Public identifier for SGML version of QAML Version 1,0:
+//ISBN 82-7640-023//DTD Frequently Asked Questions//EN//19940603
Public identifier for this XML version:
+//IDN faq.org//DTD Frequently Asked Questions 2.3//EN//XML
Rights: This DTD is copyright 1994-1999 Justin Higgins and Rick
Jelliffe. You can use it freely for any purpose under the terms
of the MPL or GPL. Documents created using this DTD are copyright
their (human or corporate) authors and maintainers, subject to
local law, unless explicitly noted in the FAQ text or markup.
Thanks: Eric Luhrs, C.T.Chang, Andy Leighton, David Pawson
Notice: ID attributes will soon be made #REQUIRED on section and on
qna. Please always use them.
-->
<!-- New in version 2.4
email not mandatory for authors and contributors
block of links allowed at start of head
-->
<!-- New in version 2.3
Version element added
Allow someone to have more than one email address (deprecated)
Namespace declaration added
-->
<!ELEMENT faq (head, body) >
<!ELEMENT a (p | div)+ >
<!ELEMENT address (#PCDATA) >
<!ELEMENT althdr (type, content) ><!-- DC:DESCRIPTION -->
<!ELEMENT archive (#PCDATA) ><!-- DC:IDENTIFIER? -->
<!ELEMENT author (logo*, name+, email?) ><!-- DC:CREATOR -->
<!ELEMENT body (section+ | qna+) >
<!ELEMENT content (#PCDATA) >
<!ELEMENT contributor (logo*, name, email?) ><!-- DC:CONTRIBUTOR -->
<!ELEMENT div (p)+ >
<!ELEMENT email (#PCDATA) >
<!ELEMENT head (title, version?, maintain+, hdr*, althdr*, archive*,label*, link*)>
<!ELEMENT hdr (type, content) ><!-- DC:DESCRIPTION -->
<!ELEMENT label (#PCDATA) >
<!ELEMENT link (#PCDATA) >
<!ELEMENT logo (#PCDATA) >
<!ELEMENT maintain (logo*, name+, email+, subject?, address?) >
<!-- DC:AUTHOR or DC:PUBLISHER -->
<!ELEMENT name (#PCDATA) >
<!ELEMENT p (#PCDATA | link | span)* >
<!ELEMENT q (#PCDATA | link | span)* >
<!ELEMENT qna (logo*, q, (logo?,topic?,author?,contributor*,a)+)>
<!ELEMENT section (logo*, title, (qna+ | q+ | ( p | div | section)+)) >
<!ELEMENT span (#PCDATA) >
<!ELEMENT subject (#PCDATA) >
<!ELEMENT title (#PCDATA) ><!-- DC:TITLE -->
<!ELEMENT topic (#PCDATA) ><!-- DC:TITLE -->
<!ELEMENT type (#PCDATA) ><!-- DC:SUBJECT -->
<!ELEMENT version (#PCDATA) >
<!-- Type categories include:
Animals
Art
Audio
Business & Finance
Computers
Programming
Software
Countries
Food
Games
Health
History
Hobbies
Internet
Learning
Misc.
Movies
Music
People
Politics & Law
Books & Magazines
Religion
Science
Sports
Technology
Television & Radio -->
<!ATTLIST a id ID #IMPLIED
class CDATA #IMPLIED
gist CDATA #IMPLIED
xml:lang CDATA #IMPLIED >
<!ATTLIST archive href CDATA #REQUIRED
type CDATA #IMPLIED
class CDATA #IMPLIED
xml:link CDATA #FIXED "simple" >
<!ATTLIST author id ID #IMPLIED
class CDATA #IMPLIED >
<!ATTLIST althdr id ID #IMPLIED
class CDATA #IMPLIED
schema CDATA #IMPLIED >
<!ATTLIST div id ID #IMPLIED
class CDATA #IMPLIED
xml:lang NMTOKEN #IMPLIED >
<!ATTLIST body id ID #IMPLIED
class CDATA #IMPLIED
xml:lang NMTOKEN #IMPLIED
autonum ( yes | no ) "no" >
<!ATTLIST content id ID #IMPLIED
class CDATA #IMPLIED >
<!ATTLIST contributor id ID #IMPLIED
class CDATA #IMPLIED >
<!ATTLIST email id ID #IMPLIED
class CDATA #IMPLIED >
<!ATTLIST faq id ID #IMPLIED
xmlns:html CDATA #FIXED "http://www.w3.org/TR/REC-html40"
class CDATA #IMPLIED
xml:lang NMTOKEN #IMPLIED
date CDATA #IMPLIED ><!-- DC:DATE -->
<!ATTLIST head id ID #IMPLIED
class CDATA #IMPLIED >
<!ATTLIST hdr id ID #IMPLIED
class CDATA #IMPLIED
schema CDATA #IMPLIED >
<!ATTLIST label PICSversion CDATA #IMPLIED >
<!ATTLIST link id ID #IMPLIED
class CDATA #IMPLIED
xml:link CDATA #FIXED "simple"
href CDATA #REQUIRED
alt CDATA #IMPLIED
role CDATA #IMPLIED
title CDATA #IMPLIED
show (embed|replace|new) "new"
actuate (auto|user) "user"
behavior CDATA #IMPLIED >
<!ATTLIST logo
id ID #IMPLIED
class CDATA #IMPLIED
alt CDATA #IMPLIED
href CDATA #REQUIRED
xml:lang NMTOKEN #IMPLIED
xml:link CDATA "simple"
show (embed) "embed"
actuate (auto|user) "auto" >
<!ATTLIST maintain id ID #IMPLIED
class CDATA #IMPLIED >
<!ATTLIST name id ID #IMPLIED
class CDATA #IMPLIED >
<!ATTLIST p id ID #IMPLIED
class CDATA #IMPLIED
title CDATA #IMPLIED
xml:lang NMTOKEN #IMPLIED
alt CDATA #IMPLIED
date CDATA #IMPLIED
xml:space ( default | preserve ) #IMPLIED >
<!ATTLIST q id ID #IMPLIED
class CDATA #IMPLIED
xml:lang NMTOKEN #IMPLIED >
<!ATTLIST qna id ID #IMPLIED
class CDATA #IMPLIED
xml:lang NMTOKEN #IMPLIED
date CDATA #IMPLIED >
<!ATTLIST section id ID #IMPLIED
class CDATA #IMPLIED
gist CDATA #IMPLIED
xml:lang NMTOKEN #IMPLIED
autonum ( yes | no ) "no" >
<!ATTLIST span id ID #IMPLIED
class CDATA #IMPLIED
title CDATA #IMPLIED
xml:lang NMTOKEN #IMPLIED >
<!ATTLIST title id ID #IMPLIED
class CDATA #IMPLIED
xml:lang NMTOKEN #IMPLIED >
<!ATTLIST topic id ID #IMPLIED
class CDATA #IMPLIED
xml:lang NMTOKEN #IMPLIED
alt CDATA #IMPLIED >
<!ATTLIST type id ID #IMPLIED
class CDATA #IMPLIED >
<!-- Why use QAML instead of HTML?
Because unconstrained HTML is too powerful and loose! -->
|