Modules in the Authoring Tag Set and JATS DTD Suite

The Suite was created to allow a multiplicity of tag sets, based on the needs of the intended use, for example, an authoring tag set versus one for a repository. The Authoring Tag Set (JATS-articleauthoring1.dtd) and its specific customization modules (%articleauthcustom-classes.ent;, %articleauthcustom-mixes.ent;, %articleauthcustom-models.ent;, and %articleauthcustom-modules.ent;) define an authoring tag set focused on consistent modeling, processing and searching capability. The following modules are critical for the customization process that creates this Tag Set:
Authoring Tag Set
(File name JATS-articleauthoring1.dtd) The top-level Authoring Tag Set Module that declares the document element (<article>) and the other top-level elements that define a journal article (front matter, body, and back matter). All elements but these few are declared in the modules of the Suite. The DTD invokes all the other modules it uses, by reference, as external parameter entities: first the Authoring Tag-Set-specific Module of Modules is called to name all Article Authoring-specific customized modules, then the Suite Module of Modules is called to name all the potential modules from the Suite, then customized and default modules are called (for parameter entities naming element classes, mixes, and models), then the Common Module for shared elements and attribute lists is called, and finally all the other modules are called as needed, including the Tag-Set-specific element module, %nlmcitation.ent;.
Module to Name Authoring Tag-Set-specific Modules
(parameter entity %articleauthcustom-modules.ent;) Defines all the external modules that are specific to the Authoring Tag Set (except itself, which must be both named and called inside a DTD). A tag set selects from these modules by referencing the module names through external parameter entities. The entities are declared in the Authoring Tag-Set-specific Module of Modules (%articleauthcustom-modules.ent;), but referenced (or not) in the DTD proper. To include a set of elements (such as all the lists or all the MathML elements), a DTD references the external parameter entity of the module that contains these declarations.
Implementor’s Note: The Authoring Tag-Set-specific Module of Modules and the Suite Module to Name the Modules (along with the MathML 3 modules, if used) need to be the among the first three external modules called by the Authoring DTD. Customization modules for classes, mixes, and models will typically be called following the Authoring Tag-Set-specific Modules and the Module to Name the Modules.
Suite Module to Name the Modules
(parameter entity %modules.ent;) Defines all the external modules that are part of the modular JATS DTD Suite (except itself, which must be both named and called inside a DTD). A tag set selects from these modules by referencing the module names through external parameter entities. The entities are declared in the Module to Name the Modules (%modules.ent;), but referenced (or not) in the DTD proper. To include a set of elements (such as all the article metadata or all the display elements) a DTD references the external parameter entity of the module that contains these declarations.
Implementor’s Note: The Authoring Tag-Set-specific Modules and the Suite Module to Name the Modules (along with the MathML 3 modules, if used) need to be the among the first three external modules called by the Authoring DTD. Customization modules for classes, mixes, and models will typically be called following the Authoring Tag-Set-specific Modules and the Module to Name the Modules.
Authoring Tag Set Class Customizations Module
(parameter entity %articleauthcustom-classes.ent;) Sets up parameter entities that will be used to override default classes prescribed by the %default-classes.ent; module
Implementor’s Note: This module must be called after the Authoring Tag-Set-specific Modules (%articleauthcustom-modules.ent;) and the Suite Module to Name the Modules (%modules.ent;) but before any other module, including specifically the %default-classes.ent; module (which this module overrides) and the %articleauthcustom-mixes.ent; and %articleauthcustom-models.ent; modules (which build on this module).
Suite Default Element Classes Module
(parameter entity %default-classes.ent;) Sets up the parameter entities that name the element members of each class that will be used to establish the content models
Implementor’s Note: This module must be called before the Article Authoring override Mixes Module (%articleauthcustom-mixes.ent;) and the Default Element Mixes Module (%default-mixes.ent;), as well as the Article Authoring override Models Module, %articleauthcustom-models.ent; (which builds on those modules).
Authoring Tag Set Mix Customizations Module
(parameter entity %articleauthcustom-mixes.ent;) Sets up parameter entities that will be used to override default mixes (groupings made of “classes”) prescribed by the %default-mixes.ent; module
Implementor’s Note: This module must be called after the Article Authoring override Classes Module (%articleauthcustom-classes.ent;) and the Default Classes Module (%default-classes.ent;) but before any other module, including specifically the %default-mixes.ent; module (which this module overrides) and the %articleauthcustom-models.ent; module (which builds on this module).
Suite Default Element Mixes Module
(parameter entity %default-mixes.ent;) Sets up the parameter entities that name mixes (groupings made of “classes”) that will be used to establish the content models
Implementor’s Note: This module must be called before the Article Authoring override Models Module (%articleauthcustom-models.ent;) or any “base” module of the interchange Suite.
Article Authoring Tag Set Customize Content and Attributes Module
(parameter entity %articleauthcustom-models.ent;) sets up parameter entities that will be used to override default content model parameter entities set elsewhere in the Suite. Also defines customizable attribute Declared Values and attribute lists for the tag set being defined.
Implementor’s Note: This module must be called after the Article Authoring override Mixes Module (%articleauthcustom-mixes.ent;) and Default Mixes Module (%default-mixes.ent;) but before any “base” module of the interchange Suite.
The NISO JATS common modules, which are overridden by the customizations, include the following:
Suite Module to Name the Modules
(parameter entity %modules.ent;) Defines all the external modules that are part of the modular NISO JATS DTD Suite (except the module itself, which must be both named and called inside a DTD). A Tag Set selects from the Suite modules by referencing the module names through external parameter entities. The entities are declared in the Module to Name the Modules (%modules.ent;), but referenced (or not) in the DTD proper. To include a set of elements (such as all the article metadata or all the display elements) a DTD references the external parameter entity of the module that contains these declarations.
Implementor’s Note: The Authoring Tag-Set-specific Module of Modules and the Suite Module to Name the Modules (along with the MathML 3 modules, if used) need to be the among the first three external modules called by the Authoring DTD. Customization modules for classes, mixes, and models are typically be called next, following these two.
ALI Namespace Module
(parameter entity %JATS-ali-namespace.ent;) Namespace setup for the NISO Access License and Indicators elements (prefix “ali:”). The elements are defined in the JATS Common module (described below).
Common (Shared) Attributes Module
(parameter entity %JATS-common-atts.ent;) Defines attributes intended to be used on ALL elements defined in the NISO JATS, including table elements for both the XHTML-inspired and OASIS-inspired table models, with the exception of <mml:math> whose namespaces JATS does not control.
Must be called after all module-of-modules modules and any namespacing modules, but before all customization (over-ride) modules.
Suite Default Element Classes Module
(parameter entity %default-classes.ent;) Sets up the parameter entities that name the element members of each class that will be used to establish the content models
Implementor’s Note: This module must be called before the Authoring DTD Customize Mixes Module (%articleauthcustom-mixes.ent;) and the Default Element Mixes Module (%default-mixes.ent;), as well as the Authoring DTD Customize Models Module, %articleauthcustom-models.ent; (which builds on those modules).
Suite Default Element Mixes Module
(parameter entity %default-mixes.ent;) Sets up the parameter entities that name mixes (groupings made of “classes”) that will be used to establish the content models
Implementor’s Note: This module must be called before the Authoring DTD Customize Models Module (%articleauthcustom-models.ent;) or any “base” module of the NISO JATS DTD Suite.
Common (Shared) Elements Module
(parameter entity %common.ent;) Declarations for elements, attributes, entities, and notations that are shared by more than one class module
Implementor’s Note: This module must be called before any of the modules comprising the interchange Suite.
The modules that define the elements and attributes that make up the Suite are defined by the following modules. These too may be overridden by the customization modules of the Archiving DTD.
Article Metadata Elements Module
(parameter entity %articlemeta.ent;) Declares the metadata elements (issue elements and article header elements) used to describe a journal article
Design Note: Metadata elements that describe the journal are in the Journal Metadata Module, %journalmeta.ent;.
Back Matter Elements Module
(parameter entity %backmatter.ent;) Declares elements that are not part of the main textual flow of a work, but are considered to be ancillary material such as appendices, glossaries, and bibliographic reference lists
Display Class Elements Module
(parameter entity %display.ent;) Declares the display-related elements, such as figures, graphics, math, chemical expressions and structures, tables, etc.
Format Class Elements Module
(parameter entity %format.ent;) Declares elements concerned with rendition of output, for example, printing on a page or display on a screen. This module includes the elements in the Appearance Class, the Break Class, and the Emphasis Class.
Funding Elements Module
(parameter entity %funding.ent;) Declares elements that model open access, grant, sponsorship, or other funding information, for example, the grant number (<award-id>) and the grant holder (<principal-award-recipient>)
Journal Metadata Elements Module
(parameter entity %journalmeta.ent;) Declares the elements used to describe the journal in which a journal article is published
Design Note: The issue and article metadata is defined in the Article Metadata module, %articlemeta.ent;.
Link Class Elements Module
(parameter entity %link.ent;) Declares elements that are links (internal or external) by definition, such as URLs (<uri>) and internal cross references (<xref>)
List Class Elements Module
(parameter entity %list.ent;) Declares the elements in the List Class; these are all lists except the lists of bibliographic references (citations). Lists are considered to be composed of items.
Math Class Elements Module
(parameter entity %math.ent;) Declares the elements in the math classes such as display equations
NLM Citation Module
(parameter entity %nlmcitation.ent;) Adds the model for the NLM structured bibliographic citation element (<nlm-citation>). This element is now obsolete and should be replaced by either the <element-citation> or the <element-citation> element.
Paragraph-Like Elements Module
(parameter entity %para.ent;) Declares structural, non-display elements that may appear in the same places as a paragraph. These elements are named in the various paragraph class parameter entities.
Subject Phrase Class Elements Module
(parameter entity %phrase.ent;) Declares the Phrase Class elements, that is, names the inline, subject-specific elements
Bibliographic Reference (Citation) Class Elements Module
(parameter entity %references.ent;) Declares the bibliographic reference elements
Related Object Elements Module
(parameter entity %related-object.ent;) Defines the container element <related-object>, used as a container for text links to a related object, possibly accompanied by a very brief description of the object
Section Class Elements Module
(parameter entity %section.ent;) Declares the elements of the Section Class, that is, declares all section-level elements in the Article Authoring Tag Set
The modules that define the MathML 2.0 AND MathML 3.0 elements and attributes:
MathML 2.0 Setup Module
(parameter entity %mathmlsetup.ent;) Invokes the MathML 2.0 modules
Implementor’s Note:: To include the MathML 2.0 elements, a DTD must reference this module. This module sets up all parameter entities needed to use the MathML 2.0 Tag Set and references (invokes) the MathML 2.0 Tag Set Module, which, in turn, invokes all the other MathML 2.0 modules. Warning: MathML 2.0 and MathML 3.0 may not be used together, a Tag Set must choose one or the other.
MathML 3.0 Setup Module
(parameter entity %mathml3-mathmlsetup.ent;) Invokes the MathML 3.0 modules
Implementor’s Note:: To include the MathML 3.0 elements, a DTD must reference this module. This module sets up all parameter entities needed to use the MathML 3.0 Tag Set and references (invokes) the MathML 3.0 Tag Set Module, which, in turn, invokes all the other MathML 3.0 modules. Warning: MathML 2.0 and MathML 3.0 may not be used together, a Tag Set must choose one or the other.
MathML 3.0 Modules
(parameter entity %mathml3-modules.ent;) Names the modules needed for MathML 3.0.
MathML DTD
(parameter entity %mathml.dtd;) Used for either the Mathematical Markup Language (MathML) 2.0 or the MathML 3.0, an XML application for describing mathematical notation and capturing both its structure and content
MathML Qualified Names 1.0
(parameter entity %mathml-qname.mod;) Declares parameter entities to support namespace-qualified names, namespace declarations, and name prefixing for MathML, as well as declares the parameter entities used to provide namespace-qualified names for all MathML element types. Used for either MathML 2.0 or MathML 3.0.
Extra Entities for MathML
(parameter entity %ent-mmlextra;) Used for MathML processing. Used for either MathML 2.0 or MathML 3.0.
Aliases for MathML
(parameter entity %ent-mmlalias;) Used for MathML processing. Used for either MathML 2.0 or MathML 3.0.
The modules that define the NISO JATS XHTML-inspired table model are:
NISO JATS XHTML-inspired Table Setup Module
(parameter entity %XHTMLtablesetup.ent;) Sets all parameter entities needed by the NISO JATS XHTML-inspired Table Module, and then invokes the module containing that model
To include the NISO JATS XHTML-inspired table model in a tag set, a DTD must reference this module. This module sets up all parameter entities needed to use the XHTML-inspired Table Module and references (invokes) the NISO JATS XHTML-inspired Table Module. (See next item.)
NISO JATS XHTML-inspired Table Module
(parameter entity %xhtml-table-1.mod;) The public XML DTD version of the XHTML-inspired Table Module. This module is invoked from the module %XHTMLtablesetup.ent;. (See previous item.) This is the default table model for this Tag Set.
NISO JATS XHTML-inspired Table Style Module
(parameter entity %xhtml-inlstyle-1.mod;) Declares the @style attribute, which supports inline style markup for elements such as <td> and <tr> within XHTML-inspired Table.
The modules that define character entities and notations (all optional):
XML Special Characters Module
(parameter entity %xmlspecchars.ent;) Standard ISO XML special character entities used in this Tag Set
Custom Special Characters Module
(parameter entity %chars.ent;) Custom special character entities created specifically for use in this Tag Set
Notation Declarations Module
(parameter entity %notat.ent;) Container module for the Notation Declarations to be used with this Suite. These notations have been placed in their own module for easy expansion or replacement.