Created with JBuilder
  - 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
  - Suggested invocation:
  -   <!DOCTYPE bibtex:file PUBLIC "-//Oren Patashnik//DTD bibtex//EN"
  -         "" >
  -   <bibtex:file xmlns: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
  - This code originally developed by
  -   Vidar Bronken Gundersen,
  - 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  "" -->

<!-- ..................................................................... -->
<!-- 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?,

<!-- 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?,

<!-- [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?,

<!-- [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
  - 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).
  - [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, typed as explained in the LaTeX book.
  - [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)'.

<!ELEMENT   bml:address         (#PCDATA) >
<!-- ELEMENT   bml:author          (#PCDATA) --><!-- using new version! -->
<!ELEMENT   bml:booktitle       (#PCDATA) >
<!ELEMENT   bml:chapter         (#PCDATA) >
<!ELEMENT   bml:edition         (#PCDATA) >
<!-- ELEMENT   bml:editor          (#PCDATA) --><!-- using new version! -->
<!ELEMENT   bml:howpublished    (#PCDATA) >
<!ELEMENT   bml:institution     (#PCDATA) >
<!ELEMENT   bml:journal         (#PCDATA) >
<!ELEMENT   bml:month           (#PCDATA) >
<!ELEMENT   bml:note            (#PCDATA) >
<!ELEMENT   bml:number          (#PCDATA) >
<!ELEMENT   bml:organization    (#PCDATA) >
<!ELEMENT   bml:pages           (#PCDATA) >
<!ELEMENT   bml:publisher       (#PCDATA) >
<!ELEMENT   bml:school          (#PCDATA) >
<!ELEMENT   bml:series          (#PCDATA) >
<!ELEMENT   bml:title           (#PCDATA) >
<!ELEMENT   bml:type            (#PCDATA) >
<!ELEMENT   bml:volume          (#PCDATA) >
<!ELEMENT   bml:year            (#PCDATA) >

<!-- These were not listed in the documentation for entry content, but
  -  appeared in the list of fields in the BibTeX documentation -->

<!ELEMENT   bml:annotate        (#PCDATA) >
<!ELEMENT   bml:crossref        (#PCDATA) >
<!ELEMENT   bml:key             (#PCDATA) >

<!-- ..................................................................... -->
<!-- Other popular fields
  - From:
  - 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.
  - [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   bml:abstract        (#PCDATA) >
<!ELEMENT   bml:affiliation     (#PCDATA) >
<!ELEMENT   bml:contents        (#PCDATA) >
<!ELEMENT   bml:copyright       (#PCDATA) >
<!ELEMENT   bml:isbn            (#PCDATA) >
<!ELEMENT   bml:issn            (#PCDATA) >
<!-- ELEMENT   bml:keywords        (#PCDATA) --><!-- using new version! -->
<!ELEMENT   bml:language        (#PCDATA) >
<!ELEMENT   bml:lccn            (#PCDATA) >
<!ELEMENT   bml:location        (#PCDATA) >
<!ELEMENT   bml:mrnumber        (#PCDATA) >
<!ELEMENT   bml:price           (#PCDATA) >
<!ELEMENT   bml:size            (#PCDATA) >
<!ELEMENT   bml:url             (#PCDATA) >

<!-- Added by Zeger W. Hendrikse
  - [category]  Category of this bibitem
<!ELEMENT   bml:category      (#PCDATA) >

<!-- Added by Holger (David) Wagner
  - for improved XSL stylesheet processing capabilities
<!ELEMENT   bml:authors          (bml:author+) >
<!ELEMENT   bml:author (#PCDATA)>
<!-- first, middle and last name should be obvious - preLast is for names
     like Thomas *de* Burghes
     note that for sorting, "last" is used
<!ATTLIST   bml:author  first    CDATA  #IMPLIED
                        middle   CDATA  #IMPLIED
                        preLast  CDATA  #IMPLIED
                        last     CDATA  #REQUIRED
                        eMail    CDATA  #IMPLIED
                        homepage CDATA  #IMPLIED>

<!ELEMENT   bml:editors          (bml:editor+) >
<!ELEMENT   bml:editor (#PCDATA)>
<!ATTLIST   bml:editor  first    CDATA  #IMPLIED
                        middle   CDATA  #IMPLIED
                        preLast  CDATA  #REQUIRED
                        last     CDATA  #REQUIRED>

<!ELEMENT   bml:keywords          (bml:keyword+) >
<!ELEMENT   bml:keyword (#PCDATA)>

<!-- ..................................................................... -->
<!-- Predefined/reserved character entities -->

<!ENTITY amp    "&#38;">
<!ENTITY lt     "&#60;">
<!ENTITY gt     ">">
<!ENTITY apos   "'">
<!ENTITY quot   """>

<!-- ..................................................................... -->
<!-- End of bibtex dtd -->

Created with JBuilder