Changes to Authoring

Version 2.3 was an enhancement release that made changes requested by the Working Group based on operational concerns. All changes to content models and attribute lists have been made backward compatible. As an example, a new XHTML “style” attribute was added to all the elements inside <table> and the “content-type” attribute was distributed widely to add or preserve semantic information.


1.0 Specific Authoring Tag Set Changes (Pumpkin)

The following changes were made to the Authoring DTD and its DTD-specific modules. In addition to the technical changes, each Authoring module had its formal public identifier and comment date changed to reflect Version 2.3 February 02, 2007. The new identifiers are reflected in the two catalog files and the module calls in the DTD. In addition to these specific changes, the full Suite changes listed in Section 2.0 Changes to the Entire Suite also impact the Authoring DTD. Modules changed include:


1.1 Authoring Element Changes

  • Anonymous — In %articleauthcustom-models.ent;, over-rode model (%anonymous-model;) for new element <anonymous> to create EMPTY element. (The new element <anonymous> is defined in %common.ent;.)
  • Article Metadata — In %articleauthcustom-models.ent;, added <grant-num> and <grant-sponsor> to the model for <article-meta>. (This is considered a temporary addition; a more structured model for grant material and sponsorship is anticipated in a future release.)
  • Citation / Product / Related Article — In %articleauthcustom-classes.ent;, added <conf-sponsor> and <institution> to %references.class;. This change impacts the models for <citation>, <product>, and <related-article>.
  • Contributor / Person Group — In %articleauthcustom-classes.ent;, added the new element <anonymous> to %name.class;. This change will impact the models for <contrib> and <person-group>.
  • Figure — In %articleauthcustom-models.ent;, added the new PE %chem-struct-wrap.class; to %fig-model;, thereby adding <chem-struct-wrapper> to the model for <fig>.
  • NLM Citation — In %articleauthcustom-classes.ent;, added the element <nlm-citation> to %citation.class; so that its more structured model can be used anywhere <citation> may be used, for example, inside the XHTML table elements <th> and <td>. (The element <nlm-citation> was already used in the Authoring DTD; the use of the new %citation.class; to allow more model flexibility.)
  • Product — In %articleauthcustom-models.ent;, over-rode %product-elements; to include the new element <size> (by way of the new %size.class;) inside <product>.
  • Reference — In %articleauthcustom-models.ent;, changed the reference model (%ref-model;) to include %citation.class; to permit the use of <nlm-citation> inside a <ref> element.
  • Related Article — In %articleauthcustom-models.ent;, added <journal-id> (by way of a new class %journal-id.class;) to the element mix %related-article-elements; used in the <related-article> element.
  • Term — In %articleauthcustom-models.ent;, added the new PE %chem-struct-wrap.class; to %term-elements;, thereby adding <chem-struct-wrapper> to the model for <term>.

1.2 Authoring Attribute Changes

  • Baseline Shift — In %articleauthcustom-models.ent;, added a new attribute “baseline-shift” to the over-ride PE %inline-graphic-atts; (for the element <inline-graphic>). This attribute will indicate the position of an inline graphic vis-a-vis the text baseline.
  • DTD Version — In articleauthoring.dtd, changed the fixed value for the attribute “dtd-version” to “2.3” (by way of the PE %dtd-version;).
  • Mimetype — In %articleauthcustom-models.ent;, the “mimetype” attribute is now a CDATA type with no fixed default value for <graphic> (via %graphic-atts;).
  • Mime Subtype — In %articleauthcustom-models.ent;, the “mime-subtype” attribute is now a CDATA type (rather than an enumerated list of values) with no default value for <graphic> (via %graphic-atts;).
  • Person Group Attributes — In %articleauthcustom-models.ent;, added the attribute “id” (with an attribute type of ID) to the attribute list for the element <person-group> (by way of %person-group-atts;).

1.3 Authoring DTD Classes Changes

  • Phrase Class — In %articleauthcustom-models.ent;, over-rode base Suite PE %phrase.class; to remove <milestone-start> and <milestone-end> elements added in this release; such elements are used for archival purposes, not for authoring. (The elements’ removal returns %phrase.class; to that in version 2.2 for the Authoring DTD.)

1.4 Authoring DTD housekeeping

  • NLM Citation Module — In %articleauthcustom-modules.ent;, added the NLM Citation Module’s declaration to permit its use as part of the Authoring DTD; the module is now invoked in articleauthoring.dtd.
  • Person Group — In %articleauthcustom-models.ent;, removed %person-group-model; because changes made it the same as the model in the base Suite.

2.0 Changes to the Entire Suite


2.1 Version Number and Date

The version number for virtually all Suite modules was set to “v2.3 20070202”. This change was made in the initial comments for a module, in the formal public identifier in the module, in the Suite Module of Modules or the DTDs themselves where the modules were called, and in the XML and SOCAT catalogs.

The only modules whose version number was not changed to “v2.3 20070202” are those publicly available and being used as part of the NLM Suite, as these modules are not under NLM’s control:

  • xhtml-table-1.mod (replacing htmltable.dtd)
  • xhtml-inlstyle-1.mod (XHTML inline style module)
  • mathml2.dtd (and related MathML modules mathml2-qname-1.mod, mmlalias.ent, and mmlextra.ent )
    the OASIS Exchange CALS table modules


2.2 Table Module Replacement

The table model being used by all DTDs in the NLM Suite, htmltable.dtd, has been replaced with a later version, XHTML version 1.1 (xhtml-table-1.mod). This later version permits greater modularity, but changes NO content models for table elements. In addition, a new table module %xhmtl-inlstyle-1.mod; has been added to the Suite in order to use a “style” attribute with table elements. The new table model and “style” module are declared in %modules.ent; and invoked in %xhtmltablesetup.ent;. This information is also recorded in the catalogs accompanying the NLM Suite.


2.3 Suite Element Changes

The following elements were added or modified in the basic modules of the suite, and are applicable to the Article Authoring DTD as they have not been over-ridden in any of the Authoring customization modules.

  • Anonymous — In %common.ent;, created new element <anonymous> with two new PEs, %anonymous-model; and %anonymous-elements;. The default model contains character data with basic face markup, i.e., %anonymous-elements;.
  • Grant Information — In %common.ent;, separated grant information from contract information by creating two new elements and related PEs:
    • <grant-num>
    • <grant-sponsor>
    • %grant-elements;
    • %grant-sponsor-elements;
  • Paragraph — In %para.ent;, changed %p-elements; to include the new class %contract-grant.class; thereby adding contract or grant information to paragraphs.
  • Size — In %common.ent;, created new element <size> to indicate the length of a video, page range of a book or article, etc.
  • Speaker — In %default-classes.ent;, the element <degrees> was added to %person-name.class;, thereby adding to <speaker> (by way of %speaker-elements;).
  • Supplement — In %articlemeta.ent;, the PE %supplement-elements; has been modified to include the new elements <contrib-group> and <title>, using the new entity %other-meta.class;; %supplement-elements; is used in the model for <supplement>.
  • Table Cells — Changed PE %inside-cell; to include <chem-struct-wrapper> (by way of new PE %chem-struct-wrap.class;)

2.4 Suite Attribute Changes

The following Suite changes are applicable to the Article Authoring DTD and have not been over-ridden in any of the Publishing-related customization modules.

  • Country — In %common.ent;, the element <country> has a new attribute “country” (by way of a new PE %country-atts;); this provides a way to regularize metadata while preserving content unchanged, i.e., “US” as the attribute value while the element content is “USA”.
  • Identifier — Added the attribute “id” (with an attribute type of ID) to the attribute list for the following elements:
    • <abstract> (%abstract-atts; in %articlemeta.ent;)
    • <app-group> (%app-group-atts; in %backmatter.ent;)
    • <article-title> (%article-title-atts; in %common.ent;)
    • <attrib> (%attrib-atts; in %common.ent;)
    • <author-comment> (%author-comment-atts; in %articlemeta.ent;)
    • <contrib-group> (%contrib-group-atts; in %articlemeta.ent;)
    • <gloss-group> (%gloss-group-atts; in %backmatter.ent;)
    • <kwd> (%kwd-atts; in %articlemeta.ent;)
    • <product> (%product-atts; in %articlemeta.ent;)
    • <ref-list> (%ref-list-atts; in %references.ent;)
    • <title> (%title-atts; in %common.ent;)
    • <trans-title> (%trans-title-atts; in %common.ent;)
  • Patent Country — In %references.ent;, the element <patent> has a new attribute “country” (by way of a new PE %patent-atts;) to indicate the country that has issued a patent, the value of which should be a ISO 31660-1 2-letter alphabet code where possible.
  • Rationale — Created two new elements <milestone-start> and <milestone-end> for those instances where the regular hierarchy is not enough and added this attribute to <milestone-start> to say why the milestone.
  • Sequence — In %common.ent;, the elements <volume> and <issue> have a new attribute “seq” to hold the sequence number for articles that are not numbered in one sequence for an entire issue or volume.
  • Style — In %xhtmltablesetup.ent;, the new attribute “style” is added to the PE %Common.attrib; (by way of %Core.extra.attrib;). Consequently, this new attribute will be available with virtually all table elements. (The “style” attribute and the PE %Core.extra.attrib; are declared in the new module, %xhml-inlstyle-1.mod;, which has been added with version 1.1 of the XHTML table model in this release.)
  • Units — In %common.ent;, the new element <size> uses an attribute “units” to indicate the units of measurement used.
  • Content Type — Added the attribute “content-type” to the attribute list for the following elements:
    • <abbrev> (%abbrev-atts; in %phrase.ent;)
    • <access-date> (%access-date-atts; in %references.ent;)
    • <addr-line> (%addr-line-atts; in %common.ent;)
    • <address> (%address-atts; in %common.ent;)
    • <aff> (%aff-atts; in %common.ent;)
    • <alt-text> (%alt-text-atts; in %common.ent;)
    • <annotation> (%annotation-atts; in %references.ent;)
    • <app> (%app-atts; in %backmatter.ent;)
    • <app-group> (%app-group-atts; in %backmatter.ent;)
    • <author-comment> (%author-comment-atts; in %articlemeta.ent;)
    • <comment> (%comment-atts; in %references.ent;)
    • <conf-acronym> (%conf-acronym-atts; in %common.ent;)
    • <conf-date> (%conf-date-atts; in %common.ent;)
    • <conf-loc> (%conf-loc-atts; in %common.ent;)
    • <conf-name> (%conf-name-atts; in %common.ent;)
    • <conf-num> (%conf-num-atts; in %articlemeta.ent;)
    • <conf-sponsor> (%conf-sponsor-atts; in %articlemeta.ent;)
    • <conf-theme> (%conf-theme-atts; in %articlemeta.ent;)
    • <conference> (%conference-atts; in %common.ent;)
    • <contract-num> (%contract-atts; in %common.ent;)
    • <contract-sponsor> (%contract-atts; in %common.ent;)
    • <contrib-group> (%contrib-group-atts; in %articlemeta.ent;)
    • <copyright-holder> (%copyright-holder-atts; in %common.ent;)
    • <copyright-statement> (%copyright-statement-atts; in %common.ent;)
    • <copyright-year> (%copyright-year-atts; in %common.ent;)
    • <country> (%country-atts; in %common.ent;)
    • <day> (%day-atts; in %common.ent;)
    • <def-list> (%def-list-atts; in %list.ent;)
    • <degrees> (%degrees-atts; in %articlemeta.ent;)
    • <disp-formula> (%disp-formula-atts; in %math.ent;)
    • <disp-quote> (%disp-quote-atts; in %para.ent;)
    • <edition> (%edition-atts; in %references.ent;)
    • <elocation-id> (%elocation-id-atts; in %common.ent;)
    • <email> (%email-atts; in %common.ent;)
    • <fax> (%fax-atts; in %common.ent;)
    • <fpage> (%fpage-atts; in %common.ent;)
    • <glossary> (%glossary-atts; in %backmatter.ent;)
    • <gloss-group> (%gloss-group-atts; in %backmatter.ent;)
    • <gov> (%gov-atts; in %references.ent;)
    • <grant-num> (%contract-atts; in %common.ent;)
    • <grant-sponsor> (%contract-atts; in %common.ent;)
    • <inline-formula> (%inline-formula-atts; in %math.ent;)
    • <inline-graphic> (%inline-graphic-atts; in %display.ent;)
    • <inline-supplementary-material> (%inline-supplementary-material-atts; in %link.ent;)
    • <institution> (%institution-atts; in %common.ent;)
    • <isbn> (%isbn-atts; in %references.ent;)
    • <issue> (%issue-atts; in %common.ent;)
    • <issue-id> (%issue-id-atts; in %common.ent;)
    • <issue-title> (%issue-title-atts; in %common.ent;)
    • <journal-subtitle> (%journal-subtitle-atts; in %journalmeta.ent;)
    • <journal-title> (%journal-title-atts; in %journalmeta.ent;)
    • <lpage> (%lpage-atts; in %common.ent;)
    • <long-desc> (%long-desc-atts; in %common.ent;)
    • <media> (%media-atts; in %display.ent;)
    • <month> (%month-atts; in %common.ent;)
    • <name> (%name-atts; in %common.ent;)
    • <object-id> (%object-id-atts; in %common.ent;)
    • <page-range> (%page-range-atts; in %common.ent;)
    • <patent> (%patent-atts; in %references.ent;)
    • <phone> (%phone-atts; in %common.ent;)
    • <ref> (%ref-atts; in %references.ent;)
    • <ref-list> (%ref-list-atts; in %references.ent;)
    • <role> (%role-atts; in %common.ent;)
    • <season> (%season-atts; in %common.ent;)
    • <self-uri> (%self-uri-atts; in %articlemeta.ent;)
    • <series> (%series-atts; in %references.ent;)
    • <source> (%source-atts; in %references.ent;)
    • <speaker> (%speaker-atts; in %para.ent;)
    • <speech> (%speech-atts; in %para.ent;)
    • <statement> (%statement-atts; in %para.ent;)
    • <std> (%std-atts; in %references.ent;)
    • <subtitle> (%subtitle-atts; in %articlemeta.ent;)
    • <suffix> (%suffix-atts; in %common.ent;)
    • <supplementary-material> (%supplementary-material-atts; in %display.ent;)
    • <time-stamp> (%time-stamp-atts; in %references.ent;)
    • <title> (%title-atts; in %common.ent;)
    • <trans-source> (%source-atts; in %references.ent;)
    • <trans-title> (%trans-title-atts; in %common.ent;)
    • <uri> (%uri-atts; in %common.ent;)
    • <verse-group> (%verse-group-atts; in %para.ent;)
    • <verse-line> (%verse-line-atts; in %para.ent;)
    • <volume> (%volume-atts; in %common.ent;)
    • <volume-id> (%volume-id-atts; in %common.ent;)
    • <year> (%year-atts; in %common.ent;)

2.5 Suite Classes DTD Changes

The following class changes were made in the suite, and are applicable to the Article Authoring DTD as they have not been over-ridden in any of the Authoring customization modules. In the module %default-classes.ent;:

  • Chemical Structure Wrapper Class — Created a new class %chem-struct-wrap.class; to contain the element <chem-struct-wrapper>.
  • Contract/Grant Class — Created a new class %contract-grant.class; to hold the elements <contract-num>, <contract-sponsor>, <grant-num> and <grant-sponsor>.
  • Inline Math Class —Added <chem-struct> to the class %inline-math.class; so it may be used anywhere the element <inline-formula> may be used.
  • Journal ID Class — Created a new class %journal-id.class; to hold the element <journal-id>.
  • Other Metadata Class — Created a new class %other-meta.class; to provide article-like metadata about objects such as supplements; this class contains <contrib-group> and <title>.
  • Person Group Information Class — Created a new class %person-group-info.class; to hold the elements <aff> and <etal>. This class is used as part of the model for the element <person-group>.
  • Size Class — Created a new class %size.class; to contain the new element <size>.

2.6 Suite Housekeeping

The following modifications make no change to the content models of the elements involved, but, for example, change the module location of the element or the use of a class inside of the content model instead of using an element name directly. These changes help simplify future modifications.

  • New Element PEs — In %para.ent;, created PEs for the content models of:
    • <speech> (%speech-model;)
  • Declarations Relocation
    • Contract Information — Moved the following from %articlemeta.ent; to %common.ent; since contract information may now be present inside a paragraph as well as part of metadata:
      • <contract-num>
      • <contract-sponsor>
      • %contract-atts;
      • %contract-elements;
      • %contract-sponsor-elements;
    • Journal Identifier — Moved the element declaration for <journal-id> from %journalmeta.ent; to %common.ent;.
  • Paragraph — In %para.ent;, changed the PE %p-elements; to use %citation.class; (which contains <citation>) rather than naming the element <citation> explicitly.
  • Person Group — In %references.ent;, modified the Person Group model (%person-group-model; to include the new class %person-group-info.class; rather than naming the individual elements <aff> and <etal> explicitly.
  • Reference — In %references.ent;, changed the model (%ref-model;) to use %citation.class; (which contains <citation>) rather than naming the element <citation> explicitly.
  • Table Cells — In %default-mixes.ent;, changed the PE %inside-cell; (used by the XHTML table elements <th> and <td>) to include %citation.class; (which contains <citation>) rather than naming the element <citation> explicitly.
  • New Attribute PEs — Created new PEs for the attribute lists of:
    • <abbrev> (%abbrev-atts; in %phrase.ent;)
    • <access-date> (%access-date-atts; in %references.ent;)
    • <ack> (%ack-atts; in %common.ent;)
    • <addr-line> (%addr-line-atts; in %common.ent;)
    • <address> (%address-atts; in %common.ent;)
    • <alt-text> (%alt-text-atts; in %common.ent;)
    • <annotation> (%annotation-atts; in %references.ent;)
    • <app-group> (%app-group-atts; in %backmatter.ent;)
    • <article-title> (%article-title-atts; in %common.ent;)
    • <attrib> (%attrib-atts; in %common.ent;)
    • <author-comment> (%author-comment-atts; in %articlemeta.ent;)
    • <caption> (%caption-atts; in %display.ent;)
    • <comment> (%comment-atts; in %references.ent;)
    • <conf-acronym> (%conf-acronym-atts; in %common.ent;)
    • <conf-date> (%conf-date-atts; in %common.ent;)
    • <conf-loc> (%conf-loc-atts; in %common.ent;)
    • <conf-name> (%conf-name-atts; in %common.ent;)
    • <conf-num> (%conf-num-atts; in %articlemeta.ent;)
    • <conf-sponsor> (%conf-sponsor-atts; in %articlemeta.ent;)
    • <conf-theme> (%conf-theme-atts; in %articlemeta.ent;)
    • <conference> (%conference-atts; in %common.ent;)
    • <contrib-group> (%contrib-group-atts; in %articlemeta.ent;)
    • <copyright-holder> (%copyright-holder-atts; in %common.ent;)
    • <copyright-statement> (%copyright-statement-atts; in %common.ent;)
    • <copyright-year> (%copyright-year-atts; in %common.ent;)
    • <country> (%country-atts; in %common.ent;)
    • <day> (%day-atts; in %common.ent;)
    • <def> (%def-atts; in %common.ent;)
    • <def-item> (%def-item-atts; in %list.ent;)
    • <degrees> (%degrees-atts; in %articlemeta.ent;)
    • <disp-quote> (%disp-quote-atts; in %para.ent;)
    • <edition> (%edition-atts; in %references.ent;)
    • <email> (%email-atts; in %common.ent;)
    • <fax> (%fax-atts; in %common.ent;)
    • <font> (%font-atts; in %format.ent;)
    • <glossary> (%glossary-atts; in %backmatter.ent;)
    • <gloss-group> (%gloss-group-atts; in %backmatter.ent;)
    • <gov> (%gov-atts; in %references.ent;)
    • <grant-num> (%contract-atts; in %common.ent;)
    • <grant-sponsor> (%contract-atts; in %common.ent;)
    • <isbn> (%isbn-atts; in %references.ent;)
    • <institution> (%institution-atts; in %common.ent;)
    • <issue> (%issue-atts; in %common.ent;)
    • <issue-title> (%issue-title-atts; in %common.ent;)
    • <journal-subtitle> (%journal-subtitle-atts; in %journalmeta.ent;)
    • <journal-title> (%journal-title-atts; in %journalmeta.ent;)
    • <kwd> (%kwd-atts; in %articlemeta.ent;)
    • <lpage> (%lpage-atts; in %common.ent;)
    • <long-desc> (%long-desc-atts; in %common.ent;)
    • <month> (%month-atts; in %common.ent;)
    • <name> (%name-atts; in %common.ent;)
    • <object-id> (%object-id-atts; in %common.ent;)
    • <page-range> (%page-range-atts; in %common.ent;)
    • <patent> (%patent-atts; in %references.ent;)
    • <phone> (%phone-atts; in %common.ent;)
    • <ref> (%ref-atts; in %references.ent;)
    • <ref-list> (%ref-list-atts; in %references.ent;)
    • <role> (%role-atts; in %common.ent;)
    • <season> (%season-atts; in %common.ent;)
    • <self-uri> (%self-uri-atts; in %articlemeta.ent;)
    • <series> (%series-atts; in %references.ent;)
    • <speaker> (%speaker-atts; in %para.ent;)
    • <speech> (%speech-atts; in %para.ent;)
    • <statement> (%statement-atts; in %para.ent;)
    • <std> (%std-atts; in %references.ent;)
    • <subtitle> (%subtitle-atts; in %articlemeta.ent;)
    • <suffix> (%suffix-atts; in %common.ent;)
    • <target> (%target-atts; in %link.ent;)
    • <term> (%term-atts; in %list.ent;)
    • <time-stamp> (%time-stamp-atts; in %references.ent;)
    • <title> (%title-atts; in %common.ent;)
    • <trans-title> (%trans-title-atts; in %common.ent;)
    • <uri> (%uri-atts; in %common.ent;)
    • <verse-group> (%verse-group-atts; in %para.ent;)
    • <verse-line> (%verse-line-atts; in %para.ent;)
    • <volume> (%volume-atts; in %common.ent;)
    • <volume-id> (%volume-id-atts; in %common.ent;)
    • <year> (%year-atts; in %common.ent;)