<!-- The RIS XML DTD - a XML application based on the RIS reference format -->
<!-- (C) 2003-03-22 Markus Hoenicka <markus@mhoenicka.de> -->

<!-- Invoke with the following declaration -->
<!-- <!DOCTYPE ris PUBLIC "-//Markus Hoenicka//DTD Ris V1.3.0//EN" "http://refdb.sourceforge.net/dtd/risx-1.3.0/risx.dtd"> -->

<!-- the top-level element -->
<!ELEMENT ris (entry)+>


<!-- each RIS dataset is encoded by the following structure: -->
<!-- part, publication, and set denote the analytical, monographic, and -->
<!-- serial level of bibliographic information. -->
<!-- libinfo contains all information relevant for local housekeeping -->
<!-- contents describes the contents of the reference described by the -->
<!-- dataset -->
<!-- the type attribute is equivalent to the TY RIS field -->
<!-- the identifier attributes: ID is a numeric one, while citekey is an -->
<!-- alphanumeric key. Both are supposed to be unique in a database -->
<!-- note to self: why was there a "+"? -->
<!--<!ELEMENT entry (part?,publication,set?,libinfo*,contents?)+>-->
<!ELEMENT entry (part?,publication,set?,libinfo*,contents?)>

<!ATTLIST entry type (ABST|ADVS|ART|BILL|BOOK|CASE|CHAP|COMP|CONF|CTLG|DATA|ELEC|GEN|HEAR|ICOMM|INPR|JFULL|JOUR|MAP|MGZN|MPCT|MUSIC|NEWS|PAMP|PAT|PCOMM|RPRT|SER|SLIDE|SOUND|STAT|THES|UNBILL|UNPB|VIDEO) "GEN"
        id NMTOKEN #IMPLIED
        citekey NMTOKEN #IMPLIED>

<!-- the three levels of bibliographic information -->
<!ELEMENT part (title, author*)>

<!ELEMENT publication (title*, author*, pubinfo?)>

<!ELEMENT set (title*, author*)>

<!-- the apparatus used in the bibliographic information -->
<!ELEMENT title (#PCDATA)>

<!ATTLIST title type (full|abbrev|user1|user2) "full"
                freq NMTOKEN #IMPLIED
                relfreq NMTOKEN #IMPLIED>

<!-- The url element is gone in favour of 'link type="url"'. Both elements use the same semantics so it would be weird to keep them separately -->
<!ELEMENT pubinfo (pubdate*,volume?,issue?,conftitle?,startpage?,endpage?,city?,publisher?,serial?,address?,userdef*,misc*,link*)>

<!ELEMENT pubdate (date,otherinfo?)>

<!ATTLIST pubdate type (primary|secondary) "primary">

<!ELEMENT date (year?,month?,day?)>

<!ELEMENT year (#PCDATA)>

<!ELEMENT month (#PCDATA)>

<!ELEMENT day (#PCDATA)>

<!ELEMENT otherinfo (#PCDATA)>

<!ELEMENT volume (#PCDATA)>

<!ELEMENT issue (#PCDATA)>

<!ELEMENT conftitle (#PCDATA)>

<!ELEMENT startpage (#PCDATA)>

<!ELEMENT endpage (#PCDATA)>

<!ELEMENT city (#PCDATA)>

<!ELEMENT publisher (#PCDATA)>

<!ELEMENT serial (#PCDATA)>

<!ELEMENT address (#PCDATA)>

<!ELEMENT userdef (#PCDATA)>

<!ATTLIST userdef type (1|2|3|4|5) "1">

<!ELEMENT misc (#PCDATA)>

<!ATTLIST misc type (1|2|3) "1">

<!ELEMENT link (#PCDATA)>

<!ATTLIST link type (url|pdf|fulltext|related|image|doi) "url">

<!-- the libinfo element contains the local housekeeping information -->
<!-- specific to a single user -->
<!ELEMENT libinfo (notes?,reprint,availability?,link*)>

<!ATTLIST libinfo user NMTOKEN #REQUIRED>

<!ELEMENT notes (#PCDATA)>

<!ELEMENT reprint (date?)>

<!ATTLIST reprint status (NOTINFILE|ONREQUEST|INFILE) "NOTINFILE">

<!ELEMENT availability (#PCDATA)>

<!ATTLIST availability type (full|useroot) "full">

<!-- the contents element contains information about the contents of -->
<!-- the reference -->
<!ELEMENT contents (abstract?,keyword*)>

<!ELEMENT abstract (#PCDATA)>

<!ELEMENT keyword (#PCDATA)>

<!ATTLIST keyword freq NMTOKEN #IMPLIED
                relfreq NMTOKEN #IMPLIED>

<!-- the author element -->
<!ELEMENT author (name|(lastname?,firstname?,middlename*,suffix?))>

<!ATTLIST author role NMTOKEN #IMPLIED
                freq NMTOKEN #IMPLIED
                relfreq NMTOKEN #IMPLIED>

<!ELEMENT name (#PCDATA)>

<!ELEMENT lastname (#PCDATA)>

<!ELEMENT firstname (#PCDATA)>

<!ELEMENT middlename (#PCDATA)>

<!ELEMENT suffix (#PCDATA)>

