-
Notifications
You must be signed in to change notification settings - Fork 10
/
bibxmlext.dtd
493 lines (437 loc) · 19.8 KB
/
bibxmlext.dtd
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
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
<?xml version="1.0" encoding="UTF-8"?>
<!--
- (C) Frank Lübeck (https://www.math.rwth-aachen.de/~Frank.Luebeck)
-
- The BibXMLext data format.
-
- This DTD expresses XML markup similar to the BibTeX language
- specified for LaTeX, or actually its content model.
-
- It is a variation of a file bibxml.dtd developed by the project
- https://bibtexml.sf.net/
-
- For documentation on BibTeX, see
- https://tug.org/bibtex/
-
- A previous version of the code originally developed by
- Vidar Bronken Gundersen, https://bibtexml.sf.net/
- Reuse and repurposing is approved as long as this
- notification appears with the code.
-
-->
<!-- ..................................................................... -->
<!-- Main structure -->
<!-- key-value pairs as in BibTeX @string entries are put in empty elements
(but here they can be used for parts of an entry field as well) -->
<!ELEMENT string EMPTY>
<!ATTLIST string
key CDATA #REQUIRED
value CDATA #REQUIRED >
<!-- entry may contain one of the bibliographic types. -->
<!ELEMENT entry ( article | book | booklet |
manual | techreport |
mastersthesis | phdthesis |
inbook | incollection |
proceedings | inproceedings |
conference |
unpublished | misc ) >
<!ATTLIST entry
id CDATA #REQUIRED >
<!-- file is the documents top element. -->
<!ELEMENT file ( string | entry )* >
<!-- ..................................................................... -->
<!-- Parameter entities -->
<!-- these are additional elements often used, but not included in the
standard BibTeX distribution, these must be added to the
bibliography styles, otherwise these fields will be omitted by
the formatter, we allow an arbitrary number of 'other' elements
to specify any further information -->
<!ENTITY % n.user " abstract?, affiliation?,
contents?, copyright?,
(isbn | issn)?,
keywords?, language?, lccn?,
location?, mrnumber?, mrclass?, mrreviewer?,
price?, size?, url?, category?, other* ">
<!ENTITY % n.common "key?, annotate?, crossref?,
%n.user;">
<!-- content model used more than once -->
<!ENTITY % n.InProceedings "author, title, booktitle,
year, editor?,
(volume | number)?,
series?, pages?, address?,
month?, organization?, publisher?,
note?, %n.common;">
<!ENTITY % n.PHDThesis "author, title, school,
year, type?, address?, month?,
note?, %n.common;">
<!-- ..................................................................... -->
<!-- Entries in the BibTeX database -->
<!-- [article] An article from a journal or magazine.
- Required fields: author, title, journal, year.
- Optional fields: volume, number, pages, month, note. -->
<!ELEMENT article (author, title, journal,
year, volume?, number?, pages?,
month?, note?, %n.common;)
>
<!-- [book] A book with an explicit publisher.
- Required fields: author or editor, title, publisher, year.
- Optional fields: volume or number, series, address,
- edition, month, note. -->
<!ELEMENT book ((author | editor), title,
publisher, year, (volume | number)?,
series?, address?, edition?, month?,
note?, %n.common;)
>
<!-- [booklet] A work that is printed and bound, but without a named
- publisher or sponsoring institution
- Required field: title.
- Optional fields: author, howpublished, address, month, year, note. -->
<!ELEMENT booklet (author?, title,
howpublished?, address?, month?,
year?, note?, %n.common;)
>
<!-- [conference] The same as INPROCEEDINGS,
- included for Scribe compatibility. -->
<!ELEMENT conference (%n.InProceedings;)
>
<!-- [inbook] A part of a book, which may be a chapter (or section or
- whatever) and/or a range of pages.
- Required fields: author or editor, title, chapter and/or pages,
- publisher, year.
- Optional fields: volume or number, series, type, address,
- edition, month, note. -->
<!ELEMENT inbook ((author | editor), title,
((chapter, pages?) | pages),
publisher, year, (volume |
number)?, series?, type?,
address?, edition?, month?,
note?, %n.common;)
>
<!--
- > I want to express that the elements a and/or b are legal that is one
- > of them or both must be present in the document instance (see the
- > element content for BibTeX entry `InBook').
- > How do I specify this in my DTD?
-
- Dave Peterson:
- in content model: ((a , b?) | b) if order matters
- ((a , b?) | (b , a?)) otherwise
-->
<!-- [incollection] A part of a book having its own title.
- Required fields: author, title, booktitle, publisher, year.
- Optional fields: editor, volume or number, series, type,
- chapter, pages, address, edition, month, note. -->
<!ELEMENT incollection (author, title,
booktitle, publisher, year,
editor?, (volume | number)?,
series?, type?, chapter?,
pages?, address?, edition?,
month?, note?,
%n.common;)
>
<!-- [inproceedings] An article in a conference proceedings.
- Required fields: author, title, booktitle, year.
- Optional fields: editor, volume or number, series, pages,
- address, month, organization, publisher, note. -->
<!ELEMENT inproceedings (%n.InProceedings;)
>
<!-- [manual] Technical documentation
- Required field: title.
- Optional fields: author, organization, address,
- edition, month, year, note. -->
<!ELEMENT manual (author?, title,
organization?, address?, edition?,
month?, year?, note?, %n.common;)
>
<!-- [mastersthesis] A Master's thesis.
- Required fields: author, title, school, year.
- Optional fields: type, address, month, note. -->
<!ELEMENT mastersthesis (%n.PHDThesis;)
>
<!-- [misc] Use this type when nothing else fits.
- Required fields: none.
- Optional fields: author, title, howpublished, month, year, note. -->
<!ELEMENT misc (author?, title?,
howpublished?, month?, year?, note?,
%n.common;)
>
<!-- [phdthesis] A PhD thesis.
- Required fields: author, title, school, year.
- Optional fields: type, address, month, note. -->
<!ELEMENT phdthesis (%n.PHDThesis;)
>
<!-- [proceedings] The proceedings of a conference.
- Required fields: title, year.
- Optional fields: editor, volume or number, series,
- address, month, organization, publisher, note. -->
<!ELEMENT proceedings (editor?, title, year,
(volume | number)?, series?,
address?, month?, organization?,
publisher?, note?, %n.common;)
>
<!-- [techreport] A report published by a school or other institution,
- usually numbered within a series.
- Required fields: author, title, institution, year.
- Optional fields: type, number, address, month, note. -->
<!ELEMENT techreport (author, title,
institution, year, type?, number?,
address?, month?, note?, %n.common;)
>
<!-- [unpublished] A document having an author and title, but not
- formally published.
- Required fields: author, title, note.
- Optional fields: month, year. -->
<!ELEMENT unpublished (author, title, note,
month?, year?, %n.common;)
>
<!-- ..................................................................... -->
<!-- Fields from the standard bibliography styles -->
<!--
- Below is a description of all fields recognized by the standard
- bibliography styles. An entry can also contain other fields, which
- are ignored by those styles.
-
- [address] Usually the address of the publisher or other type of
- institution For major publishing houses, van~Leunen recommends
- omitting the information entirely. For small publishers, on the other
- hand, you can help the reader by giving the complete address.
-
- [annote] An annotation It is not used by the standard bibliography
- styles, but may be used by others that produce an annotated
- bibliography.
-
- [author] The name(s) of the author(s), here *not* in the format
- described in the LaTeX book. Contains elements <name> which in turn
- contains elements <first>, <last> for the first name (or first names,
- fully written or as initials, and including middle initials) and
- the last name.
-
- [booktitle] Title of a book, part of which is being cited. See the
- LaTeX book for how to type titles. For book entries, use the title
- field instead.
-
- [chapter] A chapter (or section or whatever) number.
-
- [crossref] The database key of the entry being cross referenced.
-
- [edition] The edition of a book-for example, ``Second''. This
- should be an ordinal, and should have the first letter capitalized, as
- shown here; the standard styles convert to lower case when necessary.
-
- [editor] Name(s) of editor(s), typed as indicated in the LaTeX book.
- If there is also an author field, then the editor field gives the
- editor of the book or collection in which the reference appears.
-
- [howpublished] How something strange has been published. The first
- word should be capitalized.
-
- [institution] The sponsoring institution of a technical report.
-
- [journal] A journal name. Abbreviations are provided for many
- journals; see the Local Guide.
-
- [key] Used for alphabetizing, cross referencing, and creating a label
- when the ``author'' information (described in Section [ref: ] is
- missing. This field should not be confused with the key that appears
- in the \cite command and at the beginning of the database entry.
-
- [month] The month in which the work was published or, for an
- unpublished work, in which it was written. You should use the
- standard three-letter abbreviation, as described in Appendix B.1.3 of
- the LaTeX book.
-
- [note] Any additional information that can help the reader. The first
- word should be capitalized.
-
- [number] The number of a journal, magazine, technical report, or of a
- work in a series. An issue of a journal or magazine is usually
- identified by its volume and number; the organization that issues a
- technical report usually gives it a number; and sometimes books are
- given numbers in a named series.
-
- [organization] The organization that sponsors a conference or that
- publishes a manual.
-
- [pages] One or more page numbers or range of numbers, such as 42-111
- or 7,41,73-97 or 43+ (the `+' in this last example indicates pages
- following that don't form a simple range). To make it easier to
- maintain Scribe-compatible databases, the standard styles convert a
- single dash (as in 7-33) to the double dash used in TeX to denote
- number ranges (as in 7-33). Here, we suggest to use the entity
- – for a dash in page ranges.
-
- [publisher] The publisher's name.
-
- [school] The name of the school where a thesis was written.
-
- [series] The name of a series or set of books. When citing an entire
- book, the the title field gives its title and an optional series field
- gives the name of a series or multi-volume set in which the book is
- published.
-
- [title] The work's title. For mathematical formulae use the <M> or
- <Math> elements explained below (and LaTeX code in the content, without
- surrounding '$').
-
- [type] The type of a technical report-for example, ``Research
- Note''.
-
- [volume] The volume of a journal or multivolume book.
-
- [year] The year of publication or, for an unpublished work, the year
- it was written. Generally it should consist of four numerals, such as
- 1984, although the standard styles can handle any year whose last four
- nonpunctuation characters are numerals, such as `(about 1984)'.
-->
<!-- Here is the main extension compared to the original BibXML definition
from which is DTD is derived: We want to allow more markup in some
elements such that we can use the bibliography for high quality
output in other formats than LaTeX.
- <M> and <Math>, mathematical formulae: Specify LaTeX code for "simple"
formulae as content of <M> elements; "simple" means that they can be
translated to a fairly readable ASCII representation as explained in
the GAPDoc documentation on "<M>".
More complicated formulae are given as content of <Math> elements.
(Think about an <Alt> alternative for text or HTML representations.)
- <URL>: use these elements to specify URLs, they can be properly
converted to links if possible in an output format (in that case
the Text attribute is used for the visible text).
- <value key="..."/>: substituted by the value-attribute specified
in a <string key="..." value="..."/> element. Can be used anywhere,
not only for complete fields as in BibTeX.
- <C> protect case changes: should be used instead of {}'s which are
used in BibTeX title fields to protect the case of letters from
changes.
- <Alt Only="...">, <Alt Not="...">, alternatives for different
output formats: Use this to specify alternatives, the GAPDoc
utilities will do some special handling for "Text", "HTML",
and "BibTeX" as output type.
- <Wrap Name="...">, generic wrapper for other markup:
Use this for any other type of markup you are interested in. The
GAPDoc utilities will ignore the markup, but provide a hook
to do install handler functions for them.
-->
<!ELEMENT M (#PCDATA | Alt)* > <!-- math with simple text
representation, in LaTeX -->
<!ELEMENT Math (#PCDATA | Alt)* > <!-- other math in LaTeX -->
<!ELEMENT URL (#PCDATA | Alt | Link | LinkText)* > <!-- an URL -->
<!ATTLIST URL Text CDATA #IMPLIED> <!-- text to be printed
(default is content) -->
<!ELEMENT value EMPTY > <!-- placeholder for value given .. -->
<!ATTLIST value key CDATA #REQUIRED > <!-- .. by key, defined in a string
element -->
<!ELEMENT C (#PCDATA | value | Alt |
M | Math | Wrap | URL)* > <!-- protect from case changes -->
<!ELEMENT Alt (#PCDATA | value | C | Alt |
M | Math | Wrap | URL)* > <!-- specify alternatives for
various types of output -->
<!ATTLIST Alt Only CDATA #IMPLIED
Not CDATA #IMPLIED > <!-- specify output types in comma and
whitespace separated list (use exactly one of Only or Not) -->
<!ENTITY % withMURL "(#PCDATA | value | M | Math | Wrap | URL | C | Alt )*" >
<!ELEMENT Wrap %withMURL; > <!-- a generic wrapper -->
<!ATTLIST Wrap Name CDATA #REQUIRED > <!-- needs a 'Name' attribute -->
<!ELEMENT address %withMURL; >
<!-- here we don't want the complicated definition from the LaTeX book,
use markup for first/last name(s): a <name> element for each
author which contains <first> (optional), <last> elements: -->
<!ELEMENT author (name)* >
<!ELEMENT name (first?, last) >
<!ELEMENT first (#PCDATA) >
<!ELEMENT last (#PCDATA) >
<!ELEMENT booktitle %withMURL; >
<!ELEMENT chapter %withMURL; >
<!ELEMENT edition %withMURL; >
<!-- same as for author field -->
<!ELEMENT editor (name)* >
<!ELEMENT howpublished %withMURL; >
<!ELEMENT institution %withMURL; >
<!ELEMENT journal %withMURL; >
<!ELEMENT month %withMURL; >
<!ELEMENT note %withMURL; >
<!ELEMENT number %withMURL; >
<!ELEMENT organization %withMURL; >
<!ELEMENT pages %withMURL; >
<!ELEMENT publisher %withMURL; >
<!ELEMENT school %withMURL; >
<!ELEMENT series %withMURL; >
<!ELEMENT title %withMURL; >
<!ELEMENT type %withMURL; >
<!ELEMENT volume %withMURL; >
<!ELEMENT year (#PCDATA) >
<!-- These were not listed in the documentation for entry content, but
- appeared in the list of fields in the BibTeX documentation -->
<!ELEMENT annotate %withMURL; >
<!ELEMENT crossref %withMURL; >
<!ELEMENT key (#PCDATA) >
<!-- ..................................................................... -->
<!-- Other popular fields
-
- From: http://www.ecst.csuchico.edu/~jacobsd/bib/formats/bibtex.html
- BibTeX is extremely popular, and many people have used it to store
- information. Here is a list of some of the more common fields:
-
- [affiliation] The authors affiliation.
- [abstract] An abstract of the work.
- [contents] A Table of Contents
- [copyright] Copyright information.
- [ISBN] The International Standard Book Number.
- [ISSN] The International Standard Serial Number.
- Used to identify a journal.
- [keywords] Key words used for searching or possibly for annotation.
- [language] The language the document is in.
- [location] A location associated with the entry,
- such as the city in which a conference took place.
- [LCCN] The Library of Congress Call Number.
- I've also seen this as lib-congress.
- [mrnumber] The Mathematical Reviews number.
- [mrclass] The Mathematical Reviews class.
- [mrreviewer] The Mathematical Reviews reviewer.
- [price] The price of the document.
- [size] The physical dimensions of a work.
- [URL] The WWW Universal Resource Locator that points to the item being
- referenced. This often is used for technical reports to point to the
- ftp site where the postscript source of the report is located.
-
- When using BibTeX with LaTeX you need
- BibTeX style files to print these data.
-->
<!ELEMENT abstract %withMURL; >
<!ELEMENT affiliation %withMURL; >
<!ELEMENT contents %withMURL; >
<!ELEMENT copyright %withMURL; >
<!ELEMENT isbn (#PCDATA) >
<!ELEMENT issn (#PCDATA) >
<!ELEMENT keywords %withMURL; >
<!ELEMENT language %withMURL; >
<!ELEMENT lccn (#PCDATA) >
<!ELEMENT location %withMURL; >
<!ELEMENT mrnumber %withMURL; >
<!ELEMENT mrclass %withMURL; >
<!ELEMENT mrreviewer %withMURL; >
<!ELEMENT price %withMURL; >
<!ELEMENT size %withMURL; >
<!ELEMENT url %withMURL; >
<!-- Added by Zeger W. Hendrikse
- [category] Category of this bibitem
-->
<!ELEMENT category %withMURL; >
<!-- A container element [other] for any further information, a description
- of the type of data must be given in the attribute 'type'
-->
<!ELEMENT other %withMURL; >
<!ATTLIST other
type CDATA #REQUIRED >
<!-- ..................................................................... -->
<!-- Predefined/reserved character entities -->
<!ENTITY amp "&#38;">
<!ENTITY lt "&#60;">
<!ENTITY gt ">">
<!ENTITY apos "'">
<!ENTITY quot """>
<!-- Some more generally useful entities -->
<!ENTITY nbsp " ">
<!ENTITY copyright "©">
<!ENTITY ndash "–">
<!-- ..................................................................... -->
<!-- End of BibXMLext dtd -->