<!-- 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)*>
