Journal Archiving DTD Customize Content and Attributes Module


<!-- ============================================================= -->
<!--  MODULE:    Journal Archiving DTD Customize Content and       -->
<!--             Attributes Module                                 -->
<!--  VERSION:   2.3                                               -->
<!--  DATE:      February 2007                                     -->
<!--                                                               -->
<!-- ============================================================= -->

<!-- ============================================================= -->
<!--                    PUBLIC DOCUMENT TYPE DEFINITION            -->
<!--                        TYPICAL INVOCATION                     -->
<!--
"-//NLM//DTD Journal Archiving DTD Customize Content and Attributes Module v2.3 20070202//EN"
Delivered as file "archivecustom-models.ent"                       -->

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


<!-- ============================================================= -->
<!-- SYSTEM:     Journal Archiving and Interchange DTD of the      -->
<!--             Archiving and Interchange DTD Suite               -->
<!--                                                               -->
<!-- PURPOSE:    To declare the Parameter Entities (PEs) used to   -->
<!--             over-ride content models or parts of content      -->
<!--             models when making a new DTD from the modules of  -->
<!--             the Archiving and Interchange DTD Suite.          -->
<!--                                                               -->
<!--             Or-groups within models should use mixes or       -->
<!--             classes rather than name elements directly.       -->
<!--                                                               -->
<!--             Note: Since PEs must be declared before they      -->
<!--             are used, this module must be called before the   -->
<!--             content modules that declare elements.            -->
<!--                                                               -->
<!-- CONTAINS:   1) PEs that define OR lists of elements to be     -->
<!--                mixed with #PCDATA in element content models   -->
<!--                (all PEs are named "yyy-elements", where "yyy" -->
<!--                is the name of the primary element whose       -->
<!--                content model will use the declared PE.)       -->
<!--             2) PEs that define complete content models.       -->
<!--                (names ending in the suffix "-model")          -->
<!--             3) PEs that define attribute list or attribute    -->
<!--                value over-rides                               -->
<!--                                                               -->
<!-- CREATED FOR:                                                  -->
<!--             Digital Archive of Journal Articles               -->
<!--             National Center for Biotechnology Information     -->
<!--                (NCBI)                                         -->
<!--             National Library of Medicine (NLM)                -->
<!--                                                               -->
<!-- ORIGINAL CREATION DATE:                                       -->
<!--             August 2004                                       -->
<!--                                                               -->
<!-- CREATED BY: Deborah Lapeyre (Mulberry Technologies, Inc.)     -->
<!--             B. Tommie Usdin (Mulberry Technologies, Inc.)     -->
<!--                                                               -->
<!--             Suggestions for refinements and enhancements to   -->
<!--             this DTD should be sent in email to:              -->
<!--                 archive-dtd@ncbi.nlm.nih.gov                  -->
<!-- ============================================================= -->


<!-- ============================================================= -->
<!--                    DTD VERSION/CHANGE HISTORY                 -->
<!-- ============================================================= -->
<!--

Version  Reason/Occasion                   (who) vx.x (yyyy-mm-dd)

      =============================================================
     Version 2.3                       (DAL/BTU) v2.3 (2007-02-02)
     
     Enhancement Release (2.3) following the Working Group meetings 
     of Oct-Nov/2006-Jan/2007. No backward-incompatible changes.
     Archiving loosened even more. New structures for all the DTDs. 
     
 40. TERM ELEMENTS - Added <chem-struct-wrapper> to the contents of 
     <term> using -%chem-struct-wrap.class; inside -%term-elements;
     so that you can use a <chem-struct-wrapper> anywhere you can use 
     a <disp-formula>.
     
 39. ARTICLE META MODEL - Used to require <fpage> or <lpage> even
     when there was a <page-range>. Now both are optional.
     
 38. Address models 
     - Added <label> to <address> through -%address-model;
     - Added <x> to <address> through -%address-model;
     
 37. PRODUCT
       - Added <size>  to <product> through -%product-elements;
       - Added <label> to <product> through -%product-elements; 
     
 36. ANONYMOUS - Over-rode anonymous-elements to add <x>
     
 35, PUB-DATE - Allowed <season> to be in the same <pub-date> with
     <day> and <month> instead of as an alternative to the day
     or month. Put <season> first in the model, since the only 
     examples seen that used both on one <pubdate> put the 
     season first and the order does not change the normal case.
     
 34. DUPLICATE PES - Moved 3 Parameter Entities into this module
     from because needed to use them in other over rides in this
     module. The two entities themselves are unchanged.
       - sec-opt-title-mod (from common.ent for app-model)
     
 33. APPENDIX TITLE - Made the appendix title optional by replacing
     "sec-model" with "sec-opt-title-model" in the parameter entity
     -%app-model;.
     
 32. ELEMENT <x> ELEMENTS - Added the elements <sub>, <sup>, and all 
     the emphasis elements to <x> through -%x.elements.
     
 31. ADDED <x> TO MODELS - Using x.class, added the element <x>
     to the following models:
      - address-model
      - conference-model (new to this module)
                                              
      - copyright-statement-elements
      - etal-elements (new to this module)
      - issue-title-elements
      - kwd-elements
      - label-elements
      - role-elements
      - title-elements
      - xref-elements
     
 30. CONTRIB GROUP MODEL - Eliminated all order in the model
     (contributors used to come first) and allowed <x> anywhere
     inside the model so that all text between elements can be 
     captured.
     
 29. RELATED ARTICLE ELEMENTS - Added <journal-id> to 
     <related-article> textual mixture (related-article-elements)
     using the new  journal-id.class.
     
 28. PRODUCT ELEMENTS - Added <label> to product textual mixture
     (product-elements) using label.class.
     
 27. ADDRESS MODEL
     a) Added <label> to address model using label.class.
     b) Added <x> to address model using x.class.
     
 26. PARAGRAPH ELEMENTS - Created new class "contract-grant"
     to hold old elements <contract-num> and <contract-sponsor>,
     as well as new elements <grant-num> and <grant-sponsor>.
     To be used (initially) as part of Paragraph elements
     (-%p-elements;)
     
 25. ARTICLE METADATA MODEL
      
     a) Added <grant-num>* and <grant-sponsor>* to the contents of 
        <article-meta>. This is a temporary insertion for 
        version 2.3. A more structured model for grant material 
        and sponsorship is expected to be introduced in version 3.0.
        
     b) Made it possible to have a <page-range> without requiring
        an <fpage> 
     
 24. SECTION MODEL - Brought into this module to require that
     both <label> and <title> be present made optional for Sections,
     Appendices, and similar elements. This less-than-optimal
     modeling allows for the case where the tagging had faked
     sections headings using bolded paragraphs. This change is made
     in full knowledge of the fact that these falsely headed
     sections will make autogeneration of Tables of Contents
     problematic.
     
 23. PERSON-GROUP-MODEL
     
     a. Added new PE "person-group-elements" to hold content of
        this PE
        
     b. Changed <person-group> to #PCDATA model from element content
        model that uses person-group-elements
        
     c. Changed person-group-elements from allowing
        (aff | name.class | etal) be replaced <etal> with the
        more generic "person-group-info" that will include <aff>,
       < etal>, and any similar information added  in the future.
     
 22. REF-MODEL
     
     a. Changed the construction but not the content of <ref>
        by changing -%ref-model from using the elements <citation> 
        and <note> directly to using the classes -%citation,class; 
        and -%note.class;.
        
     b. Added <x> to the content, using -%x.class; in the 
        -%ref-model PE
     
 21. NLM CITATION - Added <nlm-citation> as an alternative to
     unstructured <citation>s by adding <nlm-citation>
     to %citation.class;. This changed the models for:
      - <ref>, which uses %citation.class; inside %ref-model;
      - the inside cell mix (used for <td>, <th>, and 
          OASIS <entry>
      - <p> through -%p-elements;
  
 20. Updated public identifier to "v2.3 20070202//EN"          

     =============================================================
     Version 2.2                       (DAL/BTU) v2.2 (2006-04-30)
     
     Backwards-compatible changes to meet operational needs.
     Typical changes include adding attribute values and making 
     required elements optional.

 19. SIGNATURE BLOCK AND SIGNATURE - Added new overriding Parameter
     Entities -%sig-block-elements; for use in the <sig-block> model 
     and -%sig-elements; for use in the <sig> model.

 18. PRICE - New <price> element added to <product>.
  
 17. Updated public identifier to "v2.2 20060430//EN"          

     =============================================================
     Version 2.1                       (DAL/BTU) v2.1 (2005-06-30)
          
     Changed to MathML 2.0 and MathML 2.0 Character Sets
     Added new material requested by the online list     

          
 16. PERMISSIONS - Added a new <permissions> wrapper element to
     consolidate copyright and licensing information. For backwards
     compatibility, the new element will be added alongside the
     existing copyright elements. Best practice will be to use the
     new container, but <copyright-statement>, <copyright-year>,
     and <license> will be accepted in their old positions inside
     <article-meta>
      - Added <permissions> to <article-meta> model. This should
        be used in preference to the <copyright>, <copyright-year>,
        and <license> at the top level in the same model.
               
 15. Updated public identifier to "v2.1 20050630" 

     =============================================================
     Version 2.0                       (DAL/BTU) v2.0 (2004-08-30)
     
     
     Major requirement changes led to the new release, producing
     DTD version "2.0":
       a) The splitting of the Archival and Interchange Tag Set 
          DTDs into three DTDs from two: an authoring DTD, an
          archive regularization and interchange DTD (the
          current Blue Publishing DTD), and a preservationist 
          archive DTD (the current Green Archiving and Interchange 
          DTD).
       b) AIT Working Group suggestions from the June 04 meeting 
          and June/July 2004 followup discussions
       c) Suite remodularization to meet new (and newly articulated)
          modularization requirements
       d) New or renamed classes and mixes to make modifications
          easier and more consistent

 14. OTHER-TABLE-WRAP-ATTS - Moved this Parameter Entity to the
     display module, so all variant DTDs could use it.

 13. LOOSENING ALL PHRASE-LEVEL ELEMENT USAGE - As part of the
     version 2.0 split into 3 DTDs, removed the distinctions
     between where phrase-level elements may be used. Now, if
     you can use one phrase-level, you can use them all. This
     allows any in any order. Phrase-level elements include the
     address elements (which is only a little odd for <addr-line>).
     
     New Parameter Entity is %all-phrase; used inside:
      - the Parameter Entities named "nnn-elements" that can
        be mixed with #PCDATA in the content model of the nnn
        element (for which the defaults are defined in the module 
        that holds the element, just before the element, and the
        over-rides are defined below.)
      - And the following content model over-rides:
        . %chem-struct-model; (via %chem-struct-elements;)
        . %copyright-statement-model; (renamed -elements)
        . %history-model; (via %history-elements)

 12. ACCESS CLASS
        ### Customization Alert ###
     a. Took <ext-link> out of -%access.class;. It did not belong.
        It belongs in -%address-link.class;
     b. Added -%address-link.class; to anywhere regular
        %access.class; was used.

 11. ATTRIBUTE VALUE LISTS - The Green (Archival) DTD needed to
     change all explicit attribute value lists in the DTD to CDATA. 
     In the future, explicit list types will be a feature of the
     Blue (Publishing) and new Authoring DTDs. Therefore, added
     Parameter Entities to hold the following attributes:
       - %date-atts; (date-type changed from list to CDATA)
       - %article-id-atts; (pub-id-type changed to CDATA)
       - %pub-id-atts; (pub-id-type changed to CDATA)
       - %xref-atts; (ref-type changed to CDATA)
     
 10. <x> GENERATED TEXT AND PUNCTUATION ELEMENT:
     a. Added to the following models:
        - %def-list-model;
        - %def-item-model;
        - %article-meta-model;
        - %person-group-model;
     b. Added to %contrib-model; and %contrib-group-model; 
        (via %x.class;)  
        (Therefore added to <contributor> and
         <contributor-group>)
     c. Also added to the element groups for:
        - %aff-elements;
        - %citation-elements;
        - %collab-elements;
        - %corresp-elements;
        - %product-elements;
        - %publisher-loc-elements;
        - %related-article-elements;

  9. OVER-RIDE OF ARTICLE-META-MODEL - Added new elements
     a. <custom-meta-wrap> containing <custom-meta>
     b. <email>
     c. <issue-id>
     d. <issue-title> (for special title or theme)
     e. <page-range>
     f. <volume-id>
     g. <license> (for now, just a bucket into which to
        dump license-related material until the AIT Workgroup
        does more analysis)

  8. DATES
     a. Made a new Parameter Entity %string-date-elements; to
        hold all the elements that may be mixed with #PCDATA
        in a <string-date>
     b. Used %date-parts.class; and %x.class; in 
           new %string-date-elements;

  7. PRODUCT AND RELATED ARTICLE
     Added reference elements to both

  6. COMPLETE MODELS WHEN OVER-RIDING A MODEL 
     (for all Parameter Entities suffixed "-model")
     ### Customization Alert ###
     Made all the model over-rides consistent. Some included
     the outer parentheses, some did not. They all do now,
     as this is the most flexible system, allowing for
     #PCDATA, mixed, or element content. (This is in direct
     contrast to the "-element" suffixed models, which are
     designed to prohibit element content and permit only
     #PCDATA or mixed content.) Added parentheses to Parameter
     Entity and removed them from the Element Declaration.
     -  %article-meta-model; 
     -  %contrib-group-model;
     -  %contrib-model;
     -  %def-item-model;
     -  %def-list-model; 
     -  %kwd-group-model; 

  5. CITATION MODEL / COPYRIGHT STATEMENT MODEL
     ### Customization Alert ###
     -  Replaced the Parameter Entity %citation-model; with the
        OR list Parameter Entity %citation-elements; and used that
        within the content model of <citation>
     -  Similar Change for copyright-statement-elements

  4. DEF-ITEM LOOSENING
     a. Made <term> optional and repeatable so that incomplete
        <def-item>s can be captured. 
     b. Added <x> to:
        - <def-list> by way of -%def-list-model;
        - <def-item> by way of -%def-item-model;
 
  3. RENAMED CLASSES
     ### Customization Alert ###
     Not all classes ended in the ".class" suffix. Changed the 
     following to add the class suffix:
     - %display-back-matter.class; used in -%preformat-elements;
     - %address-elements; (renamed -%address.class;!) used in:
          - %aff-elements; 
          - %corresp-elements; 
          - %publisher-loc-elements;
     - %contrib-info.class; used in -%contrib-group-model;
     - %block-math.class; used in 
          - %named-content-elements; 
          - %term-elements;
     - %rest-of-para.class;
          Inside the content model for Paragraph <p>, was renamed 
          %p-elements;. The content model for Named Content 
          and the model for %p-elements; still use
          %rest-of-para.class;.

  2. INLINE PARAMETER MIXES
     ### Customization Alert ###
     INLINE FORMULA/DISPLAY FORMULA/PREFORMAT/RELATED ARTICLE - 
     Changed the "-element" Parameter Entities to use the 
     OR-bar-first mechanism:
        - Inline Formula - In the PE %inline-formula-elements;
          Changed the PE "%all-phrase;" to "| %all-phrase;"  (Since
          the OR bar following the #PCDATA in the content model 
          had been changed to match.) 
        - Display Formula (%disp-formula-elements; 
             %disp-formula-model;)
        - Preformat Elements (%preformat-elements; %preformat-model;)
        - Related Article (%related-article-elements;)
                
  1. Created this module as version "v2.0 20040830"                -->


<!-- ============================================================= -->
<!--                    INLINE MIXES TO OVER-RIDE CONTENT MODELS   -->
<!--                    (ELEMENTS TO BE ADDED TO #PCDATA IN MODELS)-->
<!-- ============================================================= -->


<!--                    ABBREVIATION ELEMENTS                      -->
<!--                    The elements that can be included along with
                        data characters inside the content model of
                        the <abbrev> element                       -->
<!ENTITY % abbrev-elements
                        "| %all-phrase; | %def.class;"               >


<!--                    ACCESS DATE ELEMENTS                       -->
<!--                    The elements that can be included along with
                        data characters inside the content model of
                        the Access Date <access-date> element      -->
<!ENTITY % access-date-elements 
                        "| %date-parts.class; | %x.class;"           >


<!--                    AFFILIATION ELEMENTS                       -->
<!--                    The elements that can be included along with
                        data characters inside the content model of
                        the <aff> element                          -->
<!ENTITY % aff-elements "| %address.class; | %all-phrase; | 
                           %break.class; | %label.class; | 
                           %x.class;"                                > 


<!--                    ANONYMOUS ELEMENTS                         -->
<!--                    The elements that can be included along with
                        data characters inside the content model of
                        an <anonymous> element                     -->
<!ENTITY % anonymous-elements
                        "%just-rendition; | %x.class;"               >


<!--                    CHEMICAL STRUCTURE ELEMENTS                -->
<!--                    Those elements that may mix with the data
                        characters inside a Chemical Structure
                        <chem-struct>                              -->
<!ENTITY % chem-struct-elements
                        "| %access.class; |  %all-phrase; | 
                         %break.class; | %id.class; | 
                         %label.class; | %list.class; | 
                         %simple-display.class;"                     >


<!--                    CITATION ELEMENTS                          -->
<!--                    Those elements that may mix with the data
                        characters inside a Citation               -->
<!ENTITY % citation-elements   
                        "| %article-link.class; | %appearance.class; | 
                         %emphasis.class;  | %inline-display.class; | 
                         %inline-math.class; | %label.class; |
                         %math.class; |  %phrase.class; | 
                         %references.class; | %simple-link.class; | 
                         %subsup.class; |  %x.class;"                > 
                         
                         
<!--                    COLLABORATIVE (GROUP) AUTHOR ELEMENTS      -->
<!--                    The elements that can be included along with
                        data characters inside the content model of
                        the <collab> element                       -->
<!ENTITY % collab-elements 
                        "| %all-phrase; | %break.class; | %x.class;" > 


<!--                    CONFERENCE MODEL                           -->
<!--                    Content model for the <conference> element -->
<!ENTITY % conference-model 
                        "(%conference.class; | %x.class;)*"          > 


<!--                    CONFERENCE DATE ELEMENTS                   -->
<!--                    The elements that can be included along with
                        data characters inside the content model of
                        the <conf-date> element                    -->
<!ENTITY % conf-date-elements 
                        "| %date-parts.class; | %x.class;"           > 


<!--                    COPYRIGHT STATEMENT ELEMENTS               -->
<!--                    The elements that can be included along with
                        data characters inside the content model of
                        the <copyright-statement>                  -->
<!ENTITY % copyright-statement-elements 
                        "| %all-phrase; | %x.class;"                 > 


<!--                    CORRESPONDENCE INFORMATION ELEMENTS        -->
<!--                    The elements that can be included along with
                        data characters inside the content model of
                        the correspondence information.            -->
<!ENTITY % corresp-elements 
                        "| %address.class; | %all-phrase; | 
                           %break.class; | %label.class; | %x.class;">


<!--                    FORMULA, DISPLAY ELEMENTS                  -->
<!--                    The elements that can be included along with
                        data characters inside the content model of
                        the <disp-formula>                         -->
<!ENTITY % disp-formula-elements  
                        "| %all-phrase; | %access.class; | 
                         %break.class; | %display-back-matter.class; |
                         %label.class; | %simple-display.class;"     > 


<!--                    EMAIL ADDRESS ELEMENTS                     -->
<!--                    The elements that can be included along with
                        data characters inside the content model of
                        the <email> element                        -->
<!ENTITY % email-elements 
                        "| %all-phrase;"                             > 


<!--                    ET AL ELEMENTS                             -->
<!--                    The elements that can be included along with
                        data characters inside the content model of
                        an <etal> element                          -->
<!ENTITY % etal-elements
                        "%just-rendition; | %x.class;"               >


<!--                    EXTERNAL LINK ELEMENTS                     -->
<!--                    The elements that can be included along with
                        data characters inside the content model of
                        an <ext-link>                              -->
<!ENTITY % ext-link-elements
                        "| %all-phrase;"                             > 


<!--                    FORMULA, INLINE ELEMENTS                   -->
<!--                    The elements that can be included along with
                        data characters inside the content model of
                        the <inline-formula> element.              -->
<!ENTITY % inline-formula-elements   
                        "| %all-phrase;"                             > 


<!--                    INLINE SUPPLEMENTARY MATERIAL ELEMENTS     -->
<!--                    The elements that can be included along with
                        data characters inside the content model of
                        the <inline-supplementary-material> element-->
<!ENTITY % inline-supplementary-material-elements 
                        "| %access.class; | %all-phrase;"      > 


<!--                    INSTITUTION NAME ELEMENTS                  -->
<!--                    The elements that can be included along with
                        data characters inside the content model of
                        the <institution> element                  -->
<!ENTITY % institution-elements 
                        "| %all-phrase; | %break.class; |  
                         %x.class;"                                  > 


<!--                    ISSUE TITLE ELEMENTS                       -->
<!--                    The elements that can be included along with
                        data characters inside the content model of
                        the <issue-title> element                  -->
<!ENTITY % issue-title-elements 
                        "| %all-phrase; | %x.class;"                 > 


<!--                    KEYWORD CONTENT ELEMENTS                   -->
<!--                    The elements that can be included along with
                        data characters inside the content model of
                        a keyword.                                 -->
<!ENTITY % kwd-elements
                        "| %break.class; | %all-phrase; | %x.class;" > 


<!--                    LABEL ELEMENTS                             -->
<!--                    The elements that can be included along with
                        data characters inside the content model of
                        the <label> element                        -->
<!ENTITY % label-elements 
                        "| %break.class; | %all-phrase; | %x.class;" >


<!--                    LINK ELEMENTS                              -->
<!--                    The elements that can be included along with
                        data characters inside the content model of
                        linking element such as <xref>, <target>, 
                        and <ext-link>                             -->
<!ENTITY % link-elements 
                        "| %break.class; | %all-phrase;"             > 


<!--                    METADATA DATA NAME ELEMENTS                -->
<!--                    The elements that can be included along with
                        data characters inside the content model of
                        the <meta-name> element                    -->
<!ENTITY % meta-name-elements
                        "| %all-phrase;"                             > 


<!--                    METADATA DATA VALUE ELEMENTS               -->
<!--                    The elements that can be included along with
                        data characters inside the content model of
                        the <meta-value> element                   -->
<!ENTITY % meta-value-elements
                        "| %all-phrase;"                             > 


<!--                    NAMED CONTENT ELEMENTS                     -->
<!--                    The elements that can be included along with
                        data characters inside the content model of
                        the <named-content> element                -->
<!ENTITY % named-content-elements
                        "| %all-phrase; | %block-display.class; | 
                           %block-math.class; | %list.class; | 
                           %rest-of-para.class;"                     >


<!--                    PARAGRAPH ELEMENTS                         -->
<!--                    Elements that may be used within a paragraph
                        in a mixed content model with #PCDATA.
                        Design Note: There is a major overlap between
                        this parameter entity and the mix for elements
                        that are at the same level as a paragraph.
                        Inline elements appear only inside a 
                        paragraph, but block elements such as quotes 
                        and lists may appear either within a 
                        paragraph or at the same level as a 
                        paragraph. This serves a requirement in a 
                        repository DTD, since some incoming material 
                        will have restricted such elements to only 
                        inside a paragraph, some incoming material 
                        will have restricted them to only outside a 
                        paragraph and some may allow them in both
                        places. Thus the DTD must allow for them to
                        be in either or both.                      -->
<!ENTITY % p-elements   "| %all-phrase; | %block-display.class; | 
                         %block-math.class; | %citation.class; |
                         %contract-grant.class; | %list.class; | 
                         %rest-of-para.class;"                       >


<!--                    PREFORMATTED TEXT ELEMENTS                 -->
<!--                    Elements that may be used, along with data
                        characters, inside the content model for the
                        <preformat> element, in which white space,
                        such as tabs, line feeds, and spaces will
                        be preserved.                              -->
<!ENTITY % preformat-elements
                        "| %access.class; | %all-phrase; |
                         %display-back-matter.class; "               >


<!--                    PRODUCT ELEMENTS                           -->
<!--                    The elements that can be included along with
                        data characters inside the content model of
                        the <product> element                      -->
<!ENTITY % product-elements   
                        "| %article-link.class; |
                         %appearance.class; | %break.class; |
                         %emphasis.class; |
                         %inline-display.class; | 
                         %inline-math.class; | %label.class; |
                         %math.class; | %phrase.class; |  
                         %price.class; | %references.class; |
                         %simple-link.class; | %size.class; |
                         %subsup.class; | %x.class;"                 >

                         
<!--                    PUBLISHER'S LOCATION ELEMENTS              -->
<!--                    The elements that can be included along with
                        data characters inside the content model of
                        the <publisher-loc> element                -->
<!ENTITY % publisher-loc-elements 
                        "| %address.class; | %all-phrase; | 
                         %break.class; | %x.class;"                  > 


<!--                    RELATED ARTICLE ELEMENTS                   -->
<!--                    The elements that can be included along with
                        data characters inside the content model of
                        the <related-article> element.             -->
<!ENTITY % related-article-elements 
                        "| %article-link.class; | 
                         %appearance.class; | %break.class; |
                         %emphasis.class; | %inline-display.class; | 
                         %inline-math.class; | %journal-id.class; |
                         %math.class; | %phrase.class; | 
                         %references.class; | %simple-link.class; | 
                         %subsup.class; | %x.class;"                 >


<!--                    ROLE ELEMENTS                              -->
<!--                    The elements that can be included along with
                        data characters inside the content model of
                        a <role>                    
                        Design Note: All inline mixes begin with an
                        OR bar; since %rendition-plus; is an 
                        inline mix, the OR bar is already there.   -->  
<!ENTITY % role-elements
                        "%rendition-plus; | %x.class;"               >
                         

<!--                    SELF-URI ELEMENTS                          -->
<!--                    The elements that can be included along with
                        data characters inside the content model of
                        the <self-uri> element                     -->
<!ENTITY % self-uri-elements
                        "| %all-phrase;"                             >


<!--                    SIGNATURE BLOCK ELEMENTS                   -->
<!--                    Elements to be mixed with data characters
                        inside the content model for the 
                        <sig-block> element.                       -->
<!ENTITY % sig-block-elements 
                        "| %all-phrase; | %break.class; | 
                         %just-base-display.class; | 
                         %sig.class;"                                > 


<!--                    SIGNATURE ELEMENTS                         -->
<!--                    Elements to be mixed with data characters
                        inside the content model for the 
                        <sig> element.                             -->
<!ENTITY % sig-elements "| %all-phrase; | %break.class; | 
                         %just-base-display.class;"                  > 


<!--                    SOURCE ELEMENTS                            -->
<!--                    The elements that can be included along with
                        data characters inside the content model of
                        the <source> element                       -->
<!ENTITY % source-elements
                        "| %all-phrase; | %break.class;"             > 

<!--                    SPEAKER ELEMENTS                           -->
<!--                    The elements that can be included along with
                        data characters inside the content model of
                        a speaker.                                 -->
<!ENTITY % speaker-elements
                        "| %all-phrase; | %person-name.class;"       >


<!--                    STRING DATE ELEMENTS                       -->
<!--                    The elements that can be included along with
                        data characters inside the content model of
                        the <string-date> element                  -->
<!ENTITY % string-date-elements 
                        "| %all-phrase; | %date-parts.class; | 
                         %x.class;"                                  >
                        
                        
<!--                    STRING NAME ELEMENTS                       -->
<!--                    The elements that can be included along with
                        data characters inside the content model of
                        the <string-name> element                  -->
<!ENTITY % string-name-elements 
                        "| %all-phrase; | %person-name.class; |
                         %x.class;"                                  >


<!--                    STRUCTURAL TITLE ELEMENTS                  -->
<!--                    The elements that can be included along with
                        data characters inside the content model of
                        the <title> element                        -->
<!ENTITY % struct-title-elements 
                        "| %all-phrase; | %break.class; | %x.class;" > 


<!--                    SUBJECT GROUPING NAME ELEMENTS             -->
<!--                    Elements that may be used, along with data
                        characters inside the content model of the
                        <subject> element                          -->
<!ENTITY % subject-elements
                        "| %all-phrase; | %break.class; | %x.class;" > 


<!--                    DEFINITION LIST: TERM ELEMENTS             -->
<!--                    The elements that can be included along with
                        data characters inside the content model of
                        a <term>.                                  -->
<!ENTITY % term-elements
                        "| %all-phrase; | %block-math.class; |
                         %chem-struct-wrap.class; |
                         %simple-display.class;"                     >


<!--                    TITLE ELEMENTS                             -->
<!--                    The elements that can be included along with
                        data characters inside the content model of
                        title elements such as <title>, <subtitle>, 
                        <trans-title>, etc.                        -->
<!ENTITY % title-elements   
                        "| %all-phrase; | %break.class; | %x.class;" > 


<!--                    X ELEMENTS                                 -->
<!--                    Elements for use inside the <x> element    -->
<!ENTITY % x-elements   "| %emphasis.class;  | %subsup.class;"       > 


<!--                    X(CROSS) REFERENCE ELEMENTS                -->
<!--                    The elements that can be included along with
                        data characters inside the content model of
                        an <xref>  
                        Design Note: All inline mixes begin with an
                        OR bar, but since %link-elements; is an inline
                        mix, the OR bar is already there.          -->
<!ENTITY % xref-elements
                        "%link-elements; | %x.class;"                >


<!-- ============================================================= -->
<!--                    DUPLICATE NEEDED FOR OVER-RIDES            -->
<!-- ============================================================= -->


<!--                    CONTENT MODEL FOR AN UNTITLED SECTION      -->
<!--                    The model for a section-like structure that
                        may or may not have an initial title       -->
<!ENTITY % sec-opt-title-model
                        "(sec-meta?, label?, title?, (%para-level;)*,  
                          (%sec-level;)*, 
                          (%sec-back-matter-mix;)* )"                >


<!-- ============================================================= -->
<!--                    OVER-RIDES OF CONTENT MODELS (FULL MODELS) -->
<!-- ============================================================= -->


<!--                    ARTICLE METADATA MODEL                     -->
<!--                    Full content model for the metadata that is
                        specific to the article.
                        Note: This includes both metadata that 
                        directly describes the article (such as the 
                        article title, abstract, or article ID) as 
                        well as the metadata that many MAJOUR-style 
                        DTDs (such DTDs split the metadata into three
                        categories: journal metadata, article
                        metadata, and issue metadata), call the issue
                        metadata.
                        Related Element: Metadata specific to the
                        journal is within the element <journal-meta> 
                        Journal Metadata                           -->
<!ENTITY % article-meta-model  
                        "(article-id*, article-categories?, 
                         title-group?, 
                         (contrib-group | aff | %x.class;)*, 

                         author-notes?, pub-date*,
                         volume?, volume-id*,
                         issue?, issue-id*, issue-title*,  
                         supplement?, 
                         ( ( (fpage, lpage?)?, page-range?) | 
                           elocation-id )?, 
                         (%address-link.class; | product | 
                          supplementary-material)*, 
                         history?, copyright-statement?, 
                         copyright-year?, license?, permissions?,  
                         self-uri*, related-article*, abstract*, 
                         trans-abstract*, kwd-group*,
                         contract-num*, contract-sponsor*,
                         grant-num*, grant-sponsor*, 
                         conference*, counts?, custom-meta-wrap?)"   >


<!--                    ADDRESS MODEL                              -->
<!--                    Content model for the <address> element    -->
<!ENTITY % address-model    
                        "(%address.class; | %address-link.class; |
                          %label.class; | %x.class;)*"               >


<!--                    APPENDIX MODEL                             -->
<!--                    Content model for the <app> element. The
                        section model already contains parentheses.
                        Made initial <title> optional.             -->
<!ENTITY % app-model    "(%sec-opt-title-model;, permissions?)"      > 


<!--                    CONTRIBUTOR GROUP MODEL                    -->
<!--                    Content model for the <title-group> element-->
<!ENTITY % contrib-group-model   
                        "(%contrib.class; | %contrib-info.class; | 
                          %x.class;)+"                               > 
             

<!--                    CONTRIBUTOR MODEL                          -->
<!--                    Content model for the <contrib> element    -->
<!ENTITY % contrib-model  
                        "( (%name.class;)*, 
                           (%degree.class; | %contrib-info.class; | 
                            %x.class;)* )"                           >


<!--                    DEFINITION LIST: DEFINITION ITEM MODEL     -->
<!--                    The content model of a <def-item>          -->
<!ENTITY % def-item-model 
                        "(label?, term*, (%def.class; | %x.class;)* )"
                                                                     >

<!--                    DEFINITION LIST MODEL                      -->
<!--                    Content model for the <def-list> element   -->
<!ENTITY % def-list-model   
                        "(label?, title?, term-head?, def-head?, 
                          (def-item | %x.class;)*, def-list* )"      > 


<!--                    HISTORY ELEMENTS                           -->
<!--                    Elements that may be mixed with data 
                        characters inside the model for <history>
                        when <history> is modeled as a mixed content
                        element.                                   -->
<!ENTITY % history-elements   
                        "| %all-phrase; | %break.class; |
                          %date.class; | %x.class;"                  >


<!--                    HISTORY MODEL                              -->
<!--                    The content model for the <history> element
                        (Design Note: This content model is a full
                        model not just an OR list of elements, because
                        the model it is replacing is an element
                        model not a mixed-content model.)          -->
<!ENTITY % history-model   
                        "(#PCDATA %history-elements;)*"              >


<!--                    KEYWORD GROUP MODEL                        -->
<!--                    Content model for a <kwd-group> element    -->
<!ENTITY % kwd-group-model
                        "(title?, (%kwd.class; | %x.class;)+ )"      > 


<!--                    PERSON GROUP ELEMENTS                      -->
<!--                    Elements to be mixed with #PCDATA characters
                        within the Person Group element            -->
<!ENTITY % person-group-elements
                        "%name.class; | %person-group-info.class; |
                          %x.class;"                                 >


<!--                    PERSON GROUP MODEL                         -->
<!--                    Content model for the Person Group element -->
<!ENTITY % person-group-model
                        "(#PCDATA | %person-group-elements;)*"       >


<!--                    PUBLICATION DATE MODEL                     -->
<!--                    The content model for the element <pub-date>
                                                                   -->
<!ENTITY % pub-date-model 
                        "(season?, (day?, month?)?, year?, 
                          string-date?)"                             >


<!--                    REFERENCE ITEM MODEL                       -->
<!--                    Content model for the <ref> element        
                        Added <nlm-citation> as an alternative to
                        unstructured <citation>s. using 
                        -%citation.class;                          -->
<!ENTITY % ref-model    "(label?, 
                         (%citation.class; | %note.class; | 
                          %x.class;)+ )"                             > 


<!--                    CONTENT MODEL FOR A STRUCTURAL SECTION     -->
<!--                    The model for a section. Unlike the other
                        DTDs in the Suite which require a <title> or
                        require either a <label> or a <title>, this
                        model has been changed to make both <label>
                        and <title> optional, with full knowledge
                        that this may make it very difficult to
                        generate a clean online Table of Contents.
                        Used for elements such as Section and 
                        Appendix.                                  -->
<!ENTITY % sec-model    "(sec-meta?, label?, title?,   
                          (%para-level;)*, (%sec-level;)*, 
                          (%sec-back-matter-mix;)* )"                >


<!-- ============================================================= -->
<!--                    OVER-RIDES OF ATTRIBUTE LISTS              -->
<!-- ============================================================= -->
                                                                
                                                                 
<!--                    ARTICLE IDENTIFIER ATTRIBUTES              -->
<!--                    Attributes for the <article-id> element
             pub-id-type
                        Publication (article) Identifier Type
                        Names the type of identifier, or the 
                        organization or system that defined this 
                        identifier for the identifier of the journal 
                        article or a cited publication. This is an
                        optional CDATA attribute that should be used
                        whenever the type is known.
                           Used on the <article-id> element, which 
                        holds an identifier for the entire article.  
                           Also used on the <pubid> element, which 
                        is an identifier for a publication cited in 
                        a bibliographic reference (citation).
                        Suggested values include:
                          coden  - Obsolete PDB/CCDC identifier (may
                                   be present on older articles)
                          doaj   - Directory of Open Access Journals
                          doi    - Digital Object Identifier
                          medline- NLM Medline identifier
                          other  - None of the named identifiers
                          pii    - Publisher Item Identifier, see
                                    http://pubs.acs.org/epub/piius.htm
                                   or 
                                    http://www.aip.org/epub/piipr.html
                          pmid   - PubMed ID (see
                                   www.ncbi.nlm.nih.gov/entrez/
                                   query.fcgi?db=PubMed)         
                          publisher-id 
                                 - Publisher's identifier such 
                                   as an 'article-id', 'artnum',
                                   'identifier', 'article- number', 
                                   'pub-id', etc.
                          sici   - Serial Item and Contribution 
                                   Identifier (SICI). A journal 
                                   article may have more than one 
                                   SICI, one for a print version and
                                   one for an electronic version.  -->
<!ENTITY % article-id-atts
            "pub-id-type
                        CDATA                              #IMPLIED" >


<!--                    DATE (HISTORICAL) ATTRIBUTES               -->
<!--         date-type  Attribute should only be used if the type
                        is known, otherwise omit the attribute. 
                        Suggested values include:
                          accepted    - Date manuscript was 
                                        accepted         
                          received    - Date manuscript received
                          rev-request - Date revisions were 
                                        requested or manuscript 
                                        was returned
                          rev-recd    - Date revised manuscript 
                                        was received               -->
<!ENTITY % date-atts
             "date-type CDATA                              #IMPLIED" >
                                                                
                                                                 
<!--                    PUBLICATION IDENTIFIER ATTRIBUTES          -->
<!--                    Attributes for the <pub-id> element        -->
<!ENTITY %  pub-id-atts  
             "pub-id-type 
                        CDATA                             #IMPLIED"  >


<!--                    X(CROSS) REFERENCE ATTRIBUTES              -->
<!--                    Attribute list for cross references        -->
<!ENTITY %  xref-atts
             "id         ID                               #IMPLIED
              ref-type   CDATA                            #IMPLIED 
              rid        IDREFS                           #IMPLIED"  >
              
              
<!-- ================== End Archiving Content/ATT Over-rides ===== -->