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.
In addition to the full Suite changes listed in Section 2. Changes to the Entire Suite, the following changes were made to the Book DTD (as well as its counterparts the Book Collection DTD and the Historical
Book DTD) and its DTD-specific modules. Each changed module had its formal public identifier and comment date changed, which
was reflected in the two catalog files and the module calls in the DTD. Modules changed for the three DTDs include:
- book.dtd
- bookcollection.dtd
- historical.dtd
- bookcustom-classes.ent
- bookcustom-mixes.ent
- bookcustom-models.ent
- bookcustom-modules.ent
- bookimagemap.ent
- bookmeta.ent
- bookmultilink.ent
- bookpart.ent
- bookrelated-object.ent
- bookimagemap.ent
- nlmcitation.ent (now added to these DTDs)
- historical-classes.ent
- historical-mixes.ent
- historical-models.ent
- historical-modules.ent
- annotation.ent
- historical.ent
- Book Part — In %bookpart.ent, added <book-meta> as an optional element to the beginning of <bookpart>, using the entity %book-part-model;.
- Citation / Related Article / Related Object [Historical only] — In %historical-classes.ent; (for Historical Book DTD), redefined %references.class; to include <conf-sponsor> and <institution>. This change impacts the models for <citation>, <related-article>, and <related-object>.
- NLM Citation — In %bookcustom-classes.ent;, redefined class %citation.class; to add the element <nlm-citation> so that its more structured model can be used anywhere the <citation> element may be used, including inside the XHTML table elements <td> and <td>.
- Reference — In %bookcustom-models.ent;, changed the reference model (%ref-model;) to include %citation.class; to permit the use of <nlm-citation> inside a <ref> element.
- Related Object — In %bookrelated-object.ent;, modified %related-object-elements; to include the new element <size> (by way of the new %size.class;) inside <related-object>.
- Sans-Serif — In %format.ent;, created the new element <sans-serif>.
- Title — In %bookcustom-models.ent;, added %citation.class; to the PE %struct-title-elements;, thereby adding citation elements to <title>.
- Title Elements — In %bookcustom-models.ent;, added %citation.class; to the PE %title-elements;, thereby adding citation elements to:
- <alt-title>
- <book-title>
- <collection-name>
- <subtitle>
- <trans-subtitle>
- <trans-title>
- Book Part — In %bookpart.ent, added the pseudo-attribute for the MathML namespace to the attributes for <bookpart>, using the entity %book-part-atts;.
- Annotation [Historical only] — In %historical-models.ent;, the attribute declaration (ATTLIST) for the element <annotation> has been removed as duplicative. As of the 2.3 release, this attribute declaration is part of the Base Suite (in %references.ent;). (The PE %annotation-atts; in the module %historical-models.ent; redefines the base Suite attribute list.)
- DTD Version — In book.dtd, bookcollection.dtd, and historical.dtd, changed the fixed value for the attribute “dtd-version” to “2.3” (by way of the PE %dtd-version;).
- Identifier — Added the attribute “id” (with an attribute type of ID) to the attribute list for the following elements:
- <collection-member> in bookcollection.dtd)
- <title> (%title-atts; in %bookcustom-models.ent;)
- Mimetype — In %bookcustom-models.ent;, the “mimetype” attribute is now a CDATA type with no fixed default value for <graphic> (via %graphic-atts;).
- Mime Subtype — In %bookcustom-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;).
- Related Object — In %bookrelated-object.ent, added the new attribute “link-type” using the same entity %related-object-atts;
- Content Type — Added the attribute “content-type” to the attribute list for the following elements:
- <annotation> (%annotation-atts; in %historical-models.ent;)
- <book-title> (%book-title-atts; in %bookmeta.ent;)
- <collection> (%collection-atts; in bookcollection.dtd)
- <collection-id> (%collection-id-atts; in bookcollection.dtd)
- <collection-member> (%collection-member-atts; in bookcollection.dtd)
- <graphic> (%graphic-atts; in %bookcustom-models.ent;)
- <issn> (%issn-atts; in %bookcustom-models.ent;)
- <related-object> (%related-object-atts; in %bookrelated-object.ent;)
- <title> (%title-atts; in %bookcustom-models.ent;)
- Phrase Class — In %bookcustom-classes.ent; and %historical-classes.ent;, added the new elements <milestone-start> and <milestone-end> to the class %phrase.class;. (The new milestone elements were declared in %phrase.ent;.)
- Simple Link Class — In %bookcustom-classes.ent;, added new element <related-object>
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 explicitly. These
changes help simplify future modifications.
- New Element PEs [Historical only] — In %historicalmeta.ent;, created PEs for the content models of:
- <printer> (%printer-model;)
- Book Metadata Model — Moved the Parameter Entity %book-meta-model from %book.dtd into the module bookcustom-models.ent so that it could be used by both the Book, Collection, Historical DTDs. Also added the<book-meta> declaration to Book Collection, because <book-meta> was added to the model of <book-part>.
- Book Related Object — In %book.dtd and historical.dtd, invoked the module bookrelated-object.ent.
- NLM Citation Module — In %bookcustom-modules.ent;, the NLM Citation Module’s declaration was added to permit its use as part of the Book and Book Collection DTDs and Historical
Book DTD respectively; the module is now invoked in book.dtd and historical.dtd.
- Reference — In %bookcustom-models.ent;, changed the reference model (%ref-model;) to include %note.class; (which contains <note>) rather than the element <note>.
- Section Metadata — In %bookcustom-models.ent;, deleted the PE %sec-meta-model;. (As of this release, the Suite PE — found in %common.ent; — had the same string as that in %bookcustom-models.ent; and thus needed no custom redefinition.)
- Title — In %bookcustom-models.ent;, the attribute declaration (ATTLIST) for the element <title> has been removed as duplicative; as of this release, the attribute declaration is part of the Base Suite (in %common.ent;). (The PE %title-atts; redefining the attribute list remains.)
- New Attribute PEs — Created new PEs for the attribute lists of:
- <book-title> (%book-title-atts; in %bookmeta.ent;)
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
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.
The following elements were added or modified in the basic modules of the suite, and are applicable to the Book DTDs as they
have not been over-ridden in any of the Book, Collection, or Historical 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;.
- Citation / Related Article / Related Object — In %default-classes.ent;, changed %references.class; to include <conf-sponsor> and <institution>. This change impacts the models for <citation>, <related-article>, and <related-object> (used only in the various Book-related DTDs). This is a BOOK DTD change only, Historical redefines %references.class;.
- Contributor / Person Group — In %default-classes.ent;, added the new element <anonymous> to %name.class;. This change will impact the models for <contrib> and <person-group>.
- Figure — In %display.ent;, added the new PE %chem-struct-wrap.class; to %fig-model;, thereby adding <chem-struct-wrapper> to the model for <fig>.
- 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;
- Milestones — In %phrase.ent;, created two new elements <milestone-start> and <milestone-end> for those instances in which the ordinary tree hierarchy is not sufficient to represent the needed markup.
- Paragraph — In %para.ent;, changed %p-elements; to include the new class %contract-grant.class; thereby adding the potential of contract or grant information within paragraphs.
- Related Article — In %common.ent;, added the new class %journal-id.class; to %related-article-elements;, thereby adding <journal-id> to the model for <related-article>.
- Sans-Serif — In %format.ent;, created the new element <sans-serif>.
- Section Metadata — In %common.ent;, changed the model (%sec-meta-model;) to include the elements <permissions> and <kwd-group>.
- Size — In %common.ent;, created new element <size> to indicate the length of a video, page range of a book or article, etc.
- Speaker and String Name — In %default-classes.ent;, the element <degrees> was added to %person-name.class;, thereby adding to <speaker> (by way of %speaker-elements;) and <string-name> (by way of %string-name-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 — In %default-mixes.ent;, changed PE %inside-cell; to include <chem-struct-wrapper> (by way of new PE %chem-struct-wrap.class;)
- Term — In %list.ent;, added the new PE %chem-struct-wrap.class; to %term-elements;, thereby adding <chem-struct-wrapper> to the model for <term>.
- Baseline Shift — In %display.ent;, added a new attribute “baseline-shift” to the 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.
- 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;)
- <custom-meta> (%custom-meta-atts; in %common.ent;)
- <fn-group> (%fn-group-atts; in %backmatter.ent;)
- <gloss-group> (%gloss-group-atts; in %backmatter.ent;)
- <kwd> (%kwd-atts; in %articlemeta.ent;)
- <person-group> (%person-group-atts; in %references.ent;)
- <ref-list> (%ref-list-atts; in %references.ent;)
- <sig-block> (%sig-block-atts; in %common.ent;)
- <title> (%title-atts; in %common.ent;)
- <trans-abstract> (%abstract-atts; in %articlemeta.ent;)
- <trans-title> (%trans-title-atts; in %common.ent;)
- <trans-subtitle> (%trans-title-atts; in %common.ent;)
- Mimetype — In %display.ent;, the “mimetype” attribute is now a CDATA type with no fixed default value for <graphic> (via %graphic-atts;) and for <inline-graphic> (via %inline-graphic-atts;).
- Mime Subtype — In %display.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;).
- 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-date> (%conf-date-atts; in %common.ent;)
- <conf-loc> (%conf-loc-atts; in %common.ent;)
- <conf-name> (%conf-name-atts; in %common.ent;)
- <conf-sponsor> (%conf-sponsor-atts; in %articlemeta.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;)
- <corresp> (%corresp-atts; in %articlemeta.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;)
- <fig-group> (%fig-group-atts; in %display.ent;)
- <fn-group> (%fn-group-atts; in %backmatter.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;)
- <graphic> (%graphic-atts; in %display.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;)
- <note> (%note-atts; in %references.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;)
- <publisher> (%publisher-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;)
- <sig> (%sig-atts; in %common.ent;)
- <sig-block> (%sig-block-atts; in %common.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;)
- <string-date> (%string-date-atts; in %common.ent;)
- <subject> (%subject-atts; in %articlemeta.ent;)
- <subtitle> (%subtitle-atts; in %articlemeta.ent;)
- <suffix> (%suffix-atts; in %common.ent;)
- <supplementary-material> (%supplementary-material-atts; in %display.ent;)
- <table-wrap-group> (%table-wrap-group-atts; in %display.ent;)
- <tex-math> (%tex-math-atts; in %math.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;)
- <trans-subtitle> (%trans-subtitle-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;)
- <x> (%x-atts; in %common.ent;)
The following class changes were made in the suite, and are applicable to the Book DTDs as they have not been over-ridden
in any of the Book, Collection, or Historical 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>.
- Emphasis Class — Added the new element <sans-serif> to %emphasis.class;.
- Journal ID Class — Created a new class %journal-id.class; to hold the element <journal-id>.
- 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.
- Note Class — Created a new class %note.class; (which contains <note>).
- Other Metadata Class — Created a new class %other-meta.class; to provide article-like metadata about objects such as supplements inside references; 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>.
- Phrase Class — Added the new elements <milestone-start> and <milestone-end> to the class %phrase.class;.
- Size Class — Created a new class %size.class; to contain the new element <size>.