General Changes

The critical difference between Version 3.0 and all prior versions of the Tag Sets is in the area of compatibility. All prior versions have been document-backward compatible, meaning that even when the previous versions were modified, any document that was valid to a version of the Tag Sets was valid in any newer versions (with the insignificant exception of the version flag attribute). In Version 3.0, for the first time, changes have been made that render documents that are valid to a prior Tag Set version invalid in 3.0. This invalidity is caused by, for example, element name changes (where the semantics and content remain the same and only the name has been changed) and the addition of new container elements surrounding elements that were previously allowed as direct children.

This section lists two kinds of changes:

Module Name Changes

For the first time, the module filenames reflect the version number, for example, a module whose name in previous versions was %list.ent; is now named list3.ent. The current plan is that future dot releases (3.1, 3.2, etc.) will not be reflected in the filename (not list3-1.ent, list3-2.ent, etc.) but will remain named with a single digit “3” (list3.ent), which will not change until the next major release, 4.0 will be list4.ent.

The new file names are:

Element Name Changes

The following elements have been renamed, in both the default modules and in all tag-set-specific overrides, to keep the Tag Set naming more consistent.

The name changes described below came as a result of making more formal the meaning and connotation of the suffixes “-group”and “-wrap” (which was unified, being formerly both “wrap” and “wrapper”). A “group” is defined as a container element for multiple examples of the same type of object or multiple examples of similar objects, e.g., groups of tables, figures, keywords, etc. In contrast, a “wrap”, is a container element that “wraps up” up all the parts of one object, e.g., a table and its label, caption, and notes.

Changes in Classes

The following changes were made to the element classes defined in default-classes3.ent:

Changes to General Mixes

Journal Metadata

In journalmeta3.ent, in the model for journal metadata (<journal-meta>):

Funding Information

The previous models for funding (grant, sponsor, et al.) were not robust enough to record the funding metadata that many sources are requiring, for example:

So, in Version 3.0, an all new funding model has been created that completely replaces all the previous funding/sponsor elements.

New Module — A new module funding3.ent was created to hold the new funding elements. The module was formally defined in modules3.ent and a call to the module was added to each of the following DTDs:

The XSD and RELAX NG versions of the Tag Sets are produced programmatically from the DTD modules, so the new funding metadata has been added to all Tag Sets.

New Elements — The newly defined funding elements include:

Deletions — To make way for the new model, the following elements have been deleted from common3.ent:

The following PEs (used by the deleted elements) were also removed:

Class Changes — In default-classes3.ent, the following changes have also been made in the classing structure:

Model Changes — In addition, the new funding models required the following changes:

Article Metadata Element

The new default %article-meta-model; after all changes, which is not used since Archiving overrides it, is:

(article-id*, article-categories?, 
title-group?, (contrib-group | aff)*, 
author-notes?, pub-date*, 
volume?, volume-id*, volume-series?, 
issue?, issue-id*, issue-title*,
issue-sponsor*, issue-part?, isbn*, 
supplement?, 
( (fpage, lpage?, page-range?) | 
elocation-id )?, 
(%address-link.class; | product |
supplementary-material)*, 
history?, permissions?, self-uri*, 
related-article*, abstract*, 
trans-abstract*, kwd-group*, funding-group*,
conference*, counts?, custom-meta-group?)

The actual Authoring model for article metadata is:

(article-id*, article-categories?, 
title-group?, (contrib-group | aff | %x.class;)*, 
author-notes?, pub-date*, 
volume?, volume-id*, volume-series?, 
issue?, issue-id*, issue-title*,
issue-sponsor*, issue-part?, isbn*, 
supplement?, 
( (fpage, lpage?, page-range?) | 
elocation-id )?, 
(%address-link.class; | product |
supplementary-material)*, 
history?, permissions?, self-uri*, 
related-article*, abstract*, 
trans-abstract*, kwd-group*, funding-group*,
conference*, counts?, custom-meta-group?)

In the module articlemeta3.ent, the following changes have been made to the <article-meta> (using %article-meta-model;):

Other Article Metadata

Other article metadata elements have changed as well:

Other Metadata Elements

Chemical Structures Changes

Although it was not the intent when the Tag Sets were written, most Tag Set users have been treating <chem-struct> as an inline and <chem-struct-wrap> as a block structure. This greatly simplifies all processing with the two and seems quite flexible, so steps were taken to regularize this usage:

The element <chem-struct-wrap> has also been removed from some elements, where it was allowed in previous versions. Thus the only remaining inline chemical element is <chem-struct>. This backward-incompatible change removes <chem-struct-wrap> from the following elements:

  • <td> and <th> (using %inside-cell;) (Archiving, through an override, still allows both chemical elements inside a table cell.)
  • <term> (using %term-elements;) (Note: Archiving, through an override, still allows both chemical elements inside a <term>.)

The inline element <chem-struct> has been removed from within the following elements, where it has been allowed in previous versions, allowing only the block <chem-struct-wrap> to be used. [Backward incompatible]

Back Matter Elements

Glossary

Made the model of <glossary> recursive (as reference lists have been recursive) instead of using the artificial gloss-group structure. For all Tag Sets except Authoring (which has its own override), in backmatter3.ent:

  • Glossary — Changed the model of <glossary> to be recursive, deleting the element gloss-group. The parameter entity %glossary-model; was changed from:
    (title?, (%para-level;)*, gloss-group*)

    to the following recursive model:
    (label?, title?, (%para-level;)*, glossary*)

    The recursive <glossary> element allows a glossary list to be divided into subgroups of terms, usually titled subgroups. The para-level content following the title allows for those glossaries that have one or more paragraphs of explanation followed by a <def-list> that contains the terms and definitions. Because glossaries that are bulleted lists or just a series of paragraphs have also been seen in the wild, this model is deliberately loose.
  • Glossary Group
    • Deleted the element gloss-group
    • Deleted the parameter entities gloss-group-model and gloss-group-atts

Reference Lists

New Labels

Added an optional <label> to just before <title> in all the following elements:

Processing Alternatives

Tag set implementors requested a structure to hold multiple forms or processing versions of a single object. Typically, the Tag Set end-user is not aware of these groupings; they are for purposes of processing and for use by production personnel or by software. The new element <alternatives> has been defined to contain multiple, logically equivalent (substitutable) versions of the same information object. The typical use for <alternatives> is a graphic which is shipped with an article in multiple versions (such as a tif, jpeg, and SVG image) or an inline equation that is available as a tif image, tagged in MathML XML tags, and as a TeX equation. The <alternatives> element is neither a block object nor an inline object; those are the properties of the element that contains the alternatives.

The following modifications added this capability:

Equation Groups (new structure)

In math3.ent, added new element <disp-formula-group> to hold groups of equations that must be displayed together. Equations within such groups may be given a single (group) number, numbered individually, or both. Created new PEs %disp-formula-group-model; and %disp-formula-group-atts; to define this element and its attributes. The model for <disp-formula-group> is:

((%caption.class;)?, (%access.class; | %address-link.class;)*, 
(%block-math.class;)* )

The group has the following attributes:

id ID #IMPLIED
content-type CDATA #IMPLIED 
specific-use CDATA #IMPLIED

The new <disp-formula-group> element was added to the Parameter Entity %block-math.class;, which adds the element everywhere that <disp-formula> can be used:

Modified Elements

MathML Changes

Annotation Content — In MathML, the elem-mml:annotation element is intended for documentation. In order not to limit the content, the default MathML element has a content model of ANY. In the usage of these Tag Sets, this allows any element in either the MathML Suite or the NLM Tag Set to be used inside elem-mml:annotation. Since the elem-mml:annotation structure was clearly intended merely to document the math, these Tag Sets have redefined elem-mml:annotation to be (p+), in mathmlsetup3.ent by redefining %Annotation-xml.content;.

Modified Inline Elements

Attribute Changes

Specific Use Attributes

The new element <styled-content> is used to record stylistic or usage distinctions in much the way the <named-content> element is used to record semantic distinctions (which may or may not have styling or usage consequences). The element <styled-content> takes a @specific-use attribute that records usage, audience, or stylistic distinctions, for example, “web only”, “print only”, “voice only”, “for teachers”, “for patients”, etc. This new attribute has been added to many elements.

Parameter Entities