<?xml version="1.0" encoding="UTF-8"?>
<!-- ============================================================= -->
<!-- MODULE:    Journal Publishing DTD -->
<!-- VERSION:   ANSI/NISO JATS Version 1.4 (Z39.96-202x) -->
<!-- DATE:      October 2024 -->
<!---->
<!-- ============================================================= -->
<!-- ============================================================= -->
<!-- PUBLIC DOCUMENT TYPE DEFINITION -->
<!-- TYPICAL INVOCATION -->
<!--
  "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD with MathML3 v1.4 20241031//EN"
       Delivered as file "JATS-journalpublishing1-4-mathml3.dtd"
       Available at: 
       https://jats.nlm.nih.gov/publishing/1.4/JATS-journalpublishing1-4-mathml3.dtd
-->
<!-- ============================================================= -->
<!-- ============================================================= -->
<!-- SYSTEM:     Journal Publishing DTD of the JATS DTD Suite -->
<!---->
<!-- PURPOSE:    DTD for creation of new journal articles -->
<!---->
<!-- The Journal Publishing DTD is an application of -->
<!-- the ANSI/NISO Z39.96 Journal Publishing Tag Set. -->
<!-- IT is a subset of the Journal Archiving and -->
<!-- Interchange DTD that is optimized for the -->
<!-- creation or publishing of existing journal -->
<!-- articles and some non-article material such as -->
<!-- product and book reviews in XML. It describes -->
<!-- both the metadata for a journal article and -->
<!-- the full content of the article. -->
<!---->
<!-- This DTD was constructed using the modules in the -->
<!-- JATS DTD Suite. -->
<!---->
<!-- TAG SET SPONSOR -->
<!-- National Center for Biotechnology -->
<!-- Information (NCBI) -->
<!-- National Library of Medicine (NLM) -->
<!---->
<!-- CREATED FOR: -->
<!-- This DTD was created from the JATS DTD Suite. -->
<!-- Digital archives and publishers may use the -->
<!-- DTD as is for markup of journal literature or -->
<!-- related material for archiving and transferring -->
<!-- such material between archives or create a -->
<!-- custom XML DTD from the Suite for -->
<!-- these purposes. -->
<!---->
<!-- This DTD is in the public domain. An organization -->
<!-- that wishes to create its own DTD from the suite -->
<!-- may do so without permission from NLM. -->
<!---->
<!-- The suite has been set up to be extended using a -->
<!-- new DTD file and a new DTD-specific customization -->
<!-- module to redefine the many Parameter Entities. -->
<!-- Do not modify the suite directly or redistribute -->
<!-- modified versions of the suite. -->
<!---->
<!-- In the interest of maintaining consistency and -->
<!-- clarity for potential users, NLM requests: -->
<!---->
<!-- 1. If you create a DTD from the JATS DTD Suite -->
<!-- and intend to stay compatible with the suite, -->
<!-- then please include the following statement -->
<!-- as a comment in all of your DTD modules: -->
<!-- "Created from, and fully compatible with, -->
<!-- the ANSI/NISO Z39.96 Journal Article Tag -->
<!-- Suite (JATS)." -->
<!---->
<!-- 2. If you alter one or more modules of the suite, -->
<!-- then please rename your version and all its -->
<!-- modules to avoid any confusion with the -->
<!-- original suite. Also, please include the -->
<!-- following statement as a comment in all your -->
<!-- DTD modules: -->
<!-- "Based in part on, but not fully compatible -->
<!-- with, the ANSI/NISO Z39.96 Journal Article -->
<!-- Tag Suite (JATS)." -->
<!---->
<!-- ORIGINAL CREATION DATE: -->
<!-- February 2003 -->
<!---->
<!-- CREATED BY: Mulberry Technologies, Inc. for the NISO Z39.96 -->
<!-- Working Group. Mulberry Technologies was -->
<!-- supported by National Center for Biotechnology -->
<!-- Information (NCBI), a center of the US National -->
<!-- Library of Medicine (NLM). -->
<!---->
<!-- The Journal Publishing DTD is built from the -->
<!-- Archiving and Interchange DTD Suite. -->
<!---->
<!-- Suggestions for refinements and enhancements to -->
<!-- this DTD should be sent in email to: -->
<!-- jats@ncbi.nlm.nih.gov -->
<!-- ============================================================= -->
<!-- ============================================================= -->
<!-- DTD VERSION/CHANGE HISTORY -->
<!-- ============================================================= -->
<!--
  Version  Reason/Occasion                   (who) vx.x (yyyy-mm-dd)
     ==============================================================
       JATS Version 1.4 (ANSI/NISO Z39.96-2024)
                                        (DAL/BTU) v1.4 (2024-10-31)
  
       ANSI NISO JATS is a continuing maintenance NISO Standard, 
       which requires voting by both the NISO and ANSI memberships 
       to be changed. This version of the NISO JATS was approved 
       by ANSI vote on 10/09/2024, becoming NISO JATS v1.4    
       (ANSI/NISO Z39.96-2024). Version 1.4 supersedes 
       all Committee Drafts as well as the JATS version 1.3 2021.
  
       The file names and formal public identifiers have been 
       changed in the modules and the catalogs.
  
   45. @DTD-VERSION - Added '1.4' value to @dtd-version list.
  
   44. JATS 'v1.4d1 20240201' (first committee draft 
       following the vote that made JATS v1.3 an ANSI/NISO standard) 
       becomes 'v1.4 20241031' (following ANSI vote 10/9/2024).
       'ANSI/NISO Z39.96-2021' becomes 'ANSI/NISO Z39.96-2024'
  
     ==============================================================
       JATS Version 1.4d1 (ANSI/NISO Z39.96-2021 unchanged)
                                    (DAL/BTU) v1.4d1 (2024-02-01)
  
       ANSI NISO JATS is a continuing maintenance NISO Standard, 
       which requires voting by both the NISO and ANSI memberships 
       to be changed. This version of the NISO JATS is the first
       Committee Draft (1.4d1) of a potential new JATS version 1.4.
  
       This draft DTD represents an interim version of the
       non-normative JATS DTD Suite, as an indication to JATS users
       of the decisions that have been made by the JATS Standing
       Committee. This draft has not yet been given public review 
       or voting.
  
   43. MULTI-LANGUAGE DOCUMENTS
       - REPEATS - Made additional metadata elements repeatable 
         (<title-group>, <author-notes>, <supplement>, <permissions>
         <custom-meta-group>) in <article-meta>. 
       - CONTENT LANGUAGE - Added new element <content-language> to
         <front-stub> to name one primary language of the document.
         (repeatable)
       - Made <notes> repeatable in <front> (%front-back.class)
       - BITS ATTRIBUTES - Added the bits-multi-lingual-atts module, 
         which overrides attribute lists in the BITS Index and 
         Question-Answer modules, to add the multi-lingual 
         attributes to all content objects. Separate module so it
         can be deleted iff BITS adds multi-lingual attributes.
       - MULTI-LINGUAL ATTRIBUTES - Added the multi-lingual 
         attributes to:
           - <sub-article>              
           - <response>              
        - XML:LANG ATTRIBUTE - Added @xml:lang attribute to:
           - <back>              
           - <body>              
           - <front>              
           - <front-stub>              
           - <floats-group>              
       - FRONT STUB MODEL - Used %front-stub-model to make following
         elements repeatable rather than optional, to
         allow for multiple title groups in multiple languages: 
           - <author-notes>
           - <custom-meta-group>
           - <permissions> 
           - <title-group> 
           - <supplement>
  
   46. The formal public identifier of this file uses the
       version and date 'v1.4d1 20240201' (first committee draft 
       following the vote that made JATS v1.3 an ANSI/NISO standard).
  
     ==============================================================
      JATS Version 1.3 (ANSI/NISO Z39.96-2021)
                                    (DAL/BTU) v1.3 (2021-06-10)
  
       ANSI NISO JATS is a continuing maintenance NISO Standard, 
       which requires voting by both the NISO and ANSI memberships 
       to be changed. This version of the NISO JATS was approved 
       by ANSI vote on June 10, 2021, so it supersedes all Committee 
       Drafts as well as the draft version JATS 1.3 2021 (the version
       submitted for vote), becoming NISO JATS v1.3 20210610 
       (ANSI/NISO Z39.96-2019).
  
       The file names and formal public identifiers have been 
       changed in the modules and the catalogs.
  
   45. AUTHOR-NOTES - Made repeatable rather than optional in
       <front-stub> (through %front-stub-model)
  
   44. JATS 'v1.3d2 20201130' becomes 'v1.3 20210610' 
       (final ANSI vote date)
       'ANSI/NISO Z39.96-2019' becomes 'ANSI/NISO Z39.96-2021'
  
    ==============================================================
       JATS Version 1.3d2 (ANSI/NISO Z39.96-2021)
                                     (DAL/BTU) v1.3d2 (2020-11-30)
  
       ANSI NISO JATS is a continuing maintenance NISO Standard, 
       which requires voting by the NISO and ANSI memberships 
       to be changed. 
  
       This draft DTD represents an interim version of the
       non-normative JATS DTD Suite, as an indication to JATS users
       of the decisions that have been made by the JATS Standing
       Committee. This draft has not yet been given public review 
       or voting; it is for Standing Committee review and
       testing. The formal public identifiers have been changed 
       in the modules and the catalogs.
  
   43. ISSUE TITLE GROUP - Added <issue-title-group> to 
       <front-stub> optional and repeatable
  
   42. PROCESSING METADATA - A new container element was added as
       a child of <article>, <sub-article>, and <response> to 
       describe processing information to help determine the 
       exact tagset flavor used by this document instance. 
       (<processing-meta>)
       Current contents of <processing-meta>:
        - <restricted-by> - Names tighter schemas, subsets, or
             Guidelines followed by this document.
        - <extended-by> - Names extension or superset schemas
             followed by this document, such as TaxPub.
        - <custom-meta-group>
       Several new attributes were added to describe more 
       completely the flavor/version of JATS in which the 
       document was composed:
         - @tagset-family	(JATS | BITS | STS)
         - @base-tagset   (Archiving | Publishing | Authoring)
         - @table-model	(XHTML |OASIS-CALS | both | none)
         - @mathml		(MathML 2.0 | MathML 3.0)
         - @dtd-version was also revised (see below)
  
   41. DTD VERSION - The <article> attribute @dtd-version has been
       a #FIXED attribute for all of JATS history. This is very
       convenient when creating documents, but problematic for
       archives who receive many versions over time. If a document
       is valid to "v1.3d1"; it is also valid to the latest version
       and to all older versions. @dtd-version will stay a CDATA
       attribute, but will be optional, with a list of values, and
       with no default.
  
   40. JATS "v1.3d2 20201130" becomes 'v1.3 20210610' (second 
       committee draft following the final ANSI/NISO 1.2 vote)
  
     ==============================================================
       JATS Version 1.3d1 (ANSI/NISO Z39.96-2021)
                                     (DAL/BTU) v1.3.d1 (2019-08-31)
  
       ANSI NISO JATS is a continuing maintenance NISO Standard, 
       which requires voting by the NISO and ANSI memberships 
       to be changed. 
  
       This draft DTD represents an interim version of the
       non-normative JATS DTD Suite, as an indication to JATS users
       of the decisions that have been made by the JATS Standing
       Committee. This draft has not yet been given public review 
       or voting. The formal public identifiers were changed in the 
       modules and the catalogs.
  
   39. QUESTION AND ANSWER MODULES - Added call to BITS question
       and answer module names question-answer ent
  
   38. JATS "1.2" becomes "v1.3d1 20190831" (first committee
       draft following the final ANSI/NISO vote) 
  
     ==============================================================
       JATS Version 1.2 (ANSI/NISO Z39.96-2021)
                                     (DAL/BTU) v1.2     (2019-02-08)
  
       NISO JATS is a continuing maintenance NISO Standard, which 
       requires voting by the both the NISO and ANSI membership 
       to be changed. This version of the NISO JATS was approved 
       by ANSI vote on Feb 08, 2019, so it supersedes all Committee 
       Drafts as well as the draft version JATS 1.2 2018 (the version
       submitted for vote), becoming NISO JATS v1.2 20190208 
       (ANSI/NISO Z39.96-2021).
  
   37. JATS "1.2" becomes "v1.2 20190208" (final ANSI vote date)
       "ANSI/NISO Z39.96-2015" becomes "ANSI/NISO Z39.96-2019"
  
     ==============================================================
       JATS Version 1.2 (ANSI/NISO Z39.96-2018)
  
                                     (DAL/BTU) v1.2     (2018-11-30)
  
       NISO JATS is a continuing maintenance NISO Standard, which 
       requires voting by the both the NISO and ANSI membership 
       to be changed. This version of the NISO JATS was approved 
       by ANSI and NISO vote, so it supersedes all Committee Drafts
       and becoming NISO JATS 1.2 (ANSI/NISO Z39.96-2018).
  
   36. @dtd-version becomes "1.2" from "1.2d2"
  
   35. 
       JATS "1.2d2" and "v1.2d2 20180401" became
       JATS "1.2" and "v1.2 20181130" 
  
      =============================================================
  
       JATS Version 1.2d2              (DAL/BTU) v1.2d2  (2018-04-01)
  
       JATS is a continuing maintenance NISO Standard, which
       requires voting by the ANSI and NISO memberships to be changed. 
       BITS is under continuous maintenance, and is modified at the
       discretion of the working group.
  
       This draft DTD represents an interim version of the
       non-normative JATS DTD Suite, as an indication to JATS users
       the decisions that have been made by the JATS Standing
       Committee. This draft has not yet been given public review 
       or voting. The formal public identifiers were changed in the 
       modules and the catalogs.
  
   34. NON-MONETARY SUPPORT - Inside <front-stub-mod> added new
       <support-group> to hold both funding and
       non-monetary support descriptions. <support-group> is 
       both a peer to <funding-group> (backward compatibility)
       and contains <funding-group>.
  
   33. DATE-NOT-AVAILABLE - Inside <article-meta> and <front-stub>,
       a new element <pub-date-not-available> was added as an
       alternatives to <pub-date>. The meaning is that a 
       publication date was (for whatever reason) not available. 
       Presence of the element says nothing about publication 
       status.
  
   32. INLINE INDEX TERMS  - Added invocation to BITS inline
       (embedded) index term model
  
   31. @dtd-version becomes "1.2d2" from "1.2d1"
  
   30. BITS "2.0" and "v2.0 20151225" remain unchanged
  
  
       JATS "1.2d1" and "v1.2d1 20171231" became
       JATS "1.2d2" and "v1.2d2 20180401". 
  
       No module names were changed.
  
      =============================================================
       JATS Version 1.2d1 (ANSI/NISO Z39.96-2015)
                                     (DAL/BTU) v1.2d1  (2017-12-31)
  
       NISO JATS is a continuing maintenance NISO Standard, which
       requires voting by the ANSI and NISO memberships to be changed. 
  
       This draft DTD represents an interim version of the
       non-normative JATS DTD Suite, as an indication to JATS users
       the decisions that have been made by the JATS Standing
       Committee. This draft has not yet been given public review 
       or voting. The formal public identifiers were changed in the 
       modules and the catalogs.
  
   29. JATS "1.2d1" and "v1.2d1 20170631" became
       JATS "1.2d1" and "v1.2d1 20171231". 
  
      =============================================================
       JATS Version 1.2d1              (DAL/BTU) v1.2d1  (2017-06-31)
  
       NISO JATS is a continuing maintenance NISO Standard, which
       requires voting by the ANSI and NISO memberships to be changed. 
  
       This draft DTD represents an interim version of the
       non-normative JATS DTD Suite, as an indication to JATS users
       the decisions that have been made by the JATS Standing
       Committee. This draft has not yet been given public review 
       or voting. The formal public identifiers were changed in the 
       modules and the catalogs.
  
   28. xsi:noNamespaceSchemaLocation added to attribute list of
       <article>. Most modern processors do not need this, but
       a user with an older processor requested it, so the JATS
       Standing Committee acquiesced. This pseudo-attribute
       cannot be used with a DOCTYPE declaration.
  
   27. FRONT STUB MODEL
       - ARTICLE VERSION - Added new element <article-version>
         inside <front-stub> to hold one version number for the 
         article. <article-version> element may repeat inside
         <article-version-alternatives> to hold version numbers 
         from different systems.
  
       - NO DATE - <pub-date> (optional repeatable) is now
         followed by the optional new element 
         <pub-date-not-available>. 
  
       - PUB-HISTORY - <pub-history> (optional) added to hold
         <event>s.
  
   26. @dtd-version becomes "1.2d1" from 1.1
  
   25. JATS became version "1.2d1" and "v1.2d1 20170631" 
  
      =============================================================
       JATS Version 1.1                (DAL/BTU) v1.1  (2015-12-15)
  
       JATS is a continuing maintenance NISO Standard, which
       requires voting by the ANSI and NISO memberships to be changed. 
       JATS 1.1 was approved in late 2015, so the formal public 
       identifiers were changed in the modules and the catalogs.
       No model or attribute changes were made at this time. 
  
   24. JATS became version "1.1" and "v1.1 20151215"
       BITS remained version "2.0" but becomes "v2.0 20151225"
  
       =============================================================
       JATS Version 1.1d3             (DAL/BTU) v1.1d3  (2015-03-01)
  
       The changes in this release are in response to NISO 
       License and Indicators Recommended Practice.
  
       NISO JATS is a continuing maintenance NISO Standard, which 
       requires voting by the NISO membership to be changed. This
       Committee Draft 1.1d3 will be sent to the NISO voting
       membership, to become (if approved) NISO JATS 1.1.
  
       This draft DTD represents an interim version of the
       non-normative JATS DTD Suite, as an indication to JATS users
       the decisions that have been made by the JATS Standing
       Committee.
  
   23. ALI - Added ALI namespace for NISO Access and Indicator 
       license reference and free to read elements.
  
   22. JATS became version "1.1d3" and "v1.1d3 20150301"
  
       =============================================================
       JATS Version 1.1d2              (DAL/BTU) v1.1d2 (2014-09-30)
  
       NISO JATS is a continuing maintenance NISO Standard, which 
       requires voting by the NISO membership to be changed. This
       Committee Draft 1.1d2 will be sent to the NISO voting
       membership, to become (if approved) NISO JATS 1.1.
  
       This catalog represents an interim version of the
       non-normative JATS DTD Suite, as an indication to JATS users
       the decisions that have been made by the JATS Standing
       Committee.
  
   21. <VOLUME> INSIDE <ARTICLE-META> and <FRONT-STUB>
     - Allowed <volume> to repeat inside <article-meta>, the types to 
       be distinguished using @content-type
     - Added new optional element <volume-issue-group> inside 
       <article-meta) following all volume and issue elements
       to hold volume-issue pairs (or n-tuples) when a second
       and subsequent <volume> has its own related issue
       information.
     - Made <issue> repeatable, for those who choose not to use
       the new wrapper element.
  
   20. JATS became version "1.1d2" and "v1.1d2 20140930//EN"
  
       =============================================================
       NISO JATS Version 1.1d1           (DAL/BTU) v1.1 (2013-11-15)
  
       ANSI/NISO Z39.96-2012 (pre-release for V1.0 BITS; Version 1.1d1) 
  
       NISO JATS Standing Committee met and answered the requests and
       suggestions from the NISO request forms.
  
       Details concerning ANSI/NISO Z39.96-2012 JATS-based DTDs,  
       XSDs, RNGs and supporting documentation are available at
             https://jats.nlm.nih.gov/1.3d2/
  
   19. MATHML 3.0 - Created a new version of the Publishing DTD to
       take MathML 3.0 instead of MathML 2.0.
       Nothing else changed from regular Publishing DTD.
       Call to MathML setup module changed and added call to the
       specific MathML 3.0 modules.
  
   18. DTD Version - Updated the DTD-version attribute to "1.1d1" and 
       the formal public identifier to the date: "v1.1d1 20130915//EN".
  
   17. GLOBAL ATTRIBUTES - Added the new module for Common (global)
       attributes: %JATS-common-atts.ent;, called in before the
       customizations models module.
  
   16. GLOBAL ATTRIBUTES - Added the new parameter entity 
           %jats-common-atts;
       to every element in this module. This PE adds (for now) the
       @id attribute and the @xml:base attribute to every element,
       whether metadata or narrative.
       Since the @id in this parameter entity is optional, a second
       parameter entity jats-common-atts-id-required was also added.
       The two are kept in sync with the jats-base-atts parameter 
       entity.
       This added a new attribute list to:
        - back
        - front
        - front-stub
        - sub-article
  
   15. ABSTRACTS AND KEYWORDS
         Changed "abstract*" to "(%abstract.class;)*"
         and "kwd-group*" to "(%kwd-group.class;)*" since those
         classes now exist. Elements should have a limited number of
         ways to be invoked.
          - front-stub (through %front-stub-model;)
  
       =============================================================
       NISO JATS Version 1.0             (DAL/BTU) v1.0 (2012-xx-xx)
  
       ANSI/NISO Z39.96-2012 (Version 1.0) 
  
       Details concerning ANSI/NISO Z39.96-2012 JATS-based DTDs,  
       XSDs, RNGs and supporting documentation are available at
             https://jats.nlm.nih.gov/1.3d2/
  
   11. RELATED OBJECT - Added <related-object> everywhere
       <related-article> was used, including inside 
       <front-stub> using front-stub-model.
  
   10. Updated the DTD-version attribute to "1.0" and the formal
       public identifier to the date: "v1.0 20120330//EN".
  
       =============================================================
       Version 0.4                       (DAL/BTU) v0.4 (2011-01-31)
  
       This Tag Set is in the process of becoming a NISO standard.
       The version numbers are starting over from 0.4", as a Trial
       Use Draft, to be made into "Version 1.0" when the Tag Suite 
       becomes a NISO standard. Thus, the version number that would
       have been "NLM Version 3.1 Draft" has become NISO JATS
       "Version 0.4".
  
       Details on NISO Trial Use Draft Version 0.4 are available at
             https://jats.nlm.nih.gov/JATS-0.4.
  
    9. Updated the public identifier to "v0.4 20110131", 
       modified the formal public identifier to include "JATS (Z39.96)",
       and the filename as delivered to include "JATS" and the
       new version number "0".
  
    8. BODY ATTRIBUTES - Added attribute list and new PE %body-atts;
       to the model of <body>. The only current attribute is
       @specific-use, which indicates, for example, not a real
       tagged XML body, but a 'bag of words" for indexing purposes.
  
    7. I18N - Changed the default for @xml:lang from "en" to
       #IMPLIED, so that the @xml:lang would inherit properly and
       not need to be over-ridden in
        - <sub-article> through %sub-article-atts;
        - <response> through %response-atts;
  
    6. XML:LANG - Added @xml:lang to the following elements:
       Added to facilitate multiple languages.
         - article
  
    5. AFFILIATION ALTERNATIVES - Added the element <aff-alternatives>
       to <front-stub> through %front-stub-model;. This element
       will hold multiple <aff>s that are a representation of a
       single affiliation, for example, the name of an institution
       in two languages or two scripts.
  
    4. LANGUAGE CODES - Codes for languages as well as variants,
       transliterations, regions, scripts, and combinations
       such as "Jpan"(Han + Hiragana + Katakana). These values should be
       taken from RFC 5646/W3C/IANA Subtag Registry recommendations
       and can be found online at:
         http://www.iana.org/assignments/language-subtag-registry
  
    3. Updated the DTD-version attribute to "0.4" 
  
       =============================================================
       Version 3.0                       (DAL/BTU) v3.0 (2007-10-31)
  
       Version 3.0 is the first non-backward-compatible release.
       In addition to the usual incremental changes, some
       elements and attributes have been renamed and/or remodeled
       to better meet user needs and to increase tag set consistency.
       All module change histories are available through the Tag Suite
       web site at https://dtd.nlm.nih.gov.
  
       Details on version 3.0 are available at
             https://dtd.nlm.nih.gov/3.0.
  
    2. Changed default @xml:lang from "EN" from "en" to match latest
       RFC 4646/W3C/IANA Subtag Registry recommendations
  
    1. Updated public identifier to "v3.0 20071031//EN"
-->
<!-- ============================================================= -->
<!--
  Details concerning 
  ANSI/NISO Z39.96-2015 JATS-based DTDs, XSDs, 
  RNGs and supporting documentation are available at
        https://jats.nlm.nih.gov/1.1/
-->
<!-- ============================================================= -->
<!-- DESIGN CONSIDERATIONS -->
<!-- ============================================================= -->
<!--
  MODULAR DTD LIBRARY
  A set of journal archiving and interchange
  DTD modules was written as the basis for
  publishing, interchange, and repository
  DTDs, with the intention that DTDs for
  specific purposes, such as this publishing
  DTD, would be developed based on them.
  
  This publishing DTD has been optimized for
  the creation of new journal articles. This
  means that it is far smaller (fewer elements,
  and fewer choices in many contexts) than was
  the interchange DTD. Where in the interchange
  DTD there may have been several ways to
  express the same information, only one is
  provided for authoring. It was not the
  intention to limit the expressive power
  licensed by the DTD, but rather to limit the
  meaningless choices needed in a full
  archiving and interchange DTD that make
  conversion from a wide variety of formats as
  easy as possible.
  
  This Publishing DTD has been developed from
  the JATS DTD Suite modules, in the approved 
  manner, making changes to the declarations 
  in those modules by overriding Parameter 
  Entity contents by redefining the entities 
  in the:
     %journalpubcustom-classes.ent;
     %journalpubcustom-mixes.ent;
     %journalpubcustom-models.ent;
  modules, which are called from this DTD file.
  
  Additional Publishing-DTD-Specific material
  is defined in the module(s):
     %nlmcitation.ent;
  No changes to any of the original JATS DTD 
  Suite modules are required in order to 
  use this DTD.
-->
<!-- ============================================================= -->
<!-- MODULES OF MODULES INVOKED -->
<!-- ============================================================= -->
<!-- MODULE TO NAME DTD-SPECIFIC MODULES -->
<!-- Names all DTD-specific external modules -->
<!-- MODULE TO NAME THE MATHML 3.0 MODULES -->
<!-- Names all DTD-specific external modules -->
<!-- MODULE TO NAME THE MODULES -->
<!--
  Declares all the external modules that are
  part of the modular Journal Archiving and
  Interchange DTD Suite library. Thus it does
  NOT declare itself; the DTD-specific
  module-of-modules; or the DTD-specific class,
  mix, or model over-ride modules. Those are
  declared in the DTD-specific module of modules.
     Since this module declares but does not
  invoke modules, this DTD invokes any modules
  it uses by referencing the external
  Parameter Entities defined in the Module of
  Modules. To include a set of elements (such
  as all the lists or the table elements) this
  module defines the external Parameter Entity
  for the module(s) that contains the table
  declarations and the DTD references that
  entity.
-->
<!-- ============================================================= -->
<!-- NISO ALI NAMESPACE SETUP -->
<!-- ============================================================= -->
<!-- DEFINE ALI NAMESPACE ATTRIBUTE AND PREFIX -->
<!--
  Names the module defines the NISO Access and 
  Indicators Exchange Model namespace, prefix, 
  and pseudo-attribute @xmlns.
-->
<grammar xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
  <include href="JATS-ali-namespace1-4.ent.rng"/>
  <!-- ============================================================= -->
  <!-- SET UP COMMON (ALL ELEMENT) ATTRIBUTES -->
  <!-- ============================================================= -->
  <!-- COMMON ATTRIBUTES MODULE -->
  <!--
    Set up the common attributes, those used on
    nearly all elements.
    Must be called before the custom models
    module.
  -->
  <include href="JATS-common-atts1-4.ent.rng"/>
  <!-- ============================================================= -->
  <!-- CUSTOMIZATION MODULES INVOKED -->
  <!-- Note: These modules must be called after -->
  <!-- all Module of Modules but before any other -->
  <!-- modules. Unlike any other grouping, order -->
  <!-- of these modules matters. -->
  <!-- ============================================================= -->
  <!-- DTD-SPECIFIC CLASS CUSTOMIZATIONS MODULE -->
  <!--
                        Names the module that holds the DTD-specific
    class definitions for the Journal Publishing
    DTD that will over-ride classes in the Suite.
    (Defined in %journalpubcustom-modules.ent;)
  -->
  <include href="JATS-journalpubcustom-classes1-4.ent.rng"/>
  <!-- DEFAULT ELEMENT CLASSES MODULE -->
  <!--
    Names the module that holds the standard
    class definitions for the JATS DTD Suite.
  -->
  <include href="JATS-default-classes1-4.ent.rng"/>
  <!-- DTD-SPECIFIC MIX CUSTOMIZATIONS MODULE -->
  <!--
                        Set up the Parameter Entities and element
    class definitions that will be used to
    over-ride some element mixes in this DTD.
    (Defined in %journalpubcustom-modules.ent;)
  -->
  <include href="JATS-journalpubcustom-mixes1-4.ent.rng"/>
  <!-- DEFAULT MIX CUSTOMIZATIONS MODULE -->
  <!--
    Names the module that holds the standard
    mix definitions for the JATS DTD Suite.
  -->
  <include href="JATS-default-mixes1-4.ent.rng"/>
  <!--
    DTD-SPECIFIC MODELS/ATTRIBUTES CUSTOMIZATIONS
    MODULE
  -->
  <!--
                        Names the module that holds the over-rides
    of content models, attribute lists, elements
    lists to be used in content models, and
    attribute values. These are DTD-specific.
    (Defined in %journalpubcustom-modules.ent;)
  -->
  <include href="JATS-journalpubcustom-models1-4.ent.rng"/>
  <!-- ============================================================= -->
  <!-- COMMON (SHARED) ELEMENTS MODULE INVOKED -->
  <!-- ============================================================= -->
  <!-- COMMON (SHARED) DECLARATIONS -->
  <!--
    Declarations for elements, attributes,
    entities, and Notations that are shared by
    more than one class module. Note: Must be
    called before any of the class modules.
  -->
  <include href="JATS-common1-4.ent.rng"/>
  <!-- ============================================================= -->
  <!-- JOURNAL ARTICLE CLASS ELEMENTS (alpha) -->
  <!-- ============================================================= -->
  <!-- ARTICLE METADATA ELEMENTS -->
  <include href="JATS-articlemeta1-4.ent.rng"/>
  <!-- BACK MATTER ELEMENTS -->
  <include href="JATS-backmatter1-4.ent.rng"/>
  <!-- DISPLAY (GRAPHICAL) ELEMENTS -->
  <include href="JATS-display1-4.ent.rng"/>
  <!-- FORMATTING ELEMENT CLASSES -->
  <!-- Elements that change rendition/display. -->
  <include href="JATS-format1-4.ent.rng"/>
  <!-- FUNDING ELEMENTS -->
  <!--
    Elements that describe the sponsorship or
    open access
  -->
  <include href="JATS-funding1-4.ent.rng"/>
  <!-- JOURNAL METADATA ELEMENTS -->
  <include href="JATS-journalmeta1-4.ent.rng"/>
  <!-- LINK CLASS ELEMENTS -->
  <include href="JATS-link1-4.ent.rng"/>
  <!-- LIST CLASS ELEMENTS -->
  <include href="JATS-list1-4.ent.rng"/>
  <!-- MATH ELEMENTS -->
  <include href="JATS-math1-4.ent.rng"/>
  <!-- NLM CITATION ELEMENT -->
  <include href="JATS-nlmcitation1-4.ent.rng"/>
  <!-- PARAGRAPH-LEVEL ELEMENTS -->
  <include href="JATS-para1-4.ent.rng"/>
  <!-- PHRASE-LEVEL ELEMENTS -->
  <include href="JATS-phrase1-4.ent.rng"/>
  <!--
    BIBLIOGRAPHIC REFERENCE (CITATION)
    CLASS ELEMENTS
  -->
  <include href="JATS-references1-4.ent.rng"/>
  <!-- RELATED OBJECT ELEMENT -->
  <!--
    Defines the <related-object> element to
    describe a related object such as a
    related book or a dataset.
  -->
  <include href="JATS-related-object1-4.ent.rng"/>
  <!-- SECTION ELEMENTS -->
  <include href="JATS-section1-4.ent.rng"/>
  <!-- ============================================================= -->
  <!-- THE REST OF THE EXTERNAL MODULES INVOKED -->
  <!-- ============================================================= -->
  <!-- BITS MULTI-LINGUAL OVERRIDES MODULE -->
  <!--
    Attribute declarations that add the multi-
    lingual attribute, by override, to all the
    content elements in BITS index terms and
    BITS question/answer. This is a separate
    module to make it easy to remove if BITS
    votes to add the multi-lingual material.
  -->
  <include href="bits-multi-lingual-atts1-4.ent.rng"/>
  <!-- BITS EMBEDDED INDEX ELEMENTS MODULE -->
  <!--
    Element declarations the index elements
    which are embedded in the article 
    narrative.
  -->
  <include href="BITS-embedded-index2-1.ent.rng"/>
  <!-- BITS QUESTION AND ANSWER MODULE -->
  <!--
    Element declarations for BITS questions
    and answers (not complete tests, but used
    to put build quizzes and tests.
  -->
  <include href="BITS-question-answer2-1.ent.rng"/>
  <!-- ============================================================= -->
  <!-- THE REST OF THE EXTERNAL MODULES INVOKED -->
  <!-- ============================================================= -->
  <!-- MATHML SETUP MODULE -->
  <!-- Invoke the MathML modules -->
  <include href="JATS-mathml3-mathmlsetup1-4.ent.rng"/>
  <!-- XHTML TABLE SETUP MODULE -->
  <!--
    Set up the necessary Parameter Entity values
    and then invoke XHTML (HTML 4.0) table
    module
  -->
  <include href="JATS-XHTMLtablesetup1-4.ent.rng"/>
  <!-- SPECIAL CHARACTERS DECLARATIONS -->
  <!--
    Standard XML special character entities
    used in this DTD
  -->
  <!-- CUSTOM SPECIAL CHARACTERS DECLARATIONS -->
  <!--
    Custom special character entities created
    specifically for use in this DTD Suite
  -->
  <include href="JATS-chars1-4.ent.rng"/>
  <!-- NOTATION DECLARATIONS MODULE -->
  <!-- ============================================================= -->
  <!-- PARAMETER ENTITIES FOR ATTRIBUTE LISTS -->
  <!-- ============================================================= -->
  <!-- DTD VERSION -->
  <!--
    What version of this DTD was used to make
    the document instance under consideration.
  -->
  <define name="dtd-version">
    <optional>
      <attribute name="dtd-version">
        <choice>
          <value>3.0</value>
          <value>0.4</value>
          <value>1.0</value>
          <value>1.1d1</value>
          <value>1.1d2</value>
          <value>1.1d3</value>
          <value>1.1</value>
          <value>1.2d1</value>
          <value>1.2d2</value>
          <value>1.2</value>
          <value>1.3d1</value>
          <value>1.3d2</value>
          <value>1.3</value>
          <value>1.4d1</value>
          <value>1.4</value>
        </choice>
      </attribute>
    </optional>
  </define>
  <!-- ARTICLE ATTRIBUTES -->
  <!--
    Attributes for the top-level element
    <article>
  -->
  <define name="article-atts">
    <ref name="jats-common-atts"/>
    <optional>
      <attribute name="article-type"/>
    </optional>
    <optional>
      <attribute name="specific-use"/>
    </optional>
    <ref name="dtd-version"/>
    <optional>
      <attribute name="xml:lang" a:defaultValue="en">
        <data type="NMTOKEN"/>
      </attribute>
    </optional>
    <ref name="XLINK.xmlns.attrib"/>
    <ref name="MATHML.xmlns.attrib"/>
    <ref name="ali.xmlns.attrib"/>
    <ref name="Schema.xmlns.attrib"/>
    <optional>
      <attribute name="xsi:noNamespaceSchemaLocation"/>
    </optional>
  </define>
  <!-- BACK ATTRIBUTES -->
  <!-- Attributes for the <back> element -->
  <define name="back-atts">
    <ref name="jats-common-atts"/>
    <optional>
      <attribute name="xml:lang">
        <data type="NMTOKEN"/>
      </attribute>
    </optional>
  </define>
  <!-- BODY ATTRIBUTES -->
  <!-- Attributes for the <body> element -->
  <define name="body-atts">
    <ref name="jats-common-atts"/>
    <optional>
      <attribute name="specific-use"/>
    </optional>
    <optional>
      <attribute name="xml:lang">
        <data type="NMTOKEN"/>
      </attribute>
    </optional>
  </define>
  <!-- FRONT ATTRIBUTES -->
  <!-- Attributes for the <front> element -->
  <define name="front-atts">
    <ref name="jats-common-atts"/>
    <optional>
      <attribute name="xml:lang">
        <data type="NMTOKEN"/>
      </attribute>
    </optional>
  </define>
  <!-- FRONT STUB ATTRIBUTES -->
  <!-- Attributes for the <front-stub> element -->
  <define name="front-stub-atts">
    <ref name="jats-common-atts"/>
    <optional>
      <attribute name="xml:lang">
        <data type="NMTOKEN"/>
      </attribute>
    </optional>
  </define>
  <!-- SUB-ARTICLE ATTRIBUTES -->
  <!-- Attributes for the <sub-article> element -->
  <define name="sub-article-atts">
    <ref name="jats-common-atts"/>
    <optional>
      <attribute name="article-type"/>
    </optional>
    <optional>
      <attribute name="specific-use"/>
    </optional>
    <optional>
      <attribute name="xml:lang">
        <data type="NMTOKEN"/>
      </attribute>
    </optional>
    <ref name="multi-lang-atts"/>
  </define>
  <!-- RESPONSE ATTRIBUTES -->
  <!-- Attributes for the <response> element -->
  <define name="response-atts">
    <ref name="jats-common-atts"/>
    <optional>
      <attribute name="response-type"/>
    </optional>
    <optional>
      <attribute name="specific-use"/>
    </optional>
    <optional>
      <attribute name="xml:lang">
        <data type="NMTOKEN"/>
      </attribute>
    </optional>
    <ref name="multi-lang-atts"/>
  </define>
  <!-- ============================================================= -->
  <!-- JOURNAL ARTICLE ELEMENTS -->
  <!-- ============================================================= -->
  <!-- ARTICLE MODEL (LIMITED) -->
  <!--
    Article-like model used for, for example,
    a short sub-article such as a news brief that
    is contained in side a journal article.
  -->
  <define name="article-short-model">
    <optional>
      <ref name="processing-meta"/>
    </optional>
    <choice>
      <ref name="front"/>
      <ref name="front-stub"/>
    </choice>
    <optional>
      <ref name="body"/>
    </optional>
    <optional>
      <ref name="back"/>
    </optional>
    <optional>
      <ref name="floats-group"/>
    </optional>
  </define>
  <!-- ARTICLE MODEL WITH SUB-ARTICLE OR RESPONSE -->
  <!--
    Typical journal article model, which may
    contain extended components, such as
    sub-articles or responses, but which usually
    contains neither.
  -->
  <define name="article-full-model">
    <optional>
      <ref name="processing-meta"/>
    </optional>
    <ref name="front"/>
    <optional>
      <ref name="body"/>
    </optional>
    <optional>
      <ref name="back"/>
    </optional>
    <optional>
      <ref name="floats-group"/>
    </optional>
    <choice>
      <zeroOrMore>
        <ref name="sub-article"/>
      </zeroOrMore>
      <zeroOrMore>
        <ref name="response"/>
      </zeroOrMore>
    </choice>
  </define>
  <!-- ARTICLE -->
  <!--
    The complete content of a journal article.
    Details at:
    https://jats.nlm.nih.gov/publishing/tag-library/1.4/index.html?elem=article
  -->
  <define name="article">
    <element name="article">
      <ref name="article-attlist"/>
      <ref name="article-full-model"/>
    </element>
  </define>
  <define name="article-attlist" combine="interleave">
    <ref name="article-atts"/>
  </define>
  <!-- ============================================================= -->
  <!-- FRONT MATTER ELEMENTS -->
  <!-- ============================================================= -->
  <!-- FRONT MATTER MODEL -->
  <!--
    Model for the <front> matter (the header
    metadata) of a journal article)
  -->
  <define name="front-model">
    <ref name="journal-meta"/>
    <ref name="article-meta"/>
    <zeroOrMore>
      <ref name="front-back.class"/>
    </zeroOrMore>
  </define>
  <!-- FRONT MATTER -->
  <!--
    The metadata concerning an article, such as
    the name and issue of the journal in which it
    appears and the name and author(s) of the
    article.
    Details at:
    https://jats.nlm.nih.gov/publishing/tag-library/1.4/index.html?elem=front
  -->
  <define name="front">
    <element name="front">
      <ref name="front-attlist"/>
      <ref name="front-model"/>
    </element>
  </define>
  <define name="front-attlist" combine="interleave">
    <ref name="front-atts"/>
  </define>
  <!-- ============================================================= -->
  <!-- BODY ELEMENTS -->
  <!-- ============================================================= -->
  <!-- BODY MODEL -->
  <!--
    Content model for the Body (main textual
    content) of a journal article.
  -->
  <define name="body-model">
    <zeroOrMore>
      <ref name="para-level"/>
    </zeroOrMore>
    <zeroOrMore>
      <ref name="sec-level"/>
    </zeroOrMore>
    <optional>
      <ref name="sig-block"/>
    </optional>
  </define>
  <!-- BODY OF THE ARTICLE -->
  <!--
    The main textual portion of the article that
    conveys the content.
    Details at:
    https://jats.nlm.nih.gov/publishing/tag-library/1.4/index.html?elem=body
  -->
  <define name="body">
    <element name="body">
      <ref name="body-attlist"/>
      <ref name="body-model"/>
    </element>
  </define>
  <define name="body-attlist" combine="interleave">
    <ref name="body-atts"/>
  </define>
  <!-- ============================================================= -->
  <!-- BACK MATTER ELEMENTS -->
  <!-- ============================================================= -->
  <!-- BACK MATTER MODEL -->
  <!--
    Content model for the Back Matter (ancillary
    material such as appendices) of a journal
    article.
  -->
  <define name="back-model">
    <optional>
      <ref name="label"/>
    </optional>
    <zeroOrMore>
      <ref name="title"/>
    </zeroOrMore>
    <zeroOrMore>
      <ref name="doc-back-matter-mix"/>
    </zeroOrMore>
  </define>
  <!-- BACK MATTER -->
  <!--
    Ancillary or supporting material not included
    as part of the main textual content of a
    journal article, for example appendices and
    acknowledgments.
    Details at:
    https://jats.nlm.nih.gov/publishing/tag-library/1.4/index.html?elem=back
  -->
  <define name="back">
    <element name="back">
      <ref name="back-attlist"/>
      <ref name="back-model"/>
    </element>
  </define>
  <define name="back-attlist" combine="interleave">
    <ref name="back-atts"/>
  </define>
  <!-- ============================================================= -->
  <!-- SUB-ARTICLE -->
  <!-- ============================================================= -->
  <!-- SUB-ARTICLE MODEL -->
  <!-- Content model for the <sub-article> element -->
  <define name="sub-article-model">
    <optional>
      <ref name="processing-meta"/>
    </optional>
    <choice>
      <ref name="front"/>
      <ref name="front-stub"/>
    </choice>
    <optional>
      <ref name="body"/>
    </optional>
    <optional>
      <ref name="back"/>
    </optional>
    <optional>
      <ref name="floats-group"/>
    </optional>
    <choice>
      <zeroOrMore>
        <ref name="sub-article"/>
      </zeroOrMore>
      <zeroOrMore>
        <ref name="response"/>
      </zeroOrMore>
    </choice>
  </define>
  <!-- SUB-ARTICLE -->
  <!--
    An article that is completely contained
    inside another article. Both the article and
    the sub-article have their own metadata.
    Details at:
    https://jats.nlm.nih.gov/publishing/tag-library/1.4/index.html?elem=sub-article
  -->
  <define name="sub-article">
    <element name="sub-article">
      <ref name="sub-article-attlist"/>
      <ref name="sub-article-model"/>
    </element>
  </define>
  <define name="sub-article-attlist" combine="interleave">
    <ref name="sub-article-atts"/>
  </define>
  <!-- FRONT MODEL STUB -->
  <!--
    Content model for the <front-stub> element,
    a reduced metadata set for use in
    sub-articles and responses
  -->
  <define name="front-stub-model">
    <zeroOrMore>
      <ref name="article-id"/>
    </zeroOrMore>
    <optional>
      <ref name="article-version.class"/>
    </optional>
    <optional>
      <ref name="article-categories"/>
    </optional>
    <zeroOrMore>
      <ref name="title-group"/>
    </zeroOrMore>
    <zeroOrMore>
      <choice>
        <ref name="contrib-group.class"/>
        <ref name="aff-alternatives.class"/>
      </choice>
    </zeroOrMore>
    <zeroOrMore>
      <ref name="author-notes"/>
    </zeroOrMore>
    <zeroOrMore>
      <ref name="content-language"/>
    </zeroOrMore>
    <choice>
      <zeroOrMore>
        <ref name="pub-date.class"/>
      </zeroOrMore>
      <optional>
        <ref name="pub-date-not-available"/>
      </optional>
    </choice>
    <zeroOrMore>
      <ref name="volume"/>
    </zeroOrMore>
    <zeroOrMore>
      <ref name="volume-id"/>
    </zeroOrMore>
    <optional>
      <ref name="volume-series"/>
    </optional>
    <zeroOrMore>
      <ref name="issue"/>
    </zeroOrMore>
    <zeroOrMore>
      <ref name="issue-id"/>
    </zeroOrMore>
    <zeroOrMore>
      <ref name="issue-title"/>
    </zeroOrMore>
    <zeroOrMore>
      <ref name="issue-title-group"/>
    </zeroOrMore>
    <zeroOrMore>
      <ref name="issue-sponsor"/>
    </zeroOrMore>
    <optional>
      <ref name="issue-part"/>
    </optional>
    <zeroOrMore>
      <ref name="volume-issue-group"/>
    </zeroOrMore>
    <zeroOrMore>
      <ref name="isbn"/>
    </zeroOrMore>
    <zeroOrMore>
      <ref name="supplement"/>
    </zeroOrMore>
    <optional>
      <choice>
        <group>
          <ref name="fpage"/>
          <optional>
            <ref name="lpage"/>
          </optional>
          <optional>
            <ref name="page-range"/>
          </optional>
        </group>
        <ref name="elocation-id"/>
      </choice>
    </optional>
    <zeroOrMore>
      <choice>
        <ref name="address-link.class"/>
        <ref name="product"/>
        <ref name="supplementary-material"/>
      </choice>
    </zeroOrMore>
    <optional>
      <ref name="history"/>
    </optional>
    <optional>
      <ref name="pub-history"/>
    </optional>
    <zeroOrMore>
      <ref name="permissions"/>
    </zeroOrMore>
    <zeroOrMore>
      <ref name="self-uri"/>
    </zeroOrMore>
    <zeroOrMore>
      <ref name="related-article.class"/>
    </zeroOrMore>
    <zeroOrMore>
      <ref name="abstract.class"/>
    </zeroOrMore>
    <zeroOrMore>
      <ref name="trans-abstract"/>
    </zeroOrMore>
    <zeroOrMore>
      <ref name="kwd-group.class"/>
    </zeroOrMore>
    <zeroOrMore>
      <ref name="funding-group"/>
    </zeroOrMore>
    <zeroOrMore>
      <ref name="support-group"/>
    </zeroOrMore>
    <zeroOrMore>
      <ref name="conference"/>
    </zeroOrMore>
    <optional>
      <ref name="counts"/>
    </optional>
    <zeroOrMore>
      <ref name="custom-meta-group"/>
    </zeroOrMore>
  </define>
  <!-- STUB FRONT METADATA -->
  <!--
    A reduced metadata set for use in
    sub-articles and responses, which will
    inherit metadata not defined in the stub
    from the enclosing article
    Details at:
    https://jats.nlm.nih.gov/publishing/tag-library/1.4/index.html?elem=front-stub
  -->
  <define name="front-stub">
    <element name="front-stub">
      <ref name="front-stub-attlist"/>
      <ref name="front-stub-model"/>
    </element>
  </define>
  <define name="front-stub-attlist" combine="interleave">
    <ref name="front-stub-atts"/>
  </define>
  <!-- ============================================================= -->
  <!-- RESPONSE ELEMENTS -->
  <!-- ============================================================= -->
  <!-- RESPONSE -->
  <!--
    Reply, response, or commentary concerning the
    journal article. In the typical case, the
    response is included in the same XML package
    as the original article, and thus attached
    at the end of the article proper.
    Details at:
    https://jats.nlm.nih.gov/publishing/tag-library/1.4/index.html?elem=response
  -->
  <define name="response">
    <element name="response">
      <ref name="response-attlist"/>
      <ref name="article-short-model"/>
    </element>
  </define>
  <define name="response-attlist" combine="interleave">
    <ref name="response-atts"/>
  </define>
  <start>
    <choice>
      <ref name="article"/>
    </choice>
  </start>
</grammar>
<!-- ================== End Journal Publishing DTD =============== -->
