<!-- biblioxml2.dtd: XML DTD for BibTeX markup: version 2 -->

<!-- Supplementary entry types, optional fields and attributes       -->
<!ENTITY % local.info "">
<!ENTITY % local.biblio "">
<!ENTITY % local.keys "">
<!ENTITY % info  "note %local.info;">

<!-- All base elements must have ID and can have cross-reference to  -->
<!-- an existing ID and include a  key to sort, if needed            -->
<!ENTITY % keys   "id       ID    #REQUIRED
                  crossref IDREF #IMPLIED
                  key      IDREF #IMPLIED
                  %local.keys;">
<!ENTITY % month  'month (jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec) #IMPLIED'>
<!-- Possible types of biblio entries -->
<!ELEMENT biblio (#PCDATA | article| book| booklet| inbook| incollection|
                           inproceedings| manual| mastersthesis| misc|
                           phdthesis| proceedings| techreport| unpublished
                           %local.biblio;)*>

<!-- An article from a journal or magazine -->
<!ELEMENT article (author,title,(%info;)*)>
<!ATTLIST article %keys;
                 journal  CDATA  #REQUIRED
                 year     CDATA  #REQUIRED
                 %month;
                 number   CDATA  #IMPLIED
                 pages    CDATA  #IMPLIED
                 volume   CDATA  #IMPLIED>

<!-- A book with an explicit publisher -->
<!ELEMENT book    ((author|editor),title,(%info;)*)>
<!ATTLIST book    %keys;
                 publisher CDATA  #REQUIRED
                 year      CDATA  #REQUIRED
                 address   CDATA  #IMPLIED
                 edition   CDATA  #IMPLIED
                 %month;
                 number    CDATA  #IMPLIED
                 series    CDATA  #IMPLIED
                 volume    CDATA  #IMPLIED
                 ISBN      CDATA  #IMPLIED>

<!-- A work that is printed or bound, but without a named -->
<!--   publisher or sponsoring institution                -->
<!ELEMENT booklet (title,author?,(%info;)*)>
<!ATTLIST booklet %keys;
                 address      CDATA  #IMPLIED
                 howpublished CDATA  #IMPLIED
                 %month;
                 year         CDATA  #IMPLIED
                 ISBN      CDATA  #IMPLIED>

<!-- A part of a book, usually untitled;                       -->
<!--   (a chapter, a sectional unit, or just a range of pages) -->
<!ELEMENT inbook  ((author|editor),title,(%info;)*)>
<!ATTLIST inbook  %keys;
                 pages     CDATA  #REQUIRED
                 publisher CDATA  #REQUIRED
                 year      CDATA  #REQUIRED
                 address   CDATA  #IMPLIED
                 chapter   CDATA  #IMPLIED
                 edition   CDATA  #IMPLIED
                 %month;
                 number    CDATA  #IMPLIED
                 series    CDATA  #IMPLIED
                 type      CDATA  #IMPLIED
                 volume    CDATA  #IMPLIED
                 ISBN      CDATA  #IMPLIED>

<!-- A part of a book with its own title -->
<!ELEMENT incollection  (author,title,booktitle,editor?,(%info;)*)>
<!ATTLIST incollection  %keys;
                       publisher CDATA  #REQUIRED
                       year      CDATA  #REQUIRED
                       address   CDATA  #IMPLIED
                       chapter   CDATA  #IMPLIED
                       edition   CDATA  #IMPLIED
                       %month;
                       number    CDATA  #IMPLIED
                       pages     CDATA  #IMPLIED
                       series    CDATA  #IMPLIED
                       type      CDATA  #IMPLIED
                       volume    CDATA  #IMPLIED
                       ISBN      CDATA  #IMPLIED>

<!-- An article in a conference proceedings -->
<!ELEMENT inproceedings (author,title,booktitle,editor?,(%info;)*)>
<!ATTLIST inproceedings %keys;
                       year         CDATA  #REQUIRED
                       address      CDATA  #IMPLIED
                       %month;
                       number       CDATA  #IMPLIED
                       organization CDATA  #IMPLIED
                       pages        CDATA  #IMPLIED
                       publisher    CDATA  #IMPLIED
                       series       CDATA  #IMPLIED
                       volume       CDATA  #IMPLIED
                       ISBN         CDATA  #IMPLIED>

<!-- Technical documentation -->
<!ELEMENT manual (title,author?,(%info;)*)>
<!ATTLIST manual  %keys;
                 address      CDATA  #IMPLIED
                 edition      CDATA  #IMPLIED
                 organization CDATA  #IMPLIED
                 %month;
                 year         CDATA  #IMPLIED
                 ISBN         CDATA  #IMPLIED>

<!-- A master's thesis -->
<!ELEMENT mastersthesis  (author,title,(%info;)*)>
<!ATTLIST mastersthesis  %keys;
                        school  CDATA  #REQUIRED
                        year    CDATA  #REQUIRED
                        address CDATA  #IMPLIED
                        %month;
                        type    CDATA  #IMPLIED
                        ISBN    CDATA  #IMPLIED>

<!-- Miscelleneous: use this type if nothing else fits -->
<!ELEMENT misc  (((author,title)|(title,author))?,(%info;)*)>
<!ATTLIST misc  %keys;
               howpublished CDATA  #IMPLIED
               %month;
               year         CDATA  #IMPLIED>

<!-- A Ph. D. thesis -->
<!ELEMENT phdthesis  (author,title,(%info;)*)>
<!ATTLIST phdthesis  %keys;
                    school  CDATA  #REQUIRED
                    year    CDATA  #REQUIRED
                    address CDATA  #IMPLIED
                    %month;
                    type    CDATA  #IMPLIED
                    ISBN    CDATA  #IMPLIED>

<!-- The proceedings of a conference -->
<!ATTLIST proceedings %keys;
                     year         CDATA  #REQUIRED
                     address      CDATA  #IMPLIED
                     %month;
                     number       CDATA  #IMPLIED
                     organization CDATA  #IMPLIED
                     publisher    CDATA  #IMPLIED
                     series       CDATA  #IMPLIED
                     volume       CDATA  #IMPLIED
                     ISBN         CDATA  #IMPLIED>

<!-- A report published by a school or other institution -->
<!--   usually numbered within a series                  -->
<!ELEMENT techreport (author,title,(%info;)*)>
<!ATTLIST techreport  %keys;
                     institution  CDATA  #REQUIRED
                     year         CDATA  #REQUIRED
                     address      CDATA  #IMPLIED
                     %month;
                     number       CDATA  #IMPLIED
                     type         CDATA  #IMPLIED
                     ISBN         CDATA  #IMPLIED>

<!-- A document with author and title, but not formally published -->
<!ELEMENT unpublished  (author,title,(%info;)*)>
<!ATTLIST unpublished  %keys;
                      address     CDATA  #IMPLIED
                      %month;
                      number      CDATA  #IMPLIED
                      type        CDATA  #IMPLIED>

<!-- For adding typographic emphasis to the information -->
<!ELEMENT emph (#PCDATA)>
<!ATTLIST emph style (bf|em|it|sf|sl|tt|qu) "em">

<!-- The basic fields (pages 162-164) -->
<!-- Only fields with names (author, editor) and titles are left as -->
<!-- basic elements -->
                 <!-- Author(s) in format described on pp. 157-158 -->
<!ELEMENT author     (name,(and,name)*)>
<!ELEMENT name       (first,last)>
<!ELEMENT last       (#PCDATA)>
<!ELEMENT first      (#PCDATA)>
<!ELEMENT and         EMPTY>
                 <!-- The names of the editor(s)                   -->
<!ELEMENT editor     (name,(and,name)*)>
                 <!-- The work's title                             -->
<!ELEMENT title      (#PCDATA|emph)*>
      <!-- Title of a book, used in incollection and inproceedings -->
<!ELEMENT booktitle  (#PCDATA|emph)*>
<!-- Optional notes at end of entries -->
                 <!-- Annotation (not used by standard styles)     -->
<!ELEMENT annote     (#PCDATA|emph)*>
                 <!-- Additional information to help the user      -->
<!ELEMENT note       (#PCDATA|emph)*>