<!--
- File: $Id: bml.dtd,v 1.2 2002/03/13 20:30:59 david Exp $
-
- This DTD expresses XML markup similar to the BibTeX language
- specified for LaTeX, or actually its content model.
-
- For documentation on BibTeX, see
- ftp://ftp.tex.ac.uk/tex-archive/biblio/bibtex/distribs/doc/
-
- Suggested invocation:
- <!DOCTYPE bibtex:file PUBLIC "-//Oren Patashnik//DTD bibtex//EN"
- "http://www.bitjungle.com/~bibtex/bibtexml.dtd" >
- <bibtex:file xmlns:bibtex="http://www.bitjungle.com/~bibtex/">
- ...
- </bibtex:file>
-
- When used as a module within another DTD:
- <!ENTITY % bibtex PUBLIC
- "-//Oren Patashnik//DTD bibtex//EN" "bibtexml.dtd">
- %bibtex;
- <!ELEMENT bibliography (title?, bibtex:entry*) >
-
- Available from
- http://www.bitjungle.com/~bibtex/
- http://www.wins.uva.nl/~zegerh/bibteXML/
-
- This code originally developed by
- Vidar Bronken Gundersen, http://www.bitjungle.com/~bibtex/
- Reuse and repurposing is approved as long as this
- notification appears with the code.
-
- BML-Extensions (2002-03-06):
- In the original bibteXML.dtd, authors, editors, and keywords were included
- as strings, composed with AND. While this makes generating bibteXML files
- from bibtex files quite easy, it is a very uncommon way of formatting
- XML data. In fact, it is impossible to sort by author or even print
- a correct list of authors via XSL stylesheets.
- Thus, we have included a better XML-representation which is to be used
- instead of the string version.
- Furthermore, a name attribute has been added to entry, which can be
- used for [Name] style citations, instead of [n] style citations.
- See bml: elements...
-->
<!-- ..................................................................... -->
<!-- Main structure -->
<!-- bml:entry may contain one of the bibliographic types. -->
<!ELEMENT bml:entry ( bml:article | bml:book | bml:booklet |
bml:manual | bml:techreport |
bml:mastersthesis | bml:phdthesis |
bml:inbook | bml:incollection |
bml:proceedings | bml:inproceedings |
bml:conference |
bml:unpublished | bml:misc ) >
<!ATTLIST bml:entry
id ID #REQUIRED
name CDATA #IMPLIED>
<!-- bml:file is the document top element with a namespace indicator. -->
<!ELEMENT bml:file ( bml:entry )* >
<!-- ATTLIST bml:file
xmlns:bibtex CDATA #FIXED "http://www.bitjungle.com/~bibtex/" -->
<!-- ..................................................................... -->
<!-- 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 -->
<!ENTITY % n.user "( bml:abstract?, bml:affiliation?,
bml:contents?, bml:copyright?,
(bml:isbn | bml:issn)?,
(bml:keywords | bml:keywords)?, bml:language?, bml:lccn?,
bml:location?, bml:mrnumber?, bml:price?,
bml:size?, bml:url?, bml:category? )">
<!ENTITY % n.common "(bml:key?, bml:annotate?, bml:crossref?,
%n.user;)">
<!-- content model used more than once -->
<!ENTITY % n.InProceedings "((bml:author | bml:authors), bml:title, bml:booktitle,
bml:year, (bml:editors | bml:editors)?,
(bml:volume | bml:number)?,
bml:series?, bml:pages?, bml:address?,
bml:month?, bml:organization?, bml:publisher?,
bml:note?, %n.common;)">
<!ENTITY % n.PHDThesis "((bml:author | bml:authors), bml:title, bml:school,
bml:year, bml:type?, bml:address?, bml:month?,
bml: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 bml:article ((bml:author | bml:authors), bml:title, bml:journal,
bml:year, bml:volume?, bml:number?, bml:pages?,
bml:month?, bml: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 bml:book (((bml:author | bml:authors) | (bml:editors | bml:editors)), bml:title,
bml:publisher, bml:year, (bml:volume | bml:number)?,
bml:series?, bml:address?, bml:edition?, bml:month?,
bml: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 bml:booklet ((bml:author | bml:authors)?, bml:title,
bml:howpublished?, bml:address?, bml:month?,
bml:year?, bml:note?, %n.common;)
>
<!-- [conference] The same as INPROCEEDINGS,
- included for Scribe compatibility. -->
<!ELEMENT bml: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 bml:inbook (((bml:author | bml:authors) | (bml:editors | bml:editors)), bml:title,
((bml:chapter, bml:pages?) | bml:pages),
bml:publisher, bml:year, (bml:volume |
bml:number)?, bml:series?, bml:type?,
bml:address?, bml:edition?, bml:month?,
bml: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 bml:incollection ((bml:author | bml:authors), bml:title,
bml:booktitle, bml:publisher, bml:year,
(bml:editors | bml:editors)?, (bml:volume | bml:number)?,
bml:series?, bml:type?, bml:chapter?,
bml:pages?, bml:address?, bml:edition?,
bml:month?, bml: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 bml:inproceedings (%n.InProceedings;)
>
<!-- [manual] Technical documentation
- Required field: title.
- Optional fields: author, organization, address,
- edition, month, year, note. -->
<!ELEMENT bml:manual ((bml:author | bml:authors)?, bml:title,
bml:organization?, bml:address?, bml:edition?,
bml:month?, bml:year?, bml:note?, %n.common;)
>
<!-- [mastersthesis] A Master's thesis.
- Required fields: author, title, school, year.
- Optional fields: type, address, month, note. -->
<!ELEMENT bml:mastersthesis (%n.PHDThesis;)
>
<!-- [misc] Use this type when nothing else fits.
- Required fields: none.
- Optional fields: author, title, howpublished, month, year, note. -->
<!ELEMENT bml:misc ((bml:author | bml:authors)?, bml:title?,
bml:howpublished?, bml:month?, bml:year?, bml:note?,
%n.common;)
>
<!-- [phdthesis] A PhD thesis.
- Required fields: author, title, school, year.
- Optional fields: type, address, month, note. -->
<!ELEMENT bml: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 bml:proceedings ((bml:editors | bml:editors)?, bml:title, bml:year,
(bml:volume | bml:number)?, bml:series?,
bml:address?, bml:month?, bml:organization?,
bml:publisher?, bml: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 bml:techreport ((bml:author | bml:authors), bml:title,
bml:institution, bml:year, bml:type?, bml:number?,
bml:address?, bml:month?, bml: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 bml:unpublished ((bml:author | bml:authors), bml:title, bml:note,
bml:month?, bml: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), in the format described in the
- LaTeX book.
-
- [booktitle] Title of a book, part of which is being cited. See the