Newer
Older
libconsulte / etc / dtd_mashup / rscart35.dtd
<!-- ******************************************************************* -->
<!--                                                                     -->
<!--                   Royal Society of Chemistry                        -->
<!--                                                                     -->
<!--                   RSC Primary Article DTD 3.5                       -->
<!--                                                                     -->
<!-- ******************************************************************* -->
<!--                                                                     -->
<!-- DTD Ident:     "RSCPA3.5"                                           -->
<!--                                                                     -->
<!-- PUBLIC identifier: "-//RSC//DTD RSC Primary Article DTD 3.5//EN"    -->
<!--                                                                     -->
<!-- DTD filename:  RSCART35.DTD                                         -->
<!--                                                                     -->
<!-- SGML Declaration filename:  RSCART33.DCL                            -->
<!--                                                                     -->
<!-- SGML Open catalog filename (SGML usage):  RSCART3S.CAT              -->
<!-- SGML Open catalog filename (XML usage):  RSCART3X.CAT               -->
<!--                                                                     -->
<!-- Description:   This is the SGML Document Type Definition            -->
<!--                for the primary journal articles of the              -->
<!--                Royal Society of Chemistry.                          -->
<!--                                                                     -->
<!-- Copyright:     Copyright (c) 2000 The Royal Society of Chemistry    -->
<!--                All Rights Reserved                                  -->
<!--                                                                     -->
<!-- Authors:       Richard Light (richard@light.demon.co.uk)            -->
<!--                Neil Hunter   (HUNTERN@rsc.org)                      -->
<!--                                                                     -->
<!-- Date:          3 April 2000                                         -->
<!--                                                                     -->
<!-- Publisher:     The Royal Society of Chemistry                       -->
<!--                                                                     -->
<!-- Address:       Thomas Graham House                                  -->
<!--                Science Park                                         -->
<!--                Milton Road                                          -->
<!--                Cambridge                                            -->
<!--                United Kingdom CB4 4WF                               -->
<!--                                                                     -->
<!-- Tel:           +44 (0)1223 420066                                   -->
<!--                                                                     -->
<!-- ******************************************************************* -->
<!-- Maintenance updates to version 3.3:

     - volumeno, issueno are now optional in journalcit
     - pubplace, editor have been defined
     - citpub has been introduced to avoid the org nesting required by
       publisher
     - section has been introduced as an optional extra in the backmatter
       (with type - so it can be used for corrigenda)
     - emphasis elements have been added to the content model of citation

     plus a note on usage - we will use <date role="accepted"> instead of
     creating a new element
-->
<!-- Maintenance updates to DTD for version 3.4:

     - optional footnote(s) after person in content model of author;
     - change all elements with content model m.text-or-paras to
       m.simple-text-or-paras (allowing subelements within the text);
     - all 'reference' elements now have content model m.emph to allow
       for style changes within the reference string;
     - add a 'qualifier' element to persname, before and after subelements,
       so that footnotes and other non-name material can be added without
       disturbing fname and surname;
     - for TeX, ugraphic now has a 'src2' attribute of type ENTITY.  When required,
       give src2 an entity name that is similar to the 'base' entity, but with
       the suffix 't';
     - the RSC entity set has been 'filled out';
     - 'simple' entities will be added for Charlesworth support;
     - add new arttitle element within %m.citation;
     - there is an 'admin-event' element within art-admin, containing a.type,
       agent (i.e. a person with a role), date and address within a mixed content
       model;
     - within published, volumeref, issueref and pubfront are now optional;
     - the content model for eqntext is now %m.simple-text-or-paras; - note that
       it _can_ be used between paragraphs (requires typesetting support);
     - the element type url has been added to the class 'general', which allows
       it to be used anywhere within text;
     - the 'fixed' DTD version has been changed to '3.4';
     - journalref, volumeref and issueref now have the same content model as
       journal, volume and issue respectively.  This allows links to be replaced
       by the relevant content without invalidating the document;
     - price_code attribute added to article;
     - journal now has an optional repeatable logo element, containing a graphic;
-->
<!-- Maintenance updates to DTD for version 3.5:
     - the 'fixed' DTD version has been changed to '3.5';
     - coden element type added to header information;
     - authgrp within art-front is now optional;
     - org within aff is now [optional and] repeatable; org and address repeatable
       as a pair;
     - <ack> now has an optional title attribute;
     - content model for trans made the same as that for citation. N.B. this
       change is not upwards-compatible.  The previous content model for
       trans allowed citext.  This is replaced by the 'mixed content with
       %emph;' approach offered by %m.citation;
     - email has been added to the %gen; content model class, allowing email
       addresses to appear wherever this class is allowed (which is pretty
       well anywhere in textual content);
     - url and email have been added to the %m.citation; content model class;
     - there is a new element type - <a> - designed to support hyperlinks which 
     	use an image as the clickable link;
     - within the content model for <journalcit>, <link> has been made into an
       'optional extra', so that citations can be supported by e.g. a DOI and a
       COI;
     - <link> now has a type attribute;
     - [usage convention only:] within suppinf, the content of the link
       element should now be 'INFO' or 'CRYSTAL'.  'INFO' corresponds to the
       single value that was previously allowed ('TRUE');
-->

<!-- ================================ -->
<!--         XML/SGML CONFORMANCE     -->
<!-- ================================ -->

<!-- By default the DTD is XML conformant, which means that it cannot contain
     tag omission indicators.  This is indicated by setting the parameter entity
     DTD-IS-XML to the value "INCLUDE", which in turn causes the parameter entity
     DTD-IS-SGML to have the value "IGNORE".  This setting can be overridden by
     setting DTD-IS-XML to "IGNORE" in the document's internal subset.

     The principal effect of this XML option is to remove the tag omission
     indicators from element declarations.
-->

<!ENTITY % DTD-IS-XML "INCLUDE">
<![ %DTD-IS-XML; [
<!ENTITY % DTD-IS-SGML "IGNORE">
]]>
<!ENTITY % DTD-IS-SGML "INCLUDE">

<![ %DTD-IS-XML; [
<!ENTITY % no-omission "">
<!ENTITY % omit-end-tag "">
]]>

<![ %DTD-IS-SGML; [
<!ENTITY % no-omission "- -">
<!ENTITY % omit-end-tag "- O">
]]>


<!-- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx -->
<!--                                                                     -->
<!--                       CHARACTER ENTITIES                            -->
<!--                                                                     -->
<!--  Character entity sets are now declared using PUBLIC identifiers.   -->
<!--                                                                     -->
<!--  Also, the ISO sets have been rationalised into a single set, so    -->
<!--  that it is easier to decide which entity should be used in each    -->
<!--  case.                                                              -->
<!--                                                                     -->
<!-- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx -->

<![ %DTD-IS-XML; [
<!ENTITY % ISOUnicode PUBLIC "-//RSC//ISO Entities RSC version 1.0//EN" 
"entities/isoxml_s.ent" >
<!ENTITY % RSCSpecific PUBLIC "-//RSC//ENTITIES Additional Symbols 2.0//EN" 
"entities/rscxml_s.ent" >
<!ENTITY % RSCCharacters PUBLIC "-//RSC//RSC characters version 1.0//EN" 
"entities/rsc_x.ent" >
]]>

<![ %DTD-IS-SGML; [
<!ENTITY % ISOUnicode PUBLIC "-//RSC//ISO Entities RSC version 1.0//EN" 
"entities/isosgm_s.ent"  >
<!ENTITY % RSCSpecific PUBLIC "-//RSC//ENTITIES Additional Symbols 2.0//EN" 
"entities/rscsgm_s.ent" >
<!ENTITY % RSCCharacters PUBLIC "-//RSC//RSC characters version 1.0//EN" 
"entities/rsc_s.ent" >
]]>

<!--
%ISOUnicode;
%RSCSpecific;
-->
%RSCCharacters;

<!-- Default entity allows undeclared entities to be mapped
     automatically to a warning message.  This feature is
     not supported in XML: -->
<![ %DTD-IS-SGML; [
<!ENTITY #DEFAULT " *** UNDECLARED ENTITY *** " >
]]>

<!-- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx -->
<!--                                                                     -->
<!--                            NOTATIONS                                -->
<!--                                                                     -->
<!-- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx -->

<!NOTATION bmp PUBLIC
"+//ISBN 0-7923-9432-1::Graphic Notation//NOTATION Microsoft Windows bitmap//EN" "">
<!NOTATION cgm PUBLIC
  "-//USA-DCD//NOTATION Computer Graphics Metafile//EN" "">
<!NOTATION cgm-binary PUBLIC
  "ISO 8632/3//NOTATION Binary encoding//EN" "">
<!NOTATION cgm-char PUBLIC
  "ISO 8632/2//NOTATION Character encoding//EN" "">
<!NOTATION cgm-clear PUBLIC
  "ISO 8632/4//NOTATION Clear text encoding//EN" "">
<!NOTATION eps PUBLIC
  "+//ISBN 0-7923-9432-1::Graphic Notation//NOTATION Adobe Systems
  Encapulated PostScript//EN" "">
<!NOTATION fax PUBLIC
  "-//USA-DOD//NOTATION CCITT Group 4 Facsimile Type 1 Untiled Raster//EN" "">
<!NOTATION gif PUBLIC
  "+//ISBN 0-7923-9432-1::Graphic Notation//NOTATION Compuserve Graphic
  Interchange Format//EN" "">
<!NOTATION iges	PUBLIC
  "-//USA-DOD//NOTATION (ASME/ANSI Y14.26M-1987) Initial Graphics
  Exchange Specification//EN" "">
<!NOTATION jpeg PUBLIC
  "ISO/IEC 10918:1993//NOTATION Digital Compression and Coding of
  Continuous-tone Still Images (JPEG)//EN" "">
<!NOTATION mpeg1aud PUBLIC
  "ISO/IEC 11172-3:1993//NOTATION Information technology -
  Coding of moving pictures and associated audio for digital storage
  media at up to about 1,5 Mbit/s - Part 3: Audio//EN" "">
<!NOTATION mpeg1vid PUBLIC
  "ISO/IEC 11172-2:1993//NOTATION Information technology -
  Coding of moving pictures and associated audio for digital storage
  media at up to about 1,5 Mbit/s - Part 2: Video//EN" "">
<!NOTATION mpeg2aud PUBLIC
  "ISO/IEC 13818-3:1995//NOTATION Coding of moving pictures and
  associated audio: Part 3. Audio//EN" "">
<!NOTATION mpeg2vid PUBLIC
  "ISO/IEC 13818-2:1995//NOTATION Information technology -
  Coding of moving pictures and associated audio: Part 2. Video//EN" "">
<!NOTATION pcx PUBLIC
  "+//ISBN 0-7923-9432-1::Graphic Notation//NOTATION ZSoft PCX bitmap//EN" "">
<!NOTATION pict PUBLIC
  "+//ISBN 0-7923-9432-1::Graphic Notation//NOTATION Apple Computer Quickdraw
  Picture//EN" "">
<!NOTATION sgml PUBLIC
  "+//ISO 8879:1986//NOTATION Information processing - Text and office systems -
  Standard Generalized Markup Language (SGML)//EN" "">
<!NOTATION tex PUBLIC
  "+//ISBN 0-201-13448-9::Knuth//NOTATION The TeXbook//EN" "">
<!NOTATION tiff PUBLIC
  "+//ISBN 0-7923-9432-1::Graphic Notation//NOTATION Aldus/Microsoft Tagged
  Interchange File Format//EN" "">
<!NOTATION wmf PUBLIC
  "+//ISBN 0-7923-9432-1::Graphic Notation//NOTATION Microsoft Windows
  Metafile//EN" "">

<!-- Notations for which no Public identifier has been traced:           -->

<!NOTATION chemdraw SYSTEM "ChemDraw">
<!NOTATION eqn SYSTEM "Equation">
<!NOTATION pdf SYSTEM "Portable Document File">
<!NOTATION ps SYSTEM "PostScript">


<!-- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx -->
<!--                                                                     -->
<!--                       PARAMETER ENTITIES                            -->
<!--                                                                     -->
<!-- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx -->

                 <!-- ****************************** -->
                 <!--                                -->
                 <!--       GENERAL OPTIONS          -->
                 <!--                                -->
                 <!-- ****************************** -->

<!-- ================================ -->
<!--         ELEMENT CLASSES          -->
<!-- ================================ -->

<!-- new class of font-modifiers created to support font changes
     within the stack element type, 1.4.1999: -->
<!ENTITY % font-modifiers "roman|it|bo|bi|scp|sansserif" >
<!ENTITY % emph        "%font-modifiers;|ul|sup|inf" >
<!ENTITY % gen         "list|footnote|note|overbar|underbar|stack|fraction|
                        warning|unknown|email|url">
<!ENTITY % chem        "compname">
<!-- these can occur within OR between paragraphs: -->
<!ENTITY % para-graphic "ugraphic|eqntext" >
<!ENTITY % graphic     "figure|scheme|plate|chart" >
<!ENTITY % eqn         "equation" >
<!ENTITY % box         "box" >
<!-- table added to 'table' elements to allow un-numbered tables: -->
<!ENTITY % tab         "table-entry|table" >
<!ENTITY % ref         "compoundref|textref|figref|schemref|plateref|chartref|
                        eqnref|boxref|tableref|citref|fnoteref|affref" >
<!-- edits added RBL 13.5.1998 to support editorial comments in the text:-->
<!ENTITY % edits       "editnote">
<!ENTITY % text-elts   "%emph;|%gen;|%para-graphic;|%chem;|%ref;|%edits;"  >
<!ENTITY % inter-para-elts "%graphic;|%para-graphic;|%eqn;|%box;|%tab;"  >
<!ENTITY % para-elts   "%text-elts;|%graphic;|%eqn;|%box;|%tab;"  >
<!ENTITY % art-front-matter
                       ""  >


<!-- ================================ -->
<!--         ATTRIBUTE VALUES         -->
<!-- ================================ -->

<!ENTITY % a.required-id "
          id             ID             #REQUIRED">
<!ENTITY % a.id "
          id             ID             #IMPLIED" >
<!ENTITY % a.required-idrefs "
          idrefs         IDREFS         #REQUIRED">
<!ENTITY % a.idrefs "
          idrefs         IDREFS         #IMPLIED
          presence       (missing|notmissing) 'notmissing' ">
<!ENTITY % a.type "
          type           CDATA          #IMPLIED" >
<!ENTITY % a.src "
          src            ENTITY         #IMPLIED" >
<!ENTITY % a.dtd "
          dtd            CDATA  #FIXED 'RSCPA3.5' " >
<!ENTITY % a.role "
          role           CDATA          #IMPLIED" >
<!ENTITY % a.graphic "
          height        NMTOKEN                  #IMPLIED
          width         NMTOKEN                  #IMPLIED
          pos           (float|fixed)            #IMPLIED" >
<!ENTITY % a.background "
          background    ENTITY         #IMPLIED" >

<!-- ================================ -->
<!--         CONTENT MODELS           -->
<!-- ================================ -->

<!ENTITY % m.characters-only "(#PCDATA|%font-modifiers;)*" >
<!ENTITY % m.emph "(#PCDATA|%emph;)*" >
<!ENTITY % m.simple-text "(#PCDATA|%text-elts;)*" >
<!ENTITY % m.text-or-link "(#PCDATA|%text-elts;|link)*" >
<!-- FOOTNOTE added to table cell model, 30.1.1999; then removed 14.5.1999 when added to
     general text model ...  -->
<!ENTITY % m.table-cell-text "#PCDATA|%text-elts;|%graphic;|%eqn;">
<!ENTITY % m.para-text   "(#PCDATA|%para-elts;)*" >
<!ENTITY % m.simple-text-or-paras "(#PCDATA|%text-elts;|p)*" >
<!-- 15.9.1999: map all text-or-paras references to simple-text-or-paras:
  m.text-or-paras was:
  <!ENTITY % m.text-or-paras "(#PCDATA|p)*" >
-->
<!ENTITY % m.text-or-paras "%m.simple-text-or-paras;" >
<!ENTITY % m.text-or-sections "(#PCDATA|section)*" >
<!ENTITY % m.citation "(#PCDATA|citauth|title|year|volumeno|issueno|arttitle|biblscope|editor|
                       citpub|pubplace|link|url|email|trans|%emph;)*">
<!ENTITY % m.org "(link) | (orgname+, address*)" >
<!ENTITY % m.address
           "(city|postcode|state|country|addrelt)+">
<!ENTITY % m.journal "((link) |
                       (title+, sercode, byline*, logo*, publisher, issn+, coden?,
                        board*, info*, advert*, cpyrt, volume*))">

<!-- ================================ -->
<!--         ELEMENT LINKING          -->
<!--                                  -->
<!-- The linking attributes used here -->
<!-- follow TEI Extended Pointer      -->
<!-- syntax.  This could be replaced  -->
<!-- by a different linking syntax    -->
<!-- if this is desirable.  However,  -->
<!-- TEI offers compact notation plus -->
<!-- the ability to use PUBLIC        -->
<!-- identifiers, which put it ahead  -->
<!-- of both HyTime and XML pointers  -->
<!-- at present.                      -->
<!--                                  -->
<!-- ================================ -->

<!ENTITY % a.pointer "
          doc           ENTITY          #IMPLIED
          from          CDATA           #IMPLIED
          to            CDATA           #IMPLIED"  >
<!ELEMENT link          %no-omission;   %m.simple-text;  >
<!-- 3.5: type attribute added, for e.g. COIs and DOIs: -->
<!ATTLIST link %a.type;
               %a.pointer; >

<!-- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx -->
<!--                                                                     -->
<!--                   ELEMENTS AND ATTRIBUTES                           -->
<!--                                                                     -->
<!-- Attributes are now declared below the corresponding element         -->
<!-- declaration, rather than at the end of the DTD                      -->
<!--                                                                     -->
<!-- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx -->



                 <!-- ****************************** -->
                 <!--                                -->
                 <!--       LOW-LEVEL CONCEPTS       -->
                 <!--                                -->
                 <!--  Concepts which are used in a  -->
                 <!--  number of different contexts. -->
                 <!--                                -->
                 <!-- ****************************** -->

<!-- ================================ -->
<!--  General                         -->
<!-- ================================ -->

<!ELEMENT footnote       %no-omission;  %m.text-or-paras;>
<!ATTLIST footnote %a.required-id; >
<!ELEMENT note           %no-omission;  %m.text-or-paras;>
<!ELEMENT overbar        %no-omission;  %m.simple-text;  >
<!ELEMENT underbar       %no-omission;  %m.simple-text;  >
<!-- stack, above and below added 1.4.1999: -->
<!ELEMENT stack          %no-omission;  (above, below)   >
<!ELEMENT above          %no-omission;  %m.characters-only;  >
<!ELEMENT below          %no-omission;  %m.characters-only;  >
<!ELEMENT fraction       %no-omission;  (numer,denom)    >
<!ATTLIST fraction
          shape (case|sol) #IMPLIED >
<!ELEMENT numer          %no-omission;  %m.simple-text;  >
<!ELEMENT denom          %no-omission;  %m.simple-text;  >
<!ELEMENT warning        %no-omission;  %m.simple-text;  >
<!ELEMENT unknown        %no-omission;  %m.simple-text;  >
<!ATTLIST unknown %a.type; >

<!ELEMENT title          %no-omission;  %m.simple-text-or-paras;>
<!ATTLIST title %a.type; >
<!ELEMENT subtitle       %no-omission;  %m.simple-text-or-paras;>
<!ELEMENT sertitle       %no-omission;  %m.simple-text-or-paras;>
<!ATTLIST sertitle %a.type; >
<!-- arttitle added in version 3.4; declared in m.citation: -->
<!ELEMENT arttitle       %no-omission;  %m.simple-text-or-paras;>

<!ELEMENT list           %no-omission;  (head?,item+)    >
<!ATTLIST list %a.type; >
<!ELEMENT item           %no-omission;  %m.simple-text-or-paras;    >


<!-- ================================ -->
<!--  Dates and (potentially) times   -->
<!-- ================================ -->

<!ENTITY % m.date
           "year,month?,day?">
<!ENTITY % a.date "
          year           CDATA          #IMPLIED
          month          CDATA          #IMPLIED
          day            CDATA          #IMPLIED" >
<!ELEMENT daterange      %no-omission;  (date,date)    >
<!ELEMENT date           %no-omission;  (%m.date;)     >
<!ATTLIST date %a.role;  >
<!ELEMENT year           %no-omission;  (#PCDATA)      >
<!ELEMENT month          %no-omission;  (#PCDATA)      >
<!ELEMENT day            %no-omission;  (#PCDATA)      >

<!-- ================================ -->
<!--  Graphics                        -->
<!-- ================================ -->

<!ELEMENT figure         %no-omission;  (title?)       >
<!ATTLIST figure
          %a.required-id;
          %a.src;
          %a.graphic; >
<!ELEMENT scheme         %no-omission;  (title?)       >
<!ATTLIST scheme
          %a.required-id;
          %a.src;
          %a.graphic; >
<!ELEMENT plate          %no-omission;  (title?)       >
<!ATTLIST plate
          %a.required-id;
          %a.src;
          %a.graphic; >
<!ELEMENT chart          %no-omission;  (title?)       >
<!ATTLIST chart
          %a.required-id;
          %a.src;
          %a.graphic; >
<!ELEMENT ugraphic       %omit-end-tag;  EMPTY         >
<!ATTLIST ugraphic
          %a.required-id;
          %a.src;
          src2           ENTITY         #IMPLIED
          %a.graphic;
          display       (displayed|inline)    #IMPLIED >
<!ELEMENT icgraphic      %omit-end-tag;  EMPTY         >
<!ATTLIST icgraphic
          %a.required-id;
          %a.src;
          %a.graphic; >

<!-- ================================ -->
<!--  Floating boxes                  -->
<!-- ================================ -->

<!ELEMENT box           %no-omission;  (section)          >
<!ATTLIST box
          %a.required-id;
          height        NMTOKEN                  #IMPLIED
          width         NMTOKEN                  #IMPLIED
          tint          NMTOKEN                  #IMPLIED
          pos           (fixed)                  #IMPLIED >

<!-- ================================== -->
<!--  Links to supplementary data, etc. -->
<!-- ================================== -->

<!ELEMENT suppinf        %no-omission; (link)          >
<!ELEMENT fulltext       %no-omission; (link)          >
<!-- articleref is used to point to the article, e.g. for generating index entries -->
<!ELEMENT articleref     %no-omission; (link)          >

<!-- ================================ -->
<!--  Equations                       -->
<!-- ================================ -->

<!ELEMENT equation       %no-omission;  (no?,(eqntext|ugraphic)) >
<!ATTLIST equation %a.required-id; >
<!-- 3.4: eqntext can now be a sequence of 'paragraphs' representing multi-line
     equations: -->
<!ELEMENT eqntext        %no-omission;  %m.simple-text-or-paras;>
<!ATTLIST eqntext
          display       (displayed|inline)    #IMPLIED >

<!-- ================================ -->
<!--  Compounds                       -->
<!-- ================================ -->

<!ELEMENT compoundgrp    %no-omission;  (compound*)    >
<!-- need to refine content model for compound definitions? -->
<!ELEMENT compound       %no-omission;  (compoundref*)>
<!ATTLIST compound %a.required-id; >
<!ELEMENT compname       %no-omission;  %m.text-or-link; >

<!-- ================================ -->
<!--  Tables                          -->
<!-- ================================ -->

<!-- table-entry acts as a 'cover element' so that inline tables
     and 'tables-as-graphics' can appear in a single number sequence.
     It takes a title element, which is to be used in preference
     to <table><title> to allow numbering-through of 'real' and
     'graphic' tables:  -->
<!ELEMENT table-entry    %no-omission;  (title?,subtitle?,(table|ugraphic)) >
<!ATTLIST table-entry %a.required-id; >

<!-- local copy of CALS DTD fragment, with extra (standard CALS) <tfoot>
     element type, and (RSC-specific) INDENT attribute: -->

<!-- tfoot and subfields removed from here; tfoot redeclared in the CALS tbl.hdft.mdl pe
     so it has the same content model as thead:
**** GONE ****
<!ELEMENT tfoot         %no-omission; (title?,colspec*,(tnotes|tfnotes)*) >
<!ELEMENT tnotes        %no-omission; (row+|p+)           >
<!ELEMENT tfnotes       %no-omission; (tfnote)+           >
<!ELEMENT tfnote        %no-omission; (row+|p+)           >
**** GONE ****
-->

<!-- header/footer model changed to full CALS form: -->
<!ENTITY % tbl.hdft.mdl                "(colspec*,row+)">

<!-- yesorno pre-declared here so SPANSPEC can use it: -->
<!-- no if zero(s),yes if any other digits value -->
<!ENTITY % yesorno 'CDATA'  >
<!-- titles can't be set to null - but should use higher-level title instead: -->
<!ENTITY % titles "title?,subtitle?">
<!ENTITY % tbl.table-main.mdl "tgroup+">
<!-- was the following, but tfoot has its own place after thead:
<!ENTITY % tbl.table-main.mdl "tgroup+,tfoot?">
-->
<!-- redefine the table attributes to include ORIENT (from the full
     CALS table model): -->
<!ENTITY % tbl.table.att        "
           orient      (port|land)     #IMPLIED
           pgwide      %yesorno;       #IMPLIED ">
<!-- don't have an exception here (for XML's sake): table name isn't present in the cell
     content model anyway -->
<!ENTITY % tbl.table.excep "">
<!-- tgroup has tfoot (CALS format) in addition to interoperable subset: -->
<!-- can't do this in XML (declares two element types in one go):
<!ENTITY % tbl.hdft.name        "(thead|tfoot)">
-->
<!ELEMENT tfoot %no-omission; %tbl.hdft.mdl; >
<!ENTITY % tbl.tgroup.mdl "colspec*,thead?,tfoot?,tbody">

<!-- this supports the RSC indent attribute: -->
<!ENTITY % tbl.entry.att "
        indent   NMTOKEN   #IMPLIED" >
<!-- paracon is the content model for table cells.  This allows anything that can
     occur within a paragraph: -->
<!ENTITY % paracon "%m.table-cell-text;">

<!ENTITY % calstbls PUBLIC "-//OASIS//DTD Exchange Table Model 19960430//EN" "calstab1.dtd">
%calstbls;

<!-- ================================ -->
<!--  References                      -->
<!-- ================================ -->

<!-- 3.4: all references given m.emph content instead of #PCDATA -->

<!ELEMENT compoundref    %no-omission;  %m.emph;     >
<!ATTLIST compoundref %a.idrefs; >
<!ELEMENT textref        %no-omission;  %m.emph;       >
<!ATTLIST textref %a.idrefs; >
<!ELEMENT figref         %no-omission;  %m.emph;       >
<!ATTLIST figref %a.idrefs; >
<!ELEMENT schemref       %no-omission;  %m.emph;       >
<!ATTLIST schemref %a.idrefs; >
<!ELEMENT plateref       %no-omission;  %m.emph;       >
<!ATTLIST plateref %a.idrefs; >
<!ELEMENT chartref       %no-omission;  %m.emph;       >
<!ATTLIST chartref %a.idrefs; >
<!ELEMENT eqnref         %no-omission;  %m.emph;       >
<!ATTLIST eqnref %a.idrefs; >
<!ELEMENT boxref         %no-omission;  %m.emph;       >
<!ATTLIST boxref %a.idrefs; >
<!ELEMENT tableref       %no-omission;  %m.emph;       >
<!ATTLIST tableref %a.idrefs; >
<!ELEMENT citref         %no-omission;  %m.emph;       >
<!ATTLIST citref %a.idrefs;
                 position (super|baseline) #IMPLIED    >
<!ELEMENT fnoteref       %no-omission;  %m.emph;       >
<!ATTLIST fnoteref %a.idrefs; >
<!ELEMENT affref         %no-omission;  %m.emph;       >
<!ATTLIST affref %a.idrefs; >

<!-- ================================ -->
<!--  Emphasis                        -->
<!-- ================================ -->

<!-- ... by font changes: -->
<!ELEMENT roman    %no-omission;  %m.simple-text;        >
<!ELEMENT it       %no-omission;  %m.simple-text;        >
<!ELEMENT bo       %no-omission;  %m.simple-text;        >
<!ELEMENT bi       %no-omission;  %m.simple-text;        >
<!ELEMENT scp      %no-omission;  %m.simple-text;        >
<!-- sansserif added 1.4.1999: -->
<!ELEMENT sansserif %no-omission;  %m.simple-text;       >

<!-- ... by marks and placement shifts: -->
<!ELEMENT ul       %no-omission;  %m.simple-text;        >
<!ELEMENT sup      %no-omission;  %m.simple-text;        >
<!ELEMENT inf      %no-omission;  %m.simple-text;        >

<!-- ================================ -->
<!--  Other                           -->
<!-- ================================ -->

<!ELEMENT head           %no-omission;  %m.text-or-paras;>
<!ELEMENT no             %no-omission;  (#PCDATA)      >
<!ELEMENT p              %no-omission;  %m.para-text;    >

<!-- ================================ -->
<!--  Editorial comments:             -->
<!-- ================================ -->

<!-- editnote element added RBL 13.5.1998:           -->
<!ELEMENT editnote       %no-omission;  (note,who,date)>
<!ATTLIST editnote
          %a.type; >
<!ELEMENT who            %no-omission;  %m.simple-text;  >


                 <!-- ****************************** -->
                 <!--                                -->
                 <!--      JOURNAL INFORMATION       -->
                 <!--                                -->
                 <!-- ****************************** -->


<!-- ================================ -->
<!--                                  -->
<!-- ================================ -->

<!ELEMENT journal        %no-omission;  %m.journal;    >
<!ATTLIST journal %a.required-id; >
<!ELEMENT sercode        %no-omission;  (#PCDATA)      >
<!ELEMENT byline         %no-omission;  %m.simple-text;  >
<!ATTLIST byline %a.type; >
<!ELEMENT logo           %no-omission;  (ugraphic)       >
<!ATTLIST logo %a.type; >
<!ELEMENT publisher      %no-omission;  (%m.org;)      >
<!ATTLIST publisher %a.id; >
<!ELEMENT issn           %no-omission;  (#PCDATA)      >
<!-- 3.5: type attribute added: -->
<!ATTLIST issn %a.type; >
<!-- 3.5: coden added to journal contents: -->
<!ELEMENT coden          %no-omission;  (#PCDATA)      >
<!ELEMENT board          %no-omission;  ((link) |
                                         (title?, (group|member)*))>
<!ATTLIST board %a.id; >
<!ELEMENT group          %no-omission;  (title?, member*)>
<!ELEMENT member         %no-omission;  (role?, person*)>
<!ELEMENT role           %omit-end-tag; %m.simple-text;   >
<!ELEMENT info           %no-omission;  (link|(section+))>
<!-- the types of information could be an open-ended list -->
<!ATTLIST info %a.id;
               type     (author|illustration|distribution) 'author'
               level    (full|brief|paragraph)    'full' >
<!-- include grants information as 'adverts' -->
<!ELEMENT advert         %no-omission;  (link|(section+))>
<!ATTLIST advert %a.id;
                 %a.type; >
<!ELEMENT cpyrt          %no-omission;  %m.simple-text;  >
<!ELEMENT confgrp        %no-omission;  (conference*)    >
<!ATTLIST confgrp %a.id; >


                 <!-- ****************************** -->
                 <!--                                -->
                 <!--      VOLUME INFORMATION        -->
                 <!--                                -->
                 <!--  Information relating to a     -->
                 <!--  single volume of a journal.   -->
                 <!--                                -->
                 <!-- ****************************** -->

<!ELEMENT volume         %no-omission;  ((link) |
                                         (journalref, volumeno, date, issue*))>
<!ATTLIST volume %a.required-id; >
<!ELEMENT journalref     %no-omission;  %m.journal;    >
<!ELEMENT volumeno       %no-omission;  (#PCDATA)      >

                 <!-- ****************************** -->
                 <!--                                -->
                 <!--       ISSUE INFORMATION        -->
                 <!--                                -->
                 <!--  Information relating to a     -->
                 <!--  single issue of a journal.    -->
                 <!--                                -->
                 <!-- ****************************** -->

<!-- ================================ -->
<!--     ISSUE-RELATED ENTITIES       -->
<!-- ================================ -->

<!ENTITY % issue-front-and-back-matter
           "(board|issue-toc|index|advert|info|confgrp)*">

<!-- ================================ -->
<!--          ISSUE ELEMENTS          -->
<!-- ================================ -->

<!ELEMENT issue          %no-omission;  ((link) |
                                         (journalref?, volumeref?,
                                          issueno, issueid?,
                                          issue-front?,
                                          article*,
                                          issue-back?))>
<!ATTLIST issue %a.required-id;
                dtd            CDATA  #FIXED 'RSCPA3.5'
                %a.type; >

<!ELEMENT volumeref      %no-omission;  ((link) |
                                         (journalref?, volumeno, date?, issue*))>
<!ELEMENT issueno        %no-omission;  (#PCDATA)      >
<!ELEMENT issueid        %no-omission;  (#PCDATA)      >
<!ELEMENT issue-front    %no-omission;  (%issue-front-and-back-matter;)>
<!ELEMENT issue-back     %no-omission;  (%issue-front-and-back-matter;)>
<!ELEMENT issue-toc      %no-omission;  (toc-head?, toc-entry*)>
<!-- toc-head may require a more complex structure: see examples -->
<!ELEMENT toc-head       %no-omission;  %m.simple-text;  >
<!ELEMENT toc-entry      %no-omission;  %m.text-or-paras;>
<!-- this index structure may not be necessary: the typesetter may generate it
     post-SGML -->
<!ELEMENT index          %no-omission;  (head?, index-entry*)>
<!ELEMENT index-entry    %no-omission;  (value, articleref+)>
<!ELEMENT value          %no-omission;  (#PCDATA)      >


                 <!-- ****************************** -->
                 <!--                                -->
                 <!--      ARTICLE INFORMATION       -->
                 <!--                                -->
                 <!-- ****************************** -->

<!ELEMENT article        %no-omission; ((link) |
                                        (art-admin?, published*, art-links?,
                                         art-front?, art-body?, appmat?, art-back?))>
<!-- The TYPE attribute is used to hold the 'class' of article (feature, communication, etc.)
     By default it is an 'ordinary' article for the journal in question.
     3.5: 'background' attribute added: -->
<!ATTLIST article
                  dtd   CDATA  #FIXED 'RSCPA3.5'
                  price-code (free|premium|review) 'free'
                  %a.type;
                  %a.background;>
<!ELEMENT art-admin      %no-omission; (ms-id,doi?,pii?,sici?,office?,
                                        received*,date*,admin-event*) >
<!ELEMENT ms-id          %no-omission;  (#PCDATA)      >
<!ELEMENT doi            %no-omission;  (#PCDATA)      >
<!ELEMENT pii            %no-omission;  (#PCDATA)      >
<!ELEMENT sici           %no-omission;  (#PCDATA)      >
<!ELEMENT office         %no-omission;  (#PCDATA)      >
<!ELEMENT received       %no-omission;  (city?,date)   >
<!-- admin-event added in 3.4 as a placeholder for RSC management information: -->
<!ELEMENT admin-event    %no-omission;  (#PCDATA|agent|address|date|admin-event)* >
<!ATTLIST admin-event %a.type; >
<!-- agent added in 3.4 to encode a person playing a role in a management event: -->
<!ELEMENT agent          %no-omission;  (person)       >
<!ATTLIST agent %a.role;  >
<!-- need to provide structure here that can form a self-contained citation: -->
<!ELEMENT published      %no-omission; ((journalref,volumeref?,issueref?,pubfront?)|citext) >
<!ATTLIST published %a.type;
                    %a.pointer; >
<!ELEMENT pubfront       %no-omission;  (fpage,lpage?,no-of-pages,date) >
<!ELEMENT fpage          %no-omission;  (#PCDATA)         >
<!ELEMENT lpage          %no-omission;  (#PCDATA)         >
<!ELEMENT no-of-pages    %no-omission;  (#PCDATA)         >
<!ELEMENT issueref       %no-omission;  ((link) |
                                         (journalref?, volumeref?,
                                          issueno, issueid?,
                                          issue-front?,
                                          article*,
                                          issue-back?))>
<!ELEMENT art-links      %no-omission;  (suppinf|fulltext)* >

<!-- ================================ -->
<!--     ARTICLE FRONT MATTER         -->
<!-- ================================ -->

<!-- 3.5: authgrp now optional: -->
<!ELEMENT art-front       %no-omission; ((link)|(titlegrp,authgrp?,conference?,
                                                 art-toc-entry?,arttoc?,dedicate?,biography*,
                                                 abstract*,subject*,keyword*)) >
<!ELEMENT titlegrp        %no-omission; (title+)           >
<!ELEMENT authgrp         %no-omission; (author+,aff+)     >
<!ELEMENT author          %no-omission; (person,footnote*) >
<!ATTLIST author
          aff IDREFS #IMPLIED
          key CDATA  #IMPLIED
          role (princ|corres) #IMPLIED >
<!-- 3.5: org made repeatable; org and address repeatable as a pair: -->
<!ELEMENT aff             %no-omission;  ((org*, address)+, (phone|fax|email|url)*) >
<!ATTLIST aff %a.required-id; >
<!ELEMENT art-toc-entry   %no-omission;  (ictext?,icgraphic?) >
<!ELEMENT ictext          %no-omission;  %m.text-or-paras; >
<!ELEMENT arttoc          %no-omission;  (toc-head?, toc-entry*)>
<!ELEMENT dedicate        %no-omission;  %m.text-or-paras; >
<!ELEMENT abstract        %no-omission;  %m.text-or-paras; >
<!-- 3.5: subject element type added, to allow broad categorisation of articles: -->
<!ELEMENT subject         %no-omission;  %m.simple-text;   >
<!ATTLIST subject %a.type; >
<!ELEMENT keyword         %no-omission;  %m.simple-text;   >
<!ELEMENT pubname         %no-omission;  %m.simple-text;   >
<!-- ADDRESS removed from LOCATION contents; ADDRELT added; order relaxed.
     RBL, 13.5.1998:                                                     -->
<!ELEMENT location           %no-omission;  (city|postcode|state|country|addrelt)+  >

<!-- ================================ -->
<!--     ARTICLE BODY MATTER          -->
<!-- ================================ -->

<!ELEMENT art-body        %no-omission; (section+|news-section+)     >

<!ELEMENT section         %no-omission; (no?,title?,(p|%inter-para-elts;)*,deflist*,subsect1*)       >
<!ATTLIST section %a.id;
                  %a.type; >
<!ELEMENT subsect1        %no-omission; (no?,title?,(p|%inter-para-elts;)*,deflist*,subsect2*)       >
<!ATTLIST subsect1 %a.id; >
<!ELEMENT subsect2        %no-omission; (no?,title?,(p|%inter-para-elts;)*,deflist*,subsect3*)       >
<!ATTLIST subsect2 %a.id; >
<!ELEMENT subsect3        %no-omission; (no?,title?,(p|%inter-para-elts;)*,deflist*,subsect4*)       >
<!ATTLIST subsect3 %a.id; >
<!ELEMENT subsect4        %no-omission; (no?,title?,(p|%inter-para-elts;)*,deflist*,subsect5*)       >
<!ATTLIST subsect4 %a.id; >
<!ELEMENT subsect5        %no-omission; (no?,title?,(p|%inter-para-elts;)*,deflist*,subsect6*)       >
<!ATTLIST subsect5 %a.id; >
<!ELEMENT subsect6        %no-omission; (no?,title?,(p|%inter-para-elts;)*,deflist*)>
<!ATTLIST subsect6 %a.id; >
<!ELEMENT deflist         %no-omission; (head?,def+)   >
<!ELEMENT def             %no-omission; (term,dd)      >
<!ELEMENT term            %no-omission; %m.simple-text;  >
<!ELEMENT dd              %no-omission; %m.text-or-paras;>

<!-- 3.5: 'news section' and related element types added: -->
<!ELEMENT news-section    %no-omission; (title?, (news-section|news-article|news-item|book-review|advert|info|confgrp|p|%inter-para-elts;))* >
<!ATTLIST news-section %a.id;
                       %a.type; >
<!ELEMENT news-article    %no-omission; (art-front?, art-body?, appmat?, art-back?) >
<!ATTLIST news-article %a.id;
                       %a.type; >
<!ELEMENT news-item       %no-omission; (title?,authgrp?,abstract?,(p|%inter-para-elts;)*,footer?)>
<!ATTLIST news-item %a.id; >
<!ELEMENT book-review     %no-omission; (citation,authgrp?,(p|%inter-para-elts;)+) >
<!ELEMENT footer          %no-omission; (p+)>

 
<!-- ================================ -->
<!--     ARTICLE BACK MATTER          -->
<!-- ================================ -->

<!ELEMENT appmat          %no-omission; (appendix)+    >
<!ELEMENT appendix        %no-omission; (no?,section+) >
<!ATTLIST appendix %a.id; >
<!ELEMENT art-back        %no-omission; (ack?,biblist,compoundgrp,section*)>
<!-- fnotes removed 14.5.1999:
<!ELEMENT fnotes          %no-omission; (footnote)+    >
-->
<!ELEMENT ack             %no-omission; %m.text-or-paras;>
<!-- 3.5: optional title attribute: can include a 'section number': -->
<!ATTLIST ack
          title  CDATA #IMPLIED >
<!ELEMENT biblist         %no-omission; (#PCDATA|citgroup)* >
<!-- title attribute added for non-standard titles.  3.5: can include a
     'section number': -->
<!ATTLIST biblist
          title  CDATA #IMPLIED >

<!-- ================================ -->
<!--  BIBLIST sub-elements            -->
<!-- ================================ -->

<!ELEMENT citgroup        %no-omission; (no?,(citext|journalcit|citation|citgroup)+) >
<!ATTLIST citgroup %a.required-id; >
<!-- journalcit added RBL, 2.4.1999 to deal with 'simple' journal article
     citations.  Anything that doesn't match this model can go as a
     CITATION (including non-standard journal article citations).
     7.4.2000: link made into an 'optional extra', so that citations
     can be supported by e.g. a DOI and a COI  -->
<!ELEMENT journalcit      %no-omission; ((citauth+,title,year,volumeno?,
                                          issueno?,pages,jnltrans?),link*) >
<!-- Possible model for book citations, if it is decided to mark these up specially:
<!ELEMENT bookcit         %no-omission; (citauth+,in?,title+,editor*,citpub?,pubplace*,year?,biblscope?)>
     Notes:
       - 'in' is needed for the many books that quote "A and B in ....".  Could be empty;
       - title should use the type attribute to distinguish non-italic (descriptive) titles;
       - biblscope should contain 'simple text' to allow e.g. italic within it.
     rbl 19.5.1999
  -->
<!ELEMENT citation        %no-omission; %m.citation; >
<!ATTLIST citation %a.id;
                   %a.type; >
<!-- new CITAUTH element type contains simpler substructure, or a link
     to a person authority: -->
<!ELEMENT citauth         %no-omission; ((fname?,surname)|link) >
<!ELEMENT editor          %no-omission; %m.simple-text;>
<!ELEMENT citpub          %no-omission; %m.simple-text;>
<!ELEMENT pubplace        %no-omission; %m.simple-text;>
<!ELEMENT pages           %no-omission; (fpage,lpage?)>
<!ELEMENT biblscope       %no-omission; %m.simple-text;>
<!-- CITELT was provided as a generic analysed citation component, then
     removed in favour of mixed content within CITATION:
<!ELEMENT citelt          %no-omission; %m.simple-text;>
<!ATTLIST citelt  %a.type; >
-->
<!ELEMENT jnltrans        %no-omission; (sertitle?,year?,volumeno?,pages*) >
<!ELEMENT trans           %no-omission; %m.citation; >
<!-- 3.5: content model for trans made the same as that for citation.
          Previously was:
<!ELEMENT trans           %no-omission; ((sertitle|year|volumeno|pages)*|citext) >
-->
<!-- CITEXT made into an alternative for both CITATION and TRANS.  Should only be used
     for text which is NOT a citation at all.  RBL, 13.5.1998:
  -->
<!ELEMENT citext          %no-omission; %m.simple-text;>



                 <!-- ****************************** -->
                 <!--                                -->
                 <!--       PERSON INFORMATION       -->
                 <!--                                -->
                 <!-- ****************************** -->

<!ELEMENT person         %no-omission;  ((link) | (persname+, biography?, address*))>
<!ATTLIST person %a.id; >
<!ELEMENT persname       %no-omission;  (qualifier?,fname?,surname,qualifier?)>
<!ELEMENT fname          %no-omission;  %m.simple-text;>
<!ELEMENT surname        %no-omission;  %m.simple-text;>
<!ELEMENT qualifier      %no-omission;  %m.simple-text;>
<!ELEMENT biography      %no-omission;  (link|(section+))>
<!ATTLIST biography %a.id; >

                 <!-- ****************************** -->
                 <!--                                -->
                 <!--    ORGANISATION INFORMATION    -->
                 <!--                                -->
                 <!-- ****************************** -->

<!ELEMENT org            %no-omission;  (%m.org;)>
<!ATTLIST org %a.id; >
<!ELEMENT orgname        %no-omission;  (nameelt+)   >
<!ELEMENT nameelt        %no-omission;  %m.simple-text;>
<!ATTLIST nameelt %a.type; >

                 <!-- ****************************** -->
                 <!--                                -->
                 <!--          ADDRESSES             -->
                 <!--                                -->
                 <!-- ****************************** -->

<!ELEMENT address  %no-omission;  ((link) | (%m.address;))>
<!ATTLIST address %a.id;
                  %a.type; >
<!ELEMENT city     %no-omission;  (#PCDATA)            >
<!ELEMENT postcode %no-omission;  (#PCDATA)            >
<!ELEMENT state    %no-omission;  (#PCDATA)            >
<!ELEMENT country  %no-omission;  (#PCDATA)            >
<!ELEMENT addrelt  %no-omission;  %m.simple-text;      >
<!ATTLIST addrelt %a.type; >
<!ELEMENT phone    %no-omission;  (#PCDATA)            >
<!ELEMENT fax      %no-omission;  (#PCDATA)            >
<!ELEMENT email    %no-omission;  (#PCDATA)            >
<!ELEMENT url      %no-omission;  (#PCDATA)            >
<!-- 3.5: url given a 'url' attribute so that its content can be
		something else: -->
<!ATTLIST url 
          url CDATA #IMPLIED >
<!-- 3.5: <a> element type added as a 'wrapper' for links where it's
		an image which is to be 'clicked': -->
<!ELEMENT a        %no-omission;  (%inter-para-elts;)*    >
<!ATTLIST a %a.src; >

                 <!-- ****************************** -->
                 <!--                                -->
                 <!--     CONFERENCE INFORMATION     -->
                 <!--                                -->
                 <!-- ****************************** -->

<!ELEMENT conference      %no-omission;  (no?,(confname|daterange|location|contact)*)>
<!ATTLIST conference %a.id; >
<!ELEMENT confname        %no-omission;  %m.simple-text;  >
<!ELEMENT contact  %no-omission;  (person|address|phone|fax|email|url)* >
<!ATTLIST contact %a.id; >