<!ENTITY document          "Document Type Definition of an EG-Model submission.">
<!ENTITY status            "This is a release specification.">
<!ENTITY author            "Michael Joswig and Konrad Polthier">
<!ENTITY url               "http://www.eg-models.de/rsrc/eg-model.dtd">
<!ENTITY history_0.92      "30.03.2000 (kp,mj): Beta release for pre-release of server.">
<!ENTITY history_0.93      "12.07.2000 (kp): Optional 'reflink' element in 'references', optional element 'note' in 'refurl' element.">
<!ENTITY history_0.94      "30.08.2000 (kp): EDG format removed from allowable geometry files.">
<!ENTITY history_0.95      "09.10.2000 (kp): Allow variable appearance of files other than master and readme.">
<!ENTITY history_0.96      "20.10.2000 (kp): New attribute 'to' of reviewcomment to specify receiver of review comment.">
<!ENTITY history_0.97      "28.10.2000 (kp): Superfluous bracket in attribute 'to' of reviewcomment.">
<!ENTITY history_1.00      "29.10.2000 (kp): Detail element must have paragraphs.
                                             This is the first release specification.">
<!ENTITY history_1.10      "06.01.2001 (kp): Element 'submissions' moved into separate DTD.">
<!ENTITY history_1.11      "06.01.2001 (kp): File formats FE,HTML added to other and/or original.">
<!ENTITY history_1.12      "06.01.2001 (kp): Documentation added to most elements.">
<!ENTITY history_2.00.a    "07.01.2001 (kp): Revision of description elements, no backward compatibility.">
<!ENTITY history_2.00.b    "09.01.2001 (kp): Full implementation of revision, paragraph 'p' now in mixed mode.">
<!ENTITY history_2.00      "22.01.2001 (kp): Additional file type file_image.">
<!ENTITY history_2.01      "26.01.2001 (kp): Add submission and review dates.">
<!ENTITY history_2.02      "29.01.2001 (kp): Element revision moved to end of eg-model element.">
<!ENTITY history_2.03      "12.02.2001 (kp): Revision element now optional since for internal usage only.">
<!ENTITY history_2.04      "12.02.2001 (kp): Documentation of 'secondary' changed, no longer accept semicolor as separator.">
<!ENTITY history_2.05      "17.02.2001 (kp): Children of paragraph completed.">
<!ENTITY history_2.06      "19.02.2001 (kp): Add element 'pre' to paragraph.">
<!ENTITY history_2.07      "08.03.2001 (kp): Add element 'blockquote' and 'table' to detail section.">
<!ENTITY history_2.08      "13.03.2001 (kp): Restriction on type of attributes of file_other and file_original removed.">
<!ENTITY history_2.09      "22.03.2001 (kp): Allow blockquote to contain paragraph elements 'p'.">
<!ENTITY history_2.10      "22.03.2001 (kp): Element 'br' added to special, set of special character entities added.">
<!ENTITY history_2.11      "05.04.2001 (kp): Documentation of this dtd extended, allow mixed content in 'detail', optional element 'references'.">
<!ENTITY history_2.12      "12.06.2001 (kp): Anchor with hyper link added to paragraph element.">
<!ENTITY history_2.13      "29.06.2001 (kp): Exchange order of refyear and refpage in refcollection to synchronize with refarticle, obsolete repreprint removed.">
<!ENTITY history_2.14      "30.08.2001 (kp): Optional new element file_display added to specify camera configuration files.">
<!ENTITY history_2.15      "10.03.2004 (kp): Improved consistency with bibtex: all entries of element 'refmisc' are now optional.">
<!ENTITY history_2.16      "16.03.2004 (kp): File format 'off' removed from attribute list of master and applet files.">
<!ENTITY history_2.17      "06.12.2007 (kp): Optional attributes displaywidth and displayheight of applet window added.">
<!ENTITY history_2.18      "12.03.2008 (kp): Caption added to applet, preview and image, provides also external reference.">
<!ENTITY version           "2.18">
<!ENTITY date              "17.03.2008">

<!ENTITY nbsp              "&#160;">                                      <!-- no-break space = non-breaking space. -->
<!ENTITY ne                "&#8800;">                                     <!-- not equal to, U+2260 ISOtech -->
<!ENTITY equiv             "&#8801;">                                     <!-- identical to, U+2261 ISOtech -->
<!ENTITY le                "&#8804;">                                     <!-- less-than or equal to, U+2264 ISOtech -->
<!ENTITY ge                "&#8805;">                                     <!-- greater-than or equal to, U+2265 ISOtech -->
<!ELEMENT eg-model         (meta*,eg-id,title,modelname,authors,
                           description,files,revision?)>                  <!-- Full information complementing an EG-Models submission. -->
<!ELEMENT meta             EMPTY>                                         <!-- Meta information related to the individual XML document. -->
<!ATTLIST meta generator   CDATA #IMPLIED>                                <!-- Name and version of program which generated this XML file. -->
<!ATTLIST meta date        CDATA #IMPLIED>                                <!-- Date when this XML file was generated. -->
<!ELEMENT eg-id            (#PCDATA)>                                     <!-- Automatically assigned by managers of eg-models after submission, unique model id. -->
<!ELEMENT title            (#PCDATA)>                                     <!-- Multi-word title of whole submission, initial letters are uppercase. -->
<!ELEMENT modelname        (#PCDATA)>                                     <!-- Single word name of this submission, no blanks. -->
        
<!ELEMENT authors          (author+)>                                     <!-- List of authors who created, computed, designed the models. -->
<!ELEMENT author           (firstname,lastname,affiliation,email,url?)>   <!-- Contact address of this author. -->
<!ELEMENT firstname        (#PCDATA)>                                     <!-- First name, middle name, and title of this author, initial letters are uppercase. -->
<!ELEMENT lastname         (#PCDATA)>                                     <!-- Last name of this author, initial letters are uppercase. -->
<!ELEMENT affiliation      (organization,address)>
<!ELEMENT organization     (#PCDATA)>                                     <!-- Empty or university or company where author works, initial letters are uppercase. -->
<!ELEMENT address          (line+)>                                       <!-- Postal address for surface mail, initial letters are uppercase. -->
<!ELEMENT line             (#PCDATA)>                                     <!-- Separator for each address line, initial letters are uppercase. -->
<!ELEMENT email            (#PCDATA)>                                     <!-- Email address of this author, all letters are lowercase. -->
<!ELEMENT url              (#PCDATA)>                                     <!-- Home page of this author. -->

<!ELEMENT revision         (submissiondate,revisiondate*,acceptancedate)> <!-- Automatically assigned by managers of eg-models. -->
<!ELEMENT submissiondate   (#PCDATA)>                                     <!-- Date of first submission of model. -->
<!ELEMENT revisiondate     (#PCDATA)>                                     <!-- Date of submission of a revised model. -->
<!ELEMENT acceptancedate   (#PCDATA)>                                     <!-- Date of acceptance of a model. -->

<!ELEMENT description      (abstract,detail,msc2000,keywords,zentralblatt?,software,references?)>
<!ELEMENT abstract         (#PCDATA)>                                     <!-- One sentence should cover main ideas of this model submission. -->
<!ELEMENT detail           (#PCDATA|p|blockquote)*>                       <!-- Multi-paragraph description of this model including mathematical ideas. -->
                                                                          <!-- Try to fully explain the model rather than to refer to external publications. -->
                                                                          <!-- After the master file, this section is the most important source for information. -->
<!ELEMENT msc2000          (primary,secondary*)>                          <!-- Mathematical Subject Classification 2000. -->
<!ELEMENT primary          (#PCDATA)>                                     <!-- Main subject classification. -->
<!ELEMENT secondary        (#PCDATA)>                                     <!-- Further subject classifications. -->
<!ELEMENT keywords         (keyword+)>                                    <!-- List of self-defined keywords characterizing this model. -->
<!ELEMENT keyword          (#PCDATA)>                                     <!-- Each keyword is self-defined, initial letters are uppercase. -->
<!ELEMENT zentralblatt     (#PCDATA)>                                     <!-- Number under which this model is referenced in Zentralblatt fuer Mathematik. -->
<!ELEMENT software         (#PCDATA)>                                     <!-- Software including version number which generated this file. -->

<!ENTITY % fontstyle       "tt|i|b|big|small">                            <!-- Full set of HTML4.0 fontstyle text markup. -->
<!ENTITY % phrase          "em|code">                                     <!-- Subset of HTML4.0 phrase text markup. -->
<!ENTITY % special         "br|sub|sup">                                  <!-- Subset of HTML4.0 special text markup. -->
<!ENTITY % inline          "#PCDATA|%fontstyle;|%phrase;|%special;">      <!-- Subset of HTML4.0 "text-level" elements. -->
<!ELEMENT p                (%inline;|pre|dl|ol|ul|table|a)*>              <!-- Each paragraph must be enclosed with a tag, and may contain various other tags. -->
<!ELEMENT tt               (%inline;)*>                                   <!-- Renders as teletype or monospaced text. -->
<!ELEMENT i                (%inline;)*>                                   <!-- Renders text as italics text style. -->
<!ELEMENT b                (%inline;)*>                                   <!-- Renders text as bold text style. -->
<!ELEMENT big              (%inline;)*>                                   <!-- Renders text in a "large" font. -->
<!ELEMENT small            (%inline;)*>                                   <!-- Renders text in a "small" font. -->
<!ELEMENT em               (%inline;)*>                                   <!-- Emphasis. -->
<!ELEMENT code             (%inline;)*>                                   <!-- Computer code fragment. -->
<!ELEMENT br               EMPTY>                                         <!-- Forced line break. -->
<!ELEMENT sub              (%inline;)*>                                   <!-- Subscript. -->
<!ELEMENT sup              (%inline;)*>                                   <!-- Superscript. -->
<!ELEMENT pre              (#PCDATA)>                                     <!-- Preformatted text, does not allow formatting elements insidde. -->
<!ELEMENT dl               (dt|dd)+>                                      <!-- Definition list. -->
<!ELEMENT dt               (%inline;)*>                                   <!-- Definition term. -->
<!ELEMENT dd               (%inline;)*>                                   <!-- Definition description. -->
<!ELEMENT ol               (li*)>                                         <!-- Ordered list, using numbers starting at 1. -->
<!ELEMENT ul               (li*)>                                         <!-- Unordered list, using bullets. -->
<!ELEMENT li               (%inline;)*>                                   <!-- List item. -->
<!ELEMENT blockquote       (%inline;|pre|dl|ol|ul|table|p)*>              <!-- Blockquote item. -->
<!ELEMENT table            (tr)+>                                         <!-- Table item. -->
<!ELEMENT tr               (td)+>                                         <!-- Table row. -->
<!ELEMENT td               (%inline;)*>                                   <!-- Table data entry. -->
<!ELEMENT a                (%inline;)*>                                   <!-- Anchor for hyper links. -->
<!ATTLIST a href           CDATA #IMPLIED>                                <!-- URI of hyper link. -->
<!ELEMENT references       (refarticle|refbook|refincollection|refmisc|refurl)*>                                   <!-- References cited in detail section. -->
<!ELEMENT refarticle       (refauthor,reftitle,refjournal,refpages,refyear,refvolume?,refnumber?,reflink?)>        <!-- Articles in journals. -->
<!ATTLIST refarticle       num CDATA #REQUIRED>                                                                    <!-- Consequtive number of this reference. -->
<!ELEMENT refbook          (refauthor,refbooktitle,refpublisher,refyear,reflink?)>                                 <!-- Books. -->
<!ATTLIST refbook          num CDATA #REQUIRED>                                                                    <!-- Consequtive number of this reference. -->
<!ELEMENT refincollection  (refauthor,reftitle,refbooktitle,refeditor?,refpublisher,refpages?,refyear,reflink?)>   <!-- Articles in collections, proceedings. -->
<!ATTLIST refincollection  num CDATA #REQUIRED>                                                                    <!-- Consequtive number of this reference. -->
<!ELEMENT refmisc          (refauthor?,reftitle?,refyear?,refnote?,reflink?)>                                      <!-- Miscellaneous, e.g. preprints. -->
<!ATTLIST refmisc          num CDATA #REQUIRED>                                                                    <!-- Consequtive number of this reference. -->
<!ELEMENT refurl           (refauthor,reftitle,refnote?,reflink)>                                                  <!-- URL to web site or document. -->
<!ATTLIST refurl           num CDATA #REQUIRED>                                                                    <!-- Consequtive number of this reference. -->
<!ELEMENT refauthor        (#PCDATA)>                                     <!-- Name of author, or authors separated by 'and'. -->
<!ELEMENT reftitle         (#PCDATA)>                                     <!-- Title of article or other publications, books have an own element. -->
<!ELEMENT refbooktitle     (#PCDATA)>                                     <!-- Title of book. -->
<!ELEMENT refjournal       (#PCDATA)>                                     <!-- Name of journal. -->
<!ELEMENT refpages         (#PCDATA)>                                     <!-- Page numbers of paper, or number of pages of a book. -->
<!ELEMENT reflink          (#PCDATA)>                                     <!-- Link to a web page or other document like preprint. -->
<!ELEMENT refeditor        (#PCDATA)>                                     <!-- Editor of publication, collection or proceedings. -->
<!ELEMENT refvolume        (#PCDATA)>                                     <!-- Volume number of journal. -->
<!ELEMENT refnumber        (#PCDATA)>                                     <!-- Journal number. -->
<!ELEMENT refnote          (#PCDATA)>                                     <!-- Additional note related to this publication. -->
<!ELEMENT refpublisher     (#PCDATA)>                                     <!-- Publisher. -->
<!ELEMENT refyear          (#PCDATA)>                                     <!-- Year of publication. -->

<!ELEMENT files            (file_master+,
                           (file_preview|file_applet|file_display|file_image|file_original|file_other|file_print)*,
                           file_readme?,
                           filecomment?)>                                 <!-- Properties of submitted files. -->
<!ELEMENT file_master      (filename,filesize)>                           <!-- Master file of submission, most important. -->
<!ELEMENT file_preview     (filename,filesize,imagewidth,imageheight,caption?)>    <!-- Recommended, preview image in preferred size 240*240. -->
<!ELEMENT file_applet      (filename,filesize,displayname?,displaywidth?,displayheight?,caption?)>  <!-- Recommended, size of applet window, preferred size 240*240. -->
<!ELEMENT file_display     (filename,filesize)>                           <!-- Optional, JVD configuration file for camera position in applet display, file_applet elements may reference this file. -->
<!ELEMENT file_image       (filename,filesize,imagewidth,imageheight,caption?)>    <!-- additional image on side bar in preferred size 240*240. -->
<!ELEMENT file_original    (filename,filesize)>                           <!-- Optional, original data set used for producing the master file. -->
<!ELEMENT file_other       (filename,filesize)>                           <!-- Optional, arbitrary other files for explanatory purposes. -->
<!ELEMENT file_print       (filename,filesize)>                           <!-- Optional, file for inclusion of an image of the model in publications. -->
<!ELEMENT file_readme      (filename,filesize)>                           <!-- Optional, readme file on the purpose of the submitted files. -->
<!ATTLIST file_master      format (byu|jvx|obj|poly) "jvx">
<!ATTLIST file_preview     format (gif|jpg) "gif">
<!ATTLIST file_applet      format (byu|jvx|obj|mgs) "jvx">
<!ATTLIST file_display     format (jvd) "jvd">
<!ATTLIST file_image       format (gif|jpg) "gif">
<!ATTLIST file_other       format CDATA #REQUIRED>
<!ATTLIST file_original    format CDATA #REQUIRED>
<!ATTLIST file_print       format (eps|ps|gif|jpg) "eps">
<!ATTLIST file_readme      format (txt) "txt">   
<!ELEMENT filename         (#PCDATA)>                                     <!-- Name should have a base part and a function part, like Pretzel_Master.jvx. -->
<!ELEMENT filesize         (#PCDATA)>                                     <!-- Exact size of this file in bytes. -->
<!ELEMENT displayname      (#PCDATA)>                                     <!-- Name of JVD camera settings file used in applet, JVD file must be specified in separate file_display element too. -->
<!ELEMENT displaywidth     (#PCDATA)>                                     <!-- Width of an applet window. Applets have preferred width=240. -->
<!ELEMENT displayheight    (#PCDATA)>                                     <!-- Height of an applet window. Applets images have preferred height=240. -->
<!ELEMENT imagewidth       (#PCDATA)>                                     <!-- Width of a pixel image. Preview images have preferred width=240. -->
<!ELEMENT imageheight      (#PCDATA)>                                     <!-- Height of a pixel image. Preview images have preferred height=240. -->
<!ELEMENT filecomment      (#PCDATA)>                                     <!-- Additional textual comments on the meaning or purpose of certain files. -->
<!ELEMENT caption          (#PCDATA)>                                     <!-- Name to be displayed below images and applets. -->
