AMENDMENT 1: XML authoring structure and style specification
ISO (the International Organization for Standardization) and IEC (the International Electrotechnical Commission) form the specialized system for worldwide standardization. National bodies that are members of ISO or IEC participate in the development of International Standards through technical committees established by the respective organization to deal with particular fields of technical activity. ISO and IEC technical committees collaborate in fields of mutual interest. Other international organizations, governmental and non-governmental, in liaison with ISO and IEC, also take part in the work. In the field of information technology, ISO and IEC have established a joint technical committee, ISO/IEC JTC 1.
International Standards are drafted in accordance with the rules given in the ISO/IEC Directives, Part 2.
The main task of the joint technical committee is to prepare International Standards. Draft International Standards adopted by the joint technical committee are circulated to national bodies for voting. Publication as an International Standard requires approval by at least 75 % of the national bodies casting a vote.
Attention is drawn to the possibility that some of the elements of this document may be the subject of patent rights. ISO and IEC shall not be held responsible for identifying any or all such patent rights.
Amendment 1 to ISO/IEC TR 9573-11:2004 was prepared by Joint Technical Committee ISO/IEC JTC 1, Information technology, Subcommittee SC 34, Document description and processing languages. The draft amendments have been posted on SourceForge: http://tr9573amd.cvs.sourceforge.net/tr9573amd/xml/?sortby=author.
This Amendment adds the Annex H that specifies a simplified structure description and style specification for draft standards document interchange.
AMENDMENT 1: Authoring structure and style specification
Add the following Annex H after Annex G:
ISO/IEC TR 9573-11 2nd edition "Structure descriptions and style specifications for standards document interchange" was published in 2004-04, responding to the user requirements for the interchange of standards documents in an XML environment.
The 2nd edition was developed JTC1/SC34/WG1 coordinating with ITSIG (Information Technology Strategies Implementation Group) XML project, and being based on the SGML "ITSIG exchange DTD". It includes both the SGML and the XML DTDs for standards documents in a publication stage and style specifications described by DSSSL and XSL conforming to ISO/IEC directives.
The structure of standards documents in a publication stage consists of a number of elements precisely defined by ISO/IEC directives. All the elements are not used for description of standards documents in drafting or authoring stage such as WD, CD and etc. For example, attribute gtext is not required in the drafting or authoring stage.
A simplified structure can be used for describing standards documents in drafting or authoring stage. Those standards documents are requested to interchange as well. The simplified structure, therefore, should also be standardized.
This amendment 1 to ISO/IEC TR 9573-11:2004 (2nd edition) specifies the simplified structure of standards documents in drafting or authoring stage and the style specification for rendering the structure.
The structure of standards documents in drafting or authoring stage is defined by the following schema file: stdex.rnc described by the compact syntax of ISO/IEC 19757-2.
See the attached file stdex.rnc.
Major tags of the structure correspond to the tags in ISO/IEC TR 9573-11:2004 as shown in Table H1. Elements that require particular rendering, such as formula, dformula, mathart, inf and fence, are dealt with in artwork. The structure of this Annex include an additional element tabular for aligning some elements in a line.
Tags in ISO/IEC TR 9573-11:2004 | Tags in Annex H |
---|---|
standard | document |
profile | head (metedata) |
tpage | |
toc | |
lpage | |
foreword | foreword |
intro | introduction |
body | |
scope | scope |
refs | normative-references |
defs | terms-and-definitions, term-and-definitions, termdef |
warning (clause) | |
conformance | |
ht | title |
warning | warn (block element) |
note | note |
xmp | example |
fn | footnote |
h1, h2, h3, h4, h5, h6, p2, p3, p4, p5, p6 | clause |
p | p |
ul, ol, li, lp, dl, dlentry, dt, dd | ul, ol, li, notation-list, notation-item |
rl, rlentry, bl, blentry | referenced-document |
annexi, annexn | annex |
annexbl | bibliography |
xref | xref, Xref, this, This |
hp | code, b, i, u, var, symbol |
superscript, subscript | sup, sub |
table, tabtitle, tgroup, colspec, thead, tbody, tfoot, row, entry, tabnote | table (floating element) |
figure, figbody, figtitle, fignote | figure (floating element) |
tabular, tabtitle, tgroup, colspec, thead, tbody, tfoot, row, entry, tabnote | |
artwork | artwork |
formula, dformula, mathart, inf, fence | |
part-list, part | |
d-block |
It is not permissible to nest all components within all other components. Following two tables show whether it is permissible to nest the component given in lightface in the first column inside the component given in bold in the column heading.
In the tables, "!c" means "it is permissible to nest if the component is not a child".
p | list | list item | notation- list | notation-item | notation- definition | example | note | warn | pre | table | figure | |
---|---|---|---|---|---|---|---|---|---|---|---|---|
p | !c | !c | yes | !c | !c | yes | yes | yes | yes | no | yes | yes |
list | yes | !c | yes | !c | !c | !c | !c | !c | !c | no | yes | yes |
list item | !c | yes | !c | !c | !c | !c | !c | !c | !c | no | !c | !c |
notation- list | !c | !c | yes | !c | !c | !c | !c | !c | !c | no | yes | yes |
notation- item | !c | !c | !c | yes | !c | !c | !c | !c | !c | no | !c | !c |
notation- definition | !c | !c | !c | !c | yes | !c | !c | !c | !c | no | !c | !c |
example | yes | !c | yes | !c | !c | !c | no | !c | !c | no | yes | yes |
note | !c | !c | yes | !c | !c | yes | !c | no | !c | no | yes | yes |
warn | !c | !c | yes | !c | !c | !c | !c | !c | no | no | yes | yes |
pre | yes | !c | yes | !c | !c | !c | !c | !c | !c | no | yes | yes |
table | yes | !c | yes | !c | !c | !c | !c | !c | !c | no | no | yes |
figure | yes | !c | yes | !c | !c | !c | !c | !c | !c | no | no | yes |
firstterm | strong | code | var | sub | s up | b | i | u | ref | artwork | footnote | tabular | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
firstterm | no | yes | yes | yes | yes | yes | yes | yes | yes | no | no | yes | !c |
strong | yes | no | yes | yes | yes | ye s | yes | yes | yes | no | no | yes | !c |
code | yes | yes | no | yes | yes | yes | yes | yes | yes | no | no | yes | !c |
var | yes | yes | yes | no | yes | yes | yes | yes | yes | no | no | yes | !c |
sub | yes | yes | yes | yes | yes | yes | yes | yes | yes | no | no | yes | !c |
sup | yes | yes | yes | yes | yes | yes | yes | yes | yes | no | no | yes | !c |
b | yes | yes | yes | yes | yes | yes | no | yes | yes | no | no | yes | !c |
i | yes | yes | yes | yes | yes | yes | yes | no | yes | no | no | yes | !c |
u | yes | yes | yes | yes | yes | yes | yes | yes | no | no | no | yes | !c |
ref | yes | yes | yes | yes | no | no | yes | yes | yes | no | no | yes | !c |
artwork | yes | yes | yes | yes | yes | yes | yes | yes | yes | no | no | yes | !c |
footnote | yes | yes | yes | yes | no | no | yes | yes | yes | no | no | no | !c |
tabular | yes | yes | yes | yes | no | n o | yes | yes | yes | no | no | yes | !c |
This is the root element in a standard document.
See H2.2.2.7
This element type is used to identify the special clause entitled "Foreword" in English.
The optional attribute "id" specifies the identifier of this element.
This is a mandatory element.
This element type is used to identify the special clause entitled "Introduction" in English.
The optional attribute "id" specifies the identifier of this element.
This is an optional element.
This element type is used to identify the special clause entitled "Warning" in English.
The content model is identical to that for the element type <introduction> (see H2.2.2.1.4).
This is an optional element.
This element type is used to identify the special clause entitled "Scope" in English.
The content model is identical to that for the element type <introduction> (see H2.2.2.1.4).
This is a mandatory element, i.e. a standard shall contain a scope.
This element type is used to identify the special clause entitled "Conformance" in English.
The optional attribute "id" specifies the identifier of this element.
This element type is optional. Where present, it shall be the clause immediately following the "Scope" clause.
This element type is used to identify the special clause which contains the normative references used in the standard, and which is entitled "Normative references" in English.
The optional attribute "id" specifies the identifier of this element.
This element type is optional. Where present, it shall be the clause immediately following the "Conformance" clause.
This element type is used to identify a referenced document. It is just a container.
The optional attribute "id" specifies the identifier of this element.
This element type is used to identify the special clause which contains the terms and definitions used in the standard, and which is entitled "Terms and definitions" in English.
The optional attribute "id" specifies the identifier of this element.
This element type is optional. Where present, it shall be the clause immediately following the "Normative references".
See H2.2.2.2
This element type is used to identify an annex.
The optional attribute "id" specifies the identifier of this element. If the attribute "normative" is true, the annex is normative. Otherwise, it is informative.
This is an optional and repeatable element, i.e. a standard may contain one or more annexes.
This element type is used to identify the bibliography.
The optional attribute "id" specifies the identifier of this element.
This is an optional element.
This element type is used as a placeholder for the index generated by the publishing system.
The optional attribute "id" specifies the identifier of this element. If the indexes are informative, the optional attribute "status" is assigned to 'informative'.
This is an optional and repeatable element, i.e. a standard may contain one or more indexes.
This element type is used to identify nested clauses of the standard. If the element has a child element <title>, it names titled clause. Otherwise, it names untitled clause.
The optional attribute "id" specifies the identifier of this element.
Titled clause can have both type (titled and untitled) of a clause as its child. Untitled clause cannot have a titled clause as its child.
This element type is used to identify title strings of a titled clause.
This element type is used to identify a displayed component (which is a block of text) and to identify a container for this text block and other displayed components.
This element type is used to identify an ordered list.
The optional attribute "id" specifies the identifier of this element.
This element type is used to identify an unordered list.
This element type is used to identify the individual items within ordered and unordered lists.
This element type is used to identify a notation list. Each entry in a notation list comprises a notation (e.g. a variable, a symbol, etc.) and its corresponding definition.
This element type is used to identify an entry in a notation list. It is just a container.
This element may appear only in the notation list.
This element type is used to identify a notation inside a notation list entry.
The content model is identical to that for the element type <title> included in a titled clause (see H2.2.2.2.2).
This element type is used to identify a definition corresponding to a notation in a notation list entry.
This element type is used to identify examples integrated in the text.
This element type is used to identify notes integrated in the text.
The content model is identical to that for the element type <example> (see H2.2.2.3.9).
The note shall be the last "child" in the subdivision.
This element type is used to identify the display components "Warning", "Caution" and "Remark" to draw readers' attention to a particular text. The reasons may be different, e.g. need for precaution, security issue, etc.; they are distinguished by the attribute "format".
The optional attribute "id" specifies the identifier of this element. The attribute "format" can take the values "genwarn", "warning", "caution" and "remark".
Warnings, cautions and remarks are always attached to some piece of a document, e.g. a subdivision (if they are outside a displayed component), or a paragraph.
This element type is used to identify a displayed component with "pre- formatted text" such as a computer source, listing, etc.
It is recommended to use entities to insert spaces and line breaks inside a text to achieve the desired formatting.
Tables and figures are float components described in H2.2.2.4.
This element type is used to identify an list item.
This element type is used to identify a referential table.
The optional attribute "id" specifies the identifier of this element.
This element type is used to identify a referential figure.
The content model is identical to that for the element type <table> (see H2.2.2.4.1).
This element type is used to identify a first term.
This element may appear in running text.
These element types are used to identify phrases which are highlighted by means of different typographical presentations.
<strong> identifies strong text; <code> identifies text set using a propotional font; <var> identifies text as a variable; <sub> identifies subscript text; <sup> identifies superscript text; <b> identifies bold text; <i> identifies italic text; <u> identifies underlined text;
The content model is identical to that for the element type <firstterm> (see H2.2.2.5.1).
This element type is used to identify a reference string to the standard itsself.
This element type is used to generate internal cross-references (i.e. those to other elements of the same document) such as "see Table A.1". Owing to the fact that linguistically there are many different ways of making an internal cross-reference and that the terms used are language dependent (e.g. "see Table A.1", "see Tables A.1 and A.2", "voir Tableau A.1" and "voir Tableaux A.1 et A.2") the reference number was selected as the common denominator.
The attribute "refid" contains the identifier of the element to be referenced.
This element type is used to insert an external graphics file into the document. The external file is described as an external entity with a public identifier.
The optional attribute "id" specifies the identifier of this element. The attribute "entity" specifies the external entity.
Graphics may also be employed to represent an unusual character in running text and as a figure without a title.
This element type is used to identify a footnote to the text. It is permitted only in running text because it produces a footnote reference (i.e. a marker or identifier) which must be attached to something. A footnote to the text is an informative (as opposed to a normative) component of a standard.
The optional attribute "id" specifies the identifier of this element.
It was decided to keep tables as simple as possible, and to implement the CALS tables defined in MIL-M-28001B (26 June 1993).
This element type is used to identify a group of tabular elements. It is just a container.
This element type is used to identify a column specification of tabular.
This element type is used to identify a span specification of tabular.
This element type is used to identify a heading row of tabular.
This element type is used to identify a footing row of tabular.
same as thead
This element type is used to identify a body part of tabular.
This element type is used to identify a row of tabular.
This element type is used to identify a entry of tabular.
This is the document profile contains the metadata of the standard.
This element contains title data written by a specified language.
The attribute "langcode" specifies the language('E'nglish or 'F'rench).
XML texts with the structure defined in H.2 can be previewed by an HTML browser, using the conversion defined by the following XSLT specifications. The XSLT specifications consist of the five files: stdex.xsl, stdex_front.xsl, stdex_toc.xsl, stdex_back.xsl and stdex.css.
See the attached files: stdex.xsl, stdex_front.xsl, stdex_toc.xsl, stdex_back.xsl and stdex.css.
XML texts with the structure defined in H.2 can be rendered by an XSL formatter, using the following XSL-FO specifications. The XSL-FO specifications consist of the eight files: stdex_fo.xsl, stdex_fo_front.xsl, stdex_fo_toc.xsl, stdex_fo_back.xsl, layoutmaster.xsl, library.xsl, language.xsl and attributeset.xsl.
See the attached files: stdex_fo.xsl, stdex_fo_front.xsl, stdex_fo_toc.xsl, stdex_fo_back.xsl, layoutmaster.xsl, library.xsl, language.xsl and attributeset.xsl,
TBD