Metanorma
On this page

Metanorma presentation XML and ISO/NISO STS mapping

General

This set of mapping rules is realized in the mnconvert command-line tool.

mnconvert is based on XSLT 1.0 (with Apache Xalan extensions) and allows to convert data:

  • from Metanorma presentation XML to ISO/NISO STS XML (module mn2sts.xsl)
  • from ISO/NISO STS XML to Metanorma AsciiDoc (module sts2mn.adoc.xsl)
  • from ISO/NISO STS XML to Metanorma presentation XML (module sts2mn.xsl)

Stages of conversion from ISO/NISO STS XML to Metanorma AsciiDoc (sts2mn.adoc.xsl):

  • XML linearization – replace all line breaks (except text in the tags code, preformat and mml:) to space, replace sequence of spaces into one space
  • replace bold, italic, underline, sup and sub tags to bold2, italic2, underline2, sup2 and sub2 for unconstrained formatting pair for further processing
  • references id normalization in the elements ref and std`
  • replacing a space, non-break space, colon to low line char _ (U+5F)
    • replacing non-breaking hyphen minus to hyphen minus char - (U+2D)
    • adding low line char _ (U+5F) prefix if id starts with digit
  • conversion from ISO/NISO STS XML to Metanorma AsciiDoc
  • checking for repeated bibliography references
  • copy images from the folder, specified by imagesdir (command line parameter, default value images), to the output folder
Note

First page data and each section (first level clause/annex) saves in a standalone .adoc file.

Stages of conversion from ISO/NISO STS XML to Metanorma presentation XML (sts2mn.xsl):

  • conversion from ISO/NISO STS XML to Metanorma presentation XML
  • if non-processed elements in front page (bibliographic) data found, then it will be added at the end of the <bibdata> element with message 'WARNING! There are unprocessed elements in 'front''
  • if non-processed elements found, then such element's names will be added in comments at the end of XML file
  • checking on repeated bibliography references
  • copy images from the folder, setup by imagesdir (command line parameter, default value images), to the output folder

Stages of conversion from Metanorma presentation XML to ISO/NISO STS XML to (mn2sts.xsl):

  • conversion from Metanorma presentation XML to ISO/NISO STS XML
  • if non-processed elements in front page (bibliographic) data found, then it will be added at the end of the <bibdata> element with message 'WARNING! There are unprocessed elements in bibdata'

Legend:

  • < > - bidirectional rule (Metanorma presentationXML to and from STS NISO/ISO XML)
  • < - unidirectional rule, from Metanorma presentation XML to STS NISO/ISO XML
  • > - unidirectional rule, from STS NISO/ISO XML to Metanorma presentation XML
Note

This mapping is not a full ISO/NISO STS schema comparison and based on 30 XML samples only:

  • BSI ISOSTS sample XMLs
  • ISOSTS: C070907e.xml, C070908e.xml
Note
The corresponding ISO STS mapping rule is not given if it is identical to NISO STS structure. >* - unidirectional rule, from STS NISO/ISO XML to Metanorma presentation XML

The NISO STS schema is available at NISO's tag library.

Note
In the mapping tables the value 'indirect' is used to indicate that there is no one-to-one mapping from an ISOSTS element to a corresponding Metanorma presentation XML element. This does not mean that the data is ignored, instead it means that the text inside this element will be copied into the resulting Metanorma XML, or that its internal elements is processed into alternative elements.

Main parts (front page, body, annexes)

Root element

NISO STS: <standard>, <adoption>

Metanorma: <abc-standard xmlns="https://www.metanorma.org/ns/abc">, where abc stands for the type of standard: iso or bsi.

Determined automatically in sts2mn.xsl:

  • if /standard/front/nat-meta/@originator = BSI or /standard/front/iso-meta/secretariat = BSI, then bsi
  • else iso,

OR can be set up any value in the command line via parameter --type iso.

Sections

ISO/NISO STS Metanorma presentation XML Metanorma AsciiDoc
`front/sec[@sec-type="intro"]` < > preface/introduction \[[introduction]]
`front/sec[@sec-type="foreword"]` < > preface/foreword [.preface]\[[foreword]]
`front/sec[@sec-type]` < > preface/clause [.preface]\[[id]]if @sec-type = amendment, then [.preface,type=corrigenda]
`front/sec` < > preface/clause [.preface]
`front//sec` < > preface/clause \[[id]]
`front//sec/@sec-type` [example%unnumbered] ==== [source,xml] ---- <sec sec-type="foreword_publishing" id="sec_foreword_1"> ---- ==== < > `preface/clause/@sec-type` [example%unnumbered] ==== [source,xml] ---- <clause id="sec_foreword_1" type="foreword_publishing"> ---- ==== NOTE: Metanorma presentation XML model doesn't have `sec-type` attribute. It is added for round-trip conversion.
`front/sec[@id="sec_pub_info_nat" @sec-type="publication_info"]` NOTE: Publishing and copyright information block < `boilerplate/ copyright-statement` + `+ docidentifier[@type = 'ISBN']` + `+ ext/ics` + `+ preface/clause[ @type = 'related-refs']` + `+ preface/clause[ @type = 'corrigenda']`
`front/sec[@sec-type="publication_info" and node()/@content-type = 'ace-table']` > `[.preface,type=corrigenda]` + `== node() @content-type = 'ace-table']/caption/title`
`body` < > sections
`body/sec` + `[@sec-type="intro"]` + if there is `/standard/front/nat-meta` and there isn't `iso-meta` or `reg-meta` < > `preface/introduction` a `\[[introduction]]`
`body/sec` + `[@sec-type="intro"]` < > sections/clause[@type="intro"] `\[[introduction]]`
`body//sec[term-sec]` < > terms
`body//sec[term-sec]/@id` [example%unnumbered] ==== [source,xml] ---- <sec id="sec_3" sec-type="terms"> <label>3</label><title>Terms and definitions</title> <p>For the purposes of this document...</p> ... <term-sec id="sec_3.1"><label>3.1</label> ... ---- ==== < > `terms/@id` [example%unnumbered] ==== [source,xml] ---- <terms id="sec_3"> <title>3<tab/>Terms and definitions</title> <p>For the purposes of this document</p> ... <term id="term_3.1"> <name>3.1</name> ... ---- ==== \[[id]]
`body//sec[array[count(table/col) = 2]]` a `definitions`
`body/sec[@sec-type="scope"]` < > sections/clause[@type="scope"]
`sec/@id` < > clause | introduction | foreword | terms | indexsect | references | definitions /@id \[[id]]
`sec/label` (if there isn't 'title') > clause[@inline-header="true"]/name ==== \{blank}
`sec/title` a < > `clause/title` NOTE: title=sec/label<tab/>sec/name a `=== ...` NOTE: count of === depends of section's depth.
`sec[@sec-type = 'norm-refs']` < > `bibliography/references[@normative="true"]` `[bibliography]` + `[NOTE,type=boilerplate]` + `--` + `..` + `--`
`back/ref-list` + no nested `ref-list` < > bibliography/references[@normative="false"] a `[bibliography]`
`back/ref-list/@id` + no nested `ref-list` + < > bibliography/references[@normative="false"]/@id
`back/ref-list` + with nested `ref-list` < > bibliography/clause/references[@normative="false"] [bibliography]
`back/ref-list/@id` + with nested `ref-list` < > bibliography/clause/@id \[[id]]
`back/ref-list/@content-type` [example%unnumbered] ==== [source,xml] ---- content-type="bibl" ---- ==== > indirect
`back/ref-list/title` < > references/title a `=== ...` NOTE: count of === depends of section's depth.
`back/ref-list/ref-list` < > bibliography/clause/references[@normative="false"]
`back/ref-list/ref-list/@id` < > bibliography/clause/references[@normative="false"]/@id
`sec[@sec-type = 'index']` < > indexsect
`back/sec[@id = 'ind']` > indexsect
`back` < > *_skip processing_* NOTE: see nested elements processing
`app-group` < > *_skip processing_* NOTE: see nested elements processing
`app` < > annex [appendix]
app/@id < > annex/@id \[[id]]
`app/@content-type` [example%unnumbered] ==== [source,xml] ---- content-type="inform-annex" ---- ==== > indirect
app/@content-type="inform-annex" < indirect
`app/@content-type=" norm-annex"` NOTE: for BSI only < indirect
`app/annex-type` < > annex/@obligation(without '()') a `[appendix, obligation=...]` NOTE: if `annex-type` != normative
`app/@content-type=inform-annex` < annex/@obligation = informative
app/@content-type < annex/@obligation
`app//sec` < > annex//clause
`sec/@sec-type="titlepage","endorsement"` + [NOTE] ==== *conversion gap* + https://github.com/metanorma/mn-samples-bsi/issues/34 ==== > indirect
indirect < foreword/review
sec[@sec-type="appendix"] < `annex/appendix` NOTE: for more info, see https://github.com/metanorma/mn2sts/issues/10
sub-part NOTE: realized partially yet (for ADOC output only) > `metanorma-collection` NOTE: to do https://github.com/metanorma/mnconvert/issues/6 YAML collection document + [%unnumbered] [source,yaml] ---- directives: - documents-inline bibdata: type: collection docid: type: bsi ... ---- see https://github.com/metanorma/sts2mn/issues/33
indirect < `clause/@obligation` + `foreword/@obligation` + `introduction/@obligation` + `terms/@obligation` [example%unnumbered] ==== [source,xml] ---- obligation="informative" obligation="normative"` ---- ====

Front page (bibliographic) data

STS XML can contains nat-meta, iso-meta, reg-meta and std-meta at the same time. The conversion rules are:

  • if there is nat-meta, then
    • nat-meta goes to bibdata
    • iso-meta goes to bibdata/relation[@type = 'adopted-from']/bibitem/contributor[role/@type = 'publisher']/organization[abbreviation = 'xxx'] (xxx = ISO or IEC)
    • reg-meta goes to bibdata/relation[@type = 'adopted-from']/bibitem/contributor[role/@type = 'publisher']/organization[abbreviation = 'xxx'] (xxx = CEN or CENELEC)
    • std-meta goes to bibdata/relation[@type = 'adopted-from']/bibitem/contributor[role/@type = 'publisher']/organization[abbreviation = 'xxx'] (xxx != ISO, IEC, CEN, CENELEC)
  • if there isn't nat-meta, then
    • iso-meta goes to bibdata
    • reg-meta goes to bibdata/relation[@type = 'adopted-from']/bibitem/contributor[role/@type = 'publisher']/organization[abbreviation = 'xxx'] (xxx = CEN or CENELEC)
    • std-meta goes to bibdata/relation[@type = 'adopted-from']/bibitem/contributor[role/@type = 'publisher']/organization[abbreviation = 'xxx'] (xxx != ISO, IEC, CEN, CENELEC)

In STS->Metanorma AsciiDoc conversion, only first (by priority nat-, iso-, reg-, std-meta) element is using for destination Metanorma AsciiDoc, for all another elements – only document number is populating into ‘:adopted-from:...’ (see https://github.com/metanorma/sts2mn/issues/31)

ISO/NISO STS a Metanorma presentation XML Metanorma AsciiDoc
`xxx-meta` `(nat-, iso-, reg-, std-meta)` > bibdata[@type="standard"]
title-wrap/@xml:lang < > title/@language
title-wrap/full > title[@format="text/plain" @type="main"]
`title-wrap/full` NOTE: values, separated by ' — ' < `title[*]`
title-wrap/intro < > title[@format="text/plain" @type="title-intro"] :title-intro-<@xml:lang>: ...
title-wrap/main < `title[@format="text/plain" @type="title-intro"]` NOTE: if `title[@type="main"] is empty`
title-wrap/main < > title[@format="text/plain" @type="title-main"] :title-main-<@xml:lang>: ...
`title-wrap/compl` NOTE: For BSI, in source STS XML not all title components are available as standalone elements (`full`, `intro`, `main` or `compl`), therefore the XSLT conversion tries to separate title by 'dash' char (decimal 8212) into components (see `'mode="bibdata_title_full"'` templates). < > title[@format="text/plain" @type="title-part"] :title-part-<@xml:lang>: ...
`title-wrap/compl` NOTE: amendment title puts after '—' < title[@type="title-amd"]
std-ref[@type='dated'] > `docidentifier[@type="iso"]` + `docidentifier[@type="iso-with-lang"] + (first upper-cased char from doc-ident/language)docidentifier[@type="iso-reference"] + (first upper-cased char from doc-ident/language)`
std-ref[@type='dated'] < docidentifier[1]
std-ref[@type='undated'] > indirect
std-ref[@type='undated'] < docidentifier[1], before ':'
doc-ref > docidentifier[@type="iso-reference"]
doc-ref < `docidentifier[@type='iso-reference'][last()]` + or + ` docidentifier@type='iso-with-lang']`
`custom-meta-group/` + `custom-meta[meta-name = 'ISBN']/` + `meta-value` < > docidentifier[@type="ISBN"] :isbn: ...
`custom-meta-group/custom-meta` + `[meta-name != 'ISBN']` [example%unnumbered] ==== [source,xml] ---- <custom-meta> <meta-name>price-ref-pages</meta-name> <meta-value>38</meta-value> </custom-meta> <custom-meta> <meta-name>generation-date</meta-name> <meta-value>2018-10-29 11:07:31</meta-value> </custom-meta> ---- ==== [example%unnumbered] ==== [source,xml] ---- <custom-meta-group> <custom-meta> <meta-name>Perinorm ID</meta-name> <meta-value>000000000030387671</meta-value> </custom-meta> <custom-meta> <meta-name>UPI</meta-name> <meta-value>000000000030387671</meta-value> </custom-meta> ... </custom-meta-group> ---- ==== NOTE: *conversion gap* + https://github.com/metanorma/mn-samples-bsi/issues/20[https://github.com/metanorma/mn-samples-bsi/issues/20] > indirect
std-ident < > _skip processing_ NOTE: see nested elements processing = originator doc-number-part-number
std-ident/doc-number < > docnumber :docnumber: ...
`pub-date` [example%unnumbered] ==== [source,xml] ---- <pub-date>2019-03-15</pub-date> ---- ==== [NOTE] ==== Comment from `NISO-STS-common-metadata1.ent`: * The `<pub-date>` was used in ISO STS to name the date this standard was (or was to be) published. This element has been superseded by `<release-date>` but may still appear in documents for backward compatibility with ISO STS. * Remarks: While this element may still be used, for better JATS compatibility, the date of initial publication should be recorded using `<release-date>` with the appropriate attributes. * Remarks: For ISO STS published standards, the `<pub-date>` recorded the date on whichthe project reached ISO stage 60, and the IS was first published. For the initial publication, the `<pub-date>` and the `<release-date>` were the same. For later ISO publications (corrections, new editions,versions in other languages), the `<pub-date>` would be earlier than the `<release-date>` (and was be the same across all versions of a given standard). ==== < > date[@type="published"]/on :published-date: ...
`release-date` [example%unnumbered] ==== [source,xml] ---- <release-date>2018-10-31</release-date> ---- ==== > date[@type="release"]/on :date: release ...
`release-date` NOTE: if output format is STS NISO < date[@type="release"]/on
`release-date` + or empty: + `<release-date/>` NOTE: if output format is STS ISO < date[@type="release"]/on[last()]
doc-ident/sdo < > contributor[role type="author"]/organization/abbreviation a `:mn-document-class: ...` + `or iso`
std-ident/originator < > contributor[role type="publisher"]/ organization/abbreviation
std-ident/edition < > edition :edition: ...
`std-ident/version` + [NOTE] ==== conversion gap https://github.com/metanorma/mn-samples-bsi/issues/22[https://github.com/metanorma/mn-samples-bsi/issues/22] ==== > version indirect
`std-ident/version` + [NOTE] ==== conversion gap https://github.com/metanorma/mn-samples-bsi/issues/22[https://github.com/metanorma/mn-samples-bsi/issues/22] ==== < version/revision-date
content-language < > language
doc-ident/language < language
doc-ident/language > skip processing :language: ...
doc-ident/release-version > `status` + `stage:` + WD – 20 + CD – 30 + DIS – 40 + FDIS – 50 + IS – 60 + `substage:` + WD or CD or DIS or FDIS – 00 + IS – 60 WD: + `:docstage: 20` + `:docsubstage: 00` + CD: + `:docstage: 30` + `:docsubstage: 00` + DIS: + `:docstage: 40` + `:docsubstage: 00` + FDIS: + `:docstage: 50` + `:docsubstage: 00` + IS: + `:docstage: 60` + `:docsubstage: 60` + doctype=standard: `:docstage: 60` + `:docsubstage: 60` + else: `:docstage:` + `:docsubstage:`
doc-ident/release-version < > status/stage/@abbreviation
doc-ident/release-version > ext/stagename
`std-xref [@type= "isPublishedFormatOf"]` [example%unnumbered] ==== [source,xml] ---- <std-xref type= "isPublishedFormatOf"><std-ref>20/30387670 DC</std-ref></std-xref> ---- ==== NOTE: for BSI only. < > `relation[@type="related"]/bibitem/` + `title: --` + `docidentifier: Draft for comment 'std-ref'` [example%unnumbered] ==== [source,xml] ---- <relation type="related"> <bibitem> <title>--</title> <docidentifier>Draft for comment 20/30387670 DC</docidentifier> </bibitem></relation> ---- ==== :bsi-related: Draft for comment 'std-ref'
`comm-ref` NOTE: for BSI only. < > `relation[@type="related"]/bibitem/title: --` + `docidentifier: Committee reference 'text'.` [example%unnumbered] ==== [source,xml] ---- <relation type="related"><bibitem> <title>--</title> <docidentifier>Committee reference DEF/1</docidentifier> </bibitem> </relation> ---- ==== :bsi-related: Committee reference 'text'
`comm-ref` + NOTE: not for BSI. [example%unnumbered] ==== [source,xml] ---- <comm-ref>ISO/TC 154</comm-ref> ---- ==== < > tries to extract 'TC', 'SC', 'WG` values and put them into:ext/editorialgroup/technical-committee | subcommittee | workgroup / @numberorext/editorialgroup/technical-committee/@number a `:technical-committee-type: TC` + `:technical-committee-number: ...` + `:subcommittee-type: SC` + `:subcommittee-number: ...` + `:workgroup-type: WG` + `:workgroup-number: ...` + `:technical-committee-code: ...` + `:technical-committee-name: ...`
`secretariat` [example%unnumbered] ==== [source,xml] ---- <secretariat>SAC</secretariat> ---- ==== < > editorialgroup/secretariat :secretariat: ...
std-xref > relation
`std-xref/@type` NOTE: *conversion gap* https://github.com/metanorma/mn-samples-bsi/issues/8[https://github.com/metanorma/mn-samples-bsi/issues/8] `relation/@type` NOTE: value copied for round-trip conversion, in Metanorma presentation XML there aren't these types.
`std-xref/std-ref` [example%unnumbered] ==== [source,xml] ---- <std-xref type="informativelyReferences"> <std-ref type="dated">BS EN ISO 19011:2018</std-ref></std-xref> ---- ==== < > `relation/bibitem` [example%unnumbered] ==== [source,xml] ---- <relation type="informativelyReferences"> <bibitem>BS EN ISO 19011:2018</bibitem></relation> ---- ====
`reg-meta` + `iso-meta` + `std-meta` < > relation[@type="adopted-from"] :adopted-from: std-ident/originator std-ident/doc-number - std-ident/ part-number
permissions < > copyright
permissions/copyright-year < > copyright/from :copyright-year: ...
`permissions/copyright-holder` + (if there is space) < > copyright/owner/organization/name
`permissions/copyright-holder` + (if there isn't space) < > copyright/owner/organization/abbreviation
permissions < > boilerplate/copyright-statement/clause
`permissions/copyright-year` + `permissions/copyright-holder` > boilerplate/copyright-statement/clause / p[@id="boilerplate-year"]© {copyright-holder} {copyright-year}
permissions/copyright-statement > boilerplate/copyright-statement/clause / p[@id="boilerplate-message"] a NOTE: conversion gap (ADOC->XML) https://github.com/metanorma/mn-samples-bsi/issues/9
permissions/copyright-statement < boilerplate/copyright-statement//title
permissions/copyright-statement < boilerplate/copyright-statement//p[@id!="boilerplate-year"]
`std-ident/doc-type` + `depends on` + `std-ident/originator` NOTE: for BSI documents > `ext/doctype` + `originator` starts with 'BS' and 'standard' -> standard + `originator` starts with 'PAS' and 'publicly available specification' or 'standard' -> publicly-available-specification + `originator starts` with 'PD' and 'published document' -> published-document + else value 'as-is' :doc-type: <see rules in left next one column>
std-ident/doc-type > `ext/doctype` + 'is' -> 'international-standard' + 'r' -> 'recommendation' + 'spec' -> 'spec' + else value 'as-is' :doc-type: ...
std-ident/doc-type < `ext/doctype` + `- international-standard -> IS` + `- if BSI document -> capitalized value` `- in another cases – value as is`
`ics` [example%unnumbered] ==== [source,xml] ---- <ics>01.140.30</ics> ---- ==== < > ext/ics/code :library-ics: ...
*indirect* NOTE: commented in mn->sts conversion. < ext/subdoctype
`std-ident/part-number` NOTE: not for BSI. < > ext/structuredidentifier/project-number/@part :partnumber: ...
`std-ident/originator` + `std-ident/doc-number` NOTE: not for BSI. ext/structuredidentifier/project-number/ {originator} {doc-number}
std-ident/part-number < > ext/structuredidentifier/partnumber :partnumber: ...
doc-ident/proj-id < > ext/structuredidentifier/project-number
`doc-ident/urn` [example%unnumbered] ==== [source,xml] ---- <urn>iso:std:iso-iec:29151:ed-1:v1:en</urn> ---- ==== NOTE: *conversion gap* https://github.com/metanorma/mn-samples-bsi/issues/21[https://github.com/metanorma/mn-samples-bsi/issues/21] indirect
indirect status/iteration
indirect ext/structuredidentifier/docnumber
indirect ext/updates-document-type
`wi-number` NOTE: *conversion gap* https://github.com/metanorma/mn-samples-bsi/issues/12[https://github.com/metanorma/mn-samples-bsi/issues/12] indirect
`release-version-id` NOTE: *conversion gap* https://github.com/metanorma/mn-samples-bsi/issues/12[https://github.com/metanorma/mn-samples-bsi/issues/12] indirect
`page-count` NOTE: *conversion gap* https://github.com/metanorma/mn-samples-bsi/issues/23[https://github.com/metanorma/mn-samples-bsi/issues/23] indirect
`std-ident/suppl-type` + `std-ident/suppl-number` + `std-ident/suppl-version` NOTE: *conversion gap* https://github.com/metanorma/mn-samples-bsi/issues/27[https://github.com/metanorma/mn-samples-bsi/issues/27] indirect
`meta-date` + `meta-date/@type` [example%unnumbered] ==== [source,xml] ---- <meta-date type="DOR">2019-10-27</meta-date> <meta-date type="DOW">2020-07-31</meta-date> <meta-date type="DOP">2020-07-31</meta-date> <meta-date type="DOA">2020-04-30</meta-date> ---- ==== [example%unnumbered] ==== [source,xml] ---- <meta-date type="vote-start">2018-10-31</meta-date> <meta-date type="vote-end">2018-12-26</meta-date> ---- ==== NOTE: *conversion gap* https://github.com/metanorma/mn-samples-bsi/issues/32[https://github.com/metanorma/mn-samples-bsi/issues/32] indirect
permissions/license < boilerplate/license-statement
permissions/license/@xtitle < boilerplate/license-statement/clause[1]/title
indirectsee nested elements processing < boilerplate/license-statement/clause
permissions/license/license-p < boilerplate/license-statement/clause/p
`permissions/license/license-p/@id` NOTE: the attribute @id isn'r defined in ISO STS DTD < boilerplate/license-statement/clause/p/@id \[[id]]
license[@specific-use="legal"] < boilerplate/legal-statement
license[@specific-use="legal"]/@xtitle < boilerplate/legal-statement /clause[1]/title
license-p < boilerplate/legal-statement/clause
`license-p/@id` NOTE: the attribute @id isn'r defined in ISO STS DTD < boilerplate/legal-statement/clause/@id \[[id]]
indirect `script` [example%unnumbered] ==== [source,xml] ---- <script current="true">Latn</script> ---- ====
fixed::mn-output-extensions: XML,html:local-cache-only::data-uri-image:
:imagesdir: value imagesdir from command line parameter (default 'images'
`:coverpage-image: images/ coverpage.X.png` NOTE: only if doc-type = publicly-available-specification

Section title

ISO/NISO STS a h Metanorma presentation XML h Metanorma AsciiDoc
`sec/label` [example%unnumbered] ==== [source,xml] ---- <label>6.2.2.3</label> ---- ==== < > `title` [example%unnumbered] ==== * if there is 'title', then put it before 'tab': + `<title>6.2.2.3<tab/> ... </title>` * if there isn't title: `<title>10.1</title> + and add `inline-header="true"` to parent clause: + `<clause inline-header="true"...` ====
`sec/title` [example%unnumbered] ==== [source,xml] ---- <title>Prototype design</title> ---- ==== < > `title` (after `tab`) [example%unnumbered] ==== [source,xml] ---- <title>...<tab/>Prototype design</title> ---- ==== `=== ...` NOTE: count of === depends of section's depth.
skip processing < title/@tab
skip processing < title/@depth

Terms

ISO/NISO STS a h Metanorma presentation XML h Metanorma AsciiDoc
sec[@sec-type = 'terms']//title > `[.boilerplate]` + `== ...` If there is no child `p`: + `\{blank}` + else: + `My predefined text` NOTE: count of `==` depends on clause depth.
`term-sec` [example%unnumbered] ==== [source,xml] ---- <term-sec id="sec_3.1"> ---- ==== > _skip processing_ NOTE: `sec 'sec[term-sec]' above`
term-sec/@id > indirect
term-sec < term
`term-sec/@id` NOTE: id=sec_ term/name < term
`term-sec/label` [example%unnumbered] ==== [source,xml] ---- <label>3.1</label> ---- ==== < > `term/name` [example%unnumbered] ==== [source,xml] ---- <name>3.1</name> ---- ====
`tbx:termEntry` [example%unnumbered] ==== [source,xml] ---- <tbx:termEntry ...> ---- ==== < > `term` [example%unnumbered] ==== [source,xml] ---- <term ...> ---- ==== `=== ...` NOTE: count of === depends of section's depth.
`tbx:termEntry/@id` [example%unnumbered] ==== [source,xml] ---- <tbx:termEntry id="term_3.1"> ---- ==== < > `term/@id` [example%unnumbered] ==== [source,xml] ---- <term id="term_3.1"> ---- ==== \[[id]]
tbc:termEntry/tbx:langSet < > indirect
`tbc:termEntry/tbx:langSet/@xml:lang` [example%unnumbered] ==== [source,xml] ---- <tbx:langSet XML:lang="en"> ---- ==== NOTE: in all STS examples XML:lang="en" < > indirect
`tbx:langSet/tbx:tig` [example%unnumbered] ==== [source,xml] ---- <tbx:tig> ---- ==== > _skip processing_ NOTE: see nested elements processing
`tbx:tig/tbx:term` + `[../tbx:normativeAuthorization/ @value = 'preferredTerm']` [example%unnumbered] ==== [source,xml] ---- <tbx:tig> <tbx:term>geometrical product specification</tbx:term> ... <tbx:normativeAuthorization value="preferredTerm"/> </tbx:tig> ---- ==== < > `preferred` [example%unnumbered] ==== [source,xml] ---- <preferred>geometrical product specification</preferred> ---- ====
`tbx:tig/tbx:term[../tbx:normativeAuthorization/ @value = 'admittedTerm']` [example%unnumbered] ==== [source,xml] ---- <tbx:tig><tbx:term>GPS</tbx:term> ...<tbx:normativeAuthorization value="admittedTerm"/></tbx:tig> ---- ==== < > `admitted` [example%unnumbered] ==== [source,xml] ---- <admitted>GPS</admitted> ---- ==== \...
tbx:tig/tbx:term[../tbx:normativeAuthorization/ @value = 'deprecatedTerm'] < > deprecates \...
tbx:tig/tbx:term (without ../tbx:normativeAuthorization) < > preferred
`tbx:tig/tbx:definition` [example%unnumbered] ==== [source,xml] ---- <tbx:definition>aspect of ... ---- ==== > `definition/p` [example%unnumbered] ==== [source,xml] ---- <definition><p>aspect of ... ---- ====
tbx:tig/tbx:definition < definition
`tbx:entailedTerm` [example%unnumbered] ==== [source,xml] ---- <tbx:entailedTerm target="term_3.8">objectives (3.8)</tbx:entailedTerm> ---- ==== < > `<em>term without (x.y)</em> (<xref target="@target"><strong>x.y if substring in @target after _term equal to x.y</strong></xref>)` [example%unnumbered] ==== [source,xml] ---- <em>objectives</em> (<xref target="term_3.8"><strong>3.8</strong></xref>) ---- ==== `\term:[term]` + `\term:[term_real,term]` + if cited and referenced terms are different, for example: + `\term:[systems,system]`
`tbx:normativeAuthorization` [example%unnumbered] ==== [source,xml] ---- <tbx:normativeAuthorization value="preferredTerm"/> <tbx:normativeAuthorization value="admittedTerm"/> ---- ==== > see above
`tbx:partOfSpeech` [example%unnumbered] ==== [source,xml] ---- <tbx:partOfSpeech value="noun"/> ---- ==== NOTE: in all STS examples `'value="noun"'`. Always creates.in mn->sts conversion. < > indirect
`tbx:example` [example%unnumbered] ==== [source,xml] ---- <tbx:example>Product, service, ---- ==== < > `termexample` [example%unnumbered] ==== [source,xml] ---- <termexample>Product, service, ---- ==== [example]
`tbx:source` [example%unnumbered] ==== [source,xml] ---- <tbx:source>BS EN ISO 14044:2006+A1:2018, <bold>3.1</bold>, modified</tbx:source> ---- ==== < > `termsource/origin/@citeas` [example%unnumbered] ==== [source,xml] ---- <termsource><origin citeas="BS EN ISO 14044:2006+A1:2018, 3.1, modified"/></termsource> ---- ==== `[.source]` + `\<<value1, value2,..>>, modified` NOTE: `value1`, `value2`, - extracted values from text + To do: + https://github.com/metanorma/%20mnconvert/issues/7[https://github.com/metanorma/ mnconvert/issues/7] +
tbx:source < termsource/origin/localityStack
tbx:source < `termsource/origin/localityStack/locality`
tbx:source < `termsource/origin/localityStack/locality/@type`
tbx:source < `termsource/origin/localityStack/locality/referenceFrom`
`tbx:source` [example%unnumbered] `, modified — ...` < termsource/modification
`tbx:note` [example%unnumbered] ==== [source,xml] ---- <tbx:note>For the definition of ---- ==== > `termnote/p` [example%unnumbered] ==== [source,xml] ---- <termnote><p>For the definition of ---- ==== `NOTE:` + `...`
tbx:note < termnote
`tbx:termType` [example%unnumbered] ==== [source,xml] ---- <tbx:termType value="abbreviation"/> ---- ==== NOTE: in all examples `'value="abbreviation"/>'` NOTE: *conversion gap* https://github.com/metanorma/mn-samples-bsi/issues/19[https://github.com/metanorma/mn-samples-bsi/issues/19] < > `<&#x200c;!--STS: <tbx:termType value="abbreviation"/>-->` NOTE: commented for round-trip conversion
[example%unnumbered] ==== [source,xml] ---- <term-sec id="sec_3.1.1.1"><label>3.1.1.1</label> <tbx:termEntry id="term_3.1.1.1"><tbx:langSet XML:lang="en"> <tbx:definition> <tbx:entailedTerm target="term_3.1.1.2">time (3.1.1.2)</tbx:entailedTerm> on the <tbx:entailedTerm target="term_3.1.1.18">calendar (3.1.1.18)</tbx:entailedTerm> </tbx:definition> <tbx:note>Common forms of date include <tbx:entailedTerm target="term_3.1.2.7">calendar date (3.1.2.7)</tbx:entailedTerm>, <tbx:entailedTerm target="term_3.1.2.8">ordinal date (3.1.2.8)</tbx:entailedTerm> or <tbx:entailedTerm target="term_3.1.2.9">week date (3.1.2.9)</tbx:entailedTerm>.</tbx:note> <tbx:tig id="term_3.1.1.1-1"> <tbx:term>date</tbx:term> <tbx:partOfSpeech value="noun"/> </tbx:tig> </tbx:langSet> </tbx:termEntry> </term-sec> ---- ==== [example%unnumbered] ==== [source,xml] ---- <term id="term_3.1.1.1"> <name>3.1.1.1</name> <preferred>date</preferred> <definition> <p> <em>time</em> (<xref target="term_3.1.1.2"> <strong>3.1.1.2</strong></xref>) on the <em>calendar</em> (<xref target="term_3.1.1.18"> <strong>3.1.1.18</strong></xref>) <em>time scale</em> (<xref target="term_3.1.1.5"> <strong>3.1.1.5</strong></xref>) </p> </definition> <termnote> <p>Common forms of date include <em>calendar date</em> (<xref target="term_3.1.2.7"> <strong>3.1.2.7</strong></xref>), <em>ordinal date</em> (<xref target="term_3.1.2.8"> <strong>3.1.2.8</strong></xref>) or <em>week date</em> (<xref target="term_3.1.2.9"> <strong>3.1.2.9</strong></xref>).</p></termnote></term> ---- ====

Text formatting elements

Note for NISO STS->Metanorma AsciiDoc conversion: is some cases unconstrained formatting pair used, see AsciiDoc unconstrained text.

Paragraph

ISO/NISO STS a h Metanorma presentation XML h Metanorma AsciiDoc
p > p
p < `p` NOTE: don't create in output, if parent element is `'termexample'`, `'definition'`, `'termnote'`, `'modification'` or `'dd'`
p/@id > p/@id \[[id]]
`p/@id` NOTE: if not BSI. (BSI doesn't use `@id` for paragraphs) < p/@id
`p/@style-type` [example%unnumbered] ==== [source,xml] ---- <p style-type="indent">... ---- ==== < > `p/@style-type` [example%unnumbered] ==== [source,xml] ---- <p style-type="indent">... ---- ==== NOTE: in Metanorma presentation XML model there isn't the attribute @style-type. It's added for round-trip conversion.
`p/@specific-use` [example%unnumbered] ==== [source,xml] ---- <p specific-use="indent">... ---- ==== NOTE: *conversion gap* https://github.com/metanorma/mn-samples-bsi/issues/14[https://github.com/metanorma/mn-samples-bsi/issues/14] < > `p/@specific-use` [example%unnumbered] ==== [source,xml] ---- <p specific-use="indent">... ---- ==== NOTE: in Metanorma presentation XML model there isn't the attribute @specific-use. It's added for round-trip conversion.
indirect < p/@align

Boldface text

ISO/NISO STS a h Metanorma presentation XML h Metanorma AsciiDoc
`bold` [example%unnumbered] ==== [source,xml] ---- <bold>core</bold> ---- ==== < > `strong` [example%unnumbered] ==== [source,xml] ---- <strong>core</strong> ---- ==== `\*...*` + or + `\\**...**` [example%unnumbered] ==== [source,xml] ---- *core* ---- ====
Note
For NISO STS->Metanorma presentation XML conversion: in case of 'bold' inside 'std', then 'bold' will be moved outside 'std'.

NISO STS: <std><bold><std-ref>ISO 10667 series</std-ref></bold></std>

Metanorma: <strong><eref citeas="ISO 10667 series" type="inline">ISO 10667 series</eref></strong>

Italic text

ISO/NISO STS a h Metanorma presentation XML h Metanorma AsciiDoc
`italic` [example%unnumbered] ==== [source,xml] ---- <italic>security</italic> ---- ==== < > `em` [example%unnumbered] ==== [source,xml] ---- <em>security</em> ---- ==== `\_..._` + or + `\\__...__`
Note
For NISO STS->Metanorma presentation XML conversion: in case of 'italic inside 'std', then 'italic will be moved outside std.

NISO STS: <std><italic><std-ref>BS 5839-1:2013</std-ref></italic></std>

Metanorma: <em><eref citeas="BS 5839-1:2013" type="inline">BS 5839-1:2013</eref></em>

Underlined text

ISO/NISO STS a h Metanorma presentation XML h Metanorma AsciiDoc
`underline` [example%unnumbered] ==== [source,xml] ---- <underline>top</underline> ---- ==== < > `underline` [example%unnumbered] ==== [source,xml] ---- <underline>top</underline> ---- ==== [underline]\...

Subscript formatting

ISO/NISO STS a h Metanorma presentation XML h Metanorma AsciiDoc
`sub` [example%unnumbered] ==== [source,xml] ---- <sub>t</sub> ---- ==== < > `sub` [example%unnumbered] ==== [source,xml] ---- <sub>t</sub> ---- ==== `\~...~` + or + `\~~...~~`

Superscript formatting

ISO/NISO STS a h Metanorma presentation XML h Metanorma AsciiDoc
`sup` [example%unnumbered] ==== [source,xml] ---- <sup>a</sup> ---- ==== < > `sup` [example%unnumbered] ==== [source,xml] ---- <sup>a</sup> ---- ==== `\^...^` + or + `\^^...^^`
*skip* NOTE: nested elements will be processed < sup[stem]
Note
For NISO STS->Metanorma presentation XML conversion: sup formatting will be ignored if it contains xref[@ref-type='fn'] inside.

NISO STS: <sup><xref ref-type="fn" rid="fn_1"><sup>1)</sup></xref></sup>

Metanorma: <fn reference="1"><p><eref citeas="BS 8889" type="inline" bibitemid="BS_8889">BS 8889</eref> was in development at the time of publication.</p></fn>

Monospaced text

ISO/NISO STS a h Metanorma presentation XML h Metanorma AsciiDoc
`monospace` [example%unnumbered] ==== [source,xml] ---- <monospace>.tbx.</monospace> ---- ==== < > `tt` [example%unnumbered] ==== [source,xml] ---- <tt>.tbx.</tt> ---- ==== \...or\\...

Small caps text

ISO/NISO STS a h Metanorma presentation XML h Metanorma AsciiDoc
`sc` [example%unnumbered] ==== [source,xml] ---- P<sc>ublishers</sc> ---- ==== < > `smallcap` [example%unnumbered] ==== [source,xml] ---- P<smallcap>ublishers</smallcap> ---- ==== [smallcap]\...

Line break

ISO/NISO STS a h Metanorma presentation XML h Metanorma AsciiDoc
`break` [example%unnumbered] ==== [source,xml] ---- <break/> ---- ==== < > `br` [example%unnumbered] ==== [source,xml] ---- <br/> ---- ==== +

Source code, pre-formatted text

ISO/NISO STS a h Metanorma presentation XML h Metanorma AsciiDoc
`code` [example%unnumbered] ==== [source,xml] ---- <code language="ruby">puts "Hello, world." ---- ==== NOTE: in ISO STS DTD this element isn't defined < > `sourcecode` [example%unnumbered] ==== [source,xml] ---- <sourcecode lang="ruby">puts "Hello, world." ---- ==== `[source, language]` + `--` + `...` + `--`
code/@language < > sourcecode/@lang [source, language]
`preformat` [example%unnumbered] ==== [source,xml] ---- <preformat>&lt;?xml version="1.0" encoding="UTF-8"?&gt; ---- ==== < > `sourcecode` [example%unnumbered] ==== [source,xml] ---- <sourcecode>&lt;?xml version="1.0" encoding="UTF-8"?&gt; ---- ==== `[source]` + `--` + `...` + `--`
`preformat/@preformat-type` NOTE: for ISO STS only < sourcecode/@lang

Note

ISO/NISO STS a h Metanorma presentation XML h Metanorma AsciiDoc
`non-normative-note` [example%unnumbered] ==== [source,xml] ---- <non-normative-note> <label>NOTE 1</label> <p>Continuous improvement ---- ==== < > `note` [example%unnumbered] ==== [source,xml] ---- <note> <name>NOTE 1</name> <p>Continuous improvement ---- ==== `NOTE:` + `...` + a few nested elements: + `[NOTE]` + `====` + `...` + `====` + in a list item: + `+` + `--` + `NOTE:` + `...` + `--`
`non-normative-note/label` [example%unnumbered] ==== [source,xml] ---- <non-normative-note><label>NOTE 1</label>... ---- ==== < > `note/name` [example%unnumbered] ==== [source,xml] ---- <note><name>NOTE 1</name>... ---- ====
non-normative-note/label NOTE ... < note[not(name)]
non-normative-note/p < > note/p
non-normative-note < `admonition` NOTE: for more information, see https://github.com/metanorma/mn2sts/issues/8[https://github.com/metanorma/mn2sts/issues/8]
non-normative-note/@id < admonition/@id
non-normative-note/label < `admonition/@type` + (@type="danger", "caution", "warning", "important", "safty_precautions") NOTE: uppercased

Example

ISO/NISO STS a h Metanorma presentation XML h Metanorma AsciiDoc
`non-normative-example` [example%unnumbered] ==== [source,xml] ---- <non-normative-example><label>EXAMPLE</label><p>The ... ---- ==== < > `example` [example%unnumbered] ==== [source,xml] ---- <example><p>The ... ---- ==== [example]
`non-normative-example/label` [example%unnumbered] ==== [source,xml] ---- <non-normative-example ><label> EXAMPLE </label>... ---- ==== > indirect
`non-normative-example` + `/label: EXAMPLE ...` < example/name
element-citation indirect

Reference

ISO/NISO STS a h Metanorma presentation XML h Metanorma AsciiDoc
xref[@ref-type != 'fn' and @ref-type != table-fn'] < > xref a if @ref-type = 'other': + `<..>` if @ref-type = 'sec' and reference to 'term-sec': + `\term:[term name from term-sec]` `else:` + `<<@rid>>`
xref[@ref-type != 'fn' and @ref-type != table-fn']/@rid < > xref/@target
`xref/@ref-type` > indirect
`xref/@ref-type` NOTE: evaluate by xslt, depends on 'referenced to' element (`fig`, `table`, `app`, `fn`, `bibr` or `sec`(default)) < indirect
named-content > xref a `term:[` + IF `@content-type = term` and points to `term-sec` or `termEntry`, then put `term` + if `text` different than `term`, then put also `text` before `term` ELSE + put `pass:[xlink:href]` and `text` + `]`
named-content < xref[not contains digits or Annex]
named-content/@content-type > `xref/@content-type` NOTE: In Metanorma presentation XML model there isn't the attribute `@content-type`. It is added for round-trip conversion.
`named-content/@content-type` + `- abbrev, if `@target` starts-with 'abbrev'` + `- term` < `xref[not contains digits or Annex]/@content-type`
`named-content/@pass:[xlink:href]` NOTE: if empty, then get text content of named-content > xref/@target
named-content/@xlink:href < xref[not contains digits or Annex]/@target
`named-content[@content-type="ace-tag"]` [example%unnumbered] ==== [source,xml] ---- <named-content content-type="ace-tag" specific-use="A1_start"/> ---- ==== NOTE: *conversion gap* + https://github.com/metanorma/mn-samples-bsi/issues/31 > indirect \add:[]
std < > eref a `\<<id,locality,name>>` + where + `- id – id` of `ref` item in bibliography, found by `@std-id` + `- locality, name –` parsed values from `@std-id` [example%unnumbered] ==== XML: [source,xml] ---- <std std-id="iso:std:iso:guide:73:ed-1:en:clause:3.5.1.3" type="dated"><std-ref>ISO Guide 73:2009</std-ref>, 3.5.1.3</std> ---- ADoc: [source,adoc] ---- <<ref_3,clause=3.5.1.3>> ---- ====
std/std-ref > eref/@citeas
std/std-ref < `eref/@citeas` [NOTE] -- Preliminary processing: * replace double `--` to `8212`(decimal) dash * remove '[' and ']' around -- NOTE: for BSI documents, replaces space to non-break space (`A0`(hex))
`std/@std-id` NOTE: *conversion gap* in `@std-id` format https://github.com/metanorma/mn-samples-bsi/issues/37[https://github.com/metanorma/mn-samples-bsi/issues/37] + `(PAS_2035_2019 vs. PAS 2035:2019)` > eref/@bibitemid
`std/@std-id` < `eref/@bibitemid` NOTE: instead of `@bibitemid` tries to get `bibliography//bibitem[@id = @bibitemid]/urn` if exist
std < `eref/localityStack` NOTE: get text from nested locality elements
, modified — < eref/localityStack/locality/modification
`std/@std-id` points to non-existing elements with `@id=@std-id` [example%unnumbered] ==== [source,xml] ---- <std std-id="BS 0:2011" type="dated"> <std-ref>BS 0:2011</std-ref> </std> ---- there isn't any entity with id="BS 0:2011". ==== NOTE: *conversion gap* https://github.com/metanorma/mn-samples-bsi/issues/41[https://github.com/metanorma/mn-samples-bsi/issues/41] a > xref(adoc->mn conversion) a `Example:` + `\<<BS_0_2011,BS 0:2011>>`
`std/@type` [example%unnumbered] ==== [source,xml] ---- type="dated" type="undated" ---- ==== > indirect
`std/@type` [example%unnumbered] ==== [source,xml] ---- type="dated" type="undated" ---- ==== < `eref/@citeas` NOTE: Determined programmatically, see template `setDatedUndatedType` in the module `mn2sts.xsl`
`std/std-ref/processing-instruction('doi')` [example%unnumbered] ==== [source,xml] ---- <std std-id="iso:std:iso:44001:en" type="undated"> <std-ref>ISO 44001<?doi https://doi.org/10.3403/30353016U?></std-ref> </std> ---- ==== NOTE: *conversion gap* https://github.com/metanorma/mn-samples-bsi/issues/28[https://github.com/metanorma/mn-samples-bsi/issues/28] > indirect
xref[@ref-type="other"] < callout
xref[@ref-type="other"]/@rid < callout/@target

Formula

ISO/NISO STS a h Metanorma presentation XML h Metanorma AsciiDoc
disp-formula < > formula/stem ...
mml:* < > * XMLns="http://www.w3.org/1998/Math/MathML" as is in MathML
mml:math/@id > formula/@id \[[id]]
disp-formula/@id < formula/@id
[example%unnumbered] ==== [source,xml] ---- <disp-formula><mml:math id="mml_m1">... ---- ==== [example%unnumbered] ==== [source,xml] ---- <formula id="mml_m1"> <stem type="MathML"> <math XMLns="http://www.w3.org/1998/Math/MathML">... ---- ====
`inline-formula` [example%unnumbered] ==== [source,xml] ---- <inline-formula> <mml:math id="mml_m1"><mml:mrow> ---- ==== `stem` [example%unnumbered] ==== [source,xml] ---- <stem type="MathML"> <math XMLns="http://www.w3.org/1998/Math/MathML"> <mrow> ---- ==== *NO id* \...

Quote

ISO/NISO STS a h Metanorma presentation XML h Metanorma AsciiDoc
disp-quote < > quote a `[quote, _related-object_]` + `\_\___` + `...` + `\____`
disp-quote < quote/@id
disp-quote/related-object < > quote/source [quote, related-object]
disp-quote/related-object/ text value < quote/source/@citeas
indirect < quote/source/@type
indirect < quote/source/@bibitemid
disp-quote/related-object < quote/author
disp-quote/p < > quote/p ...
[example%unnumbered] ==== [source,xml] ---- <disp-quote> <p>This International Standard ...</p> <related-object>ISO, ISO 7301:2011, Clause 1</related-object> </disp-quote> ---- ==== > [example%unnumbered] ==== [source,xml] ---- <quote> <source>ISO, ISO 7301:2011, Clause 1</source> <p> This International Standard ...</p> </quote> ---- ====
_skip processing_ NOTE: see nested elements processing < quote/localityStack
_skip processing_ NOTE: see nested elements processing < quote/localityStack/locality
`disp-quote/related-object/` + Clause + Annex + text value (delimited by ';') < `quote/localityStack/locality/@type='clause'` + `quote/localityStack/locality/@type=annex` + `quote/localityStack/locality/@type`
disp-quote/related-object/ text value < quote/localityStack/locality/referenceFrom
[example%unnumbered] ==== [source,xml] ---- <disp-quote id="..."> <p id="...">This International Standard ...</p> <related-object>ISO, ISO 7301:2011, Clause 1</related-object> </disp-quote> ---- ==== < [example%unnumbered] ==== [source,xml] ---- <quote id="..."> <source type="inline" bibitemid="ISO7301" citeas="ISO 7301:2011"><localityStack><locality type="clause"> <referenceFrom>1</referenceFrom></locality> </localityStack></source> <author>ISO</author> <p id="...">This International Standard ...</p> </quote> ---- ====

Footnote

ISO/NISO STS a h Metanorma presentation XML h Metanorma AsciiDoc
fn < > fn \1
fn/@id < > indirect
fn/label < > indirect
xref[@ref-type = "fn"][following-sibling::*[fn][@id = xref/@rid]]/text() < > fn/@reference
[example%unnumbered] ==== [source,xml] ---- <xref ref-type="fn" rid="fn_1"><sup>1</sup></xref> <fn id="fn_1"><label>1</label><p>The Fire...</p></fn> ---- ==== [example%unnumbered] ==== [source,xml] ---- <fn reference="1"><p>The Fire ...</p></fn> ---- ====
`table-wrap-foot/fn` NOTE: moving up to the text > fn \2
`back/fn-group` NOTE: moving up to the text (possible conversion gap https://github.com/metanorma/mn-samples-bsi/issues/18[https://github.com/metanorma/mn-samples-bsi/issues/18]) > fn \3
xref[@ref-type="fn"] < > fn \4
`xref[@ref-type="fn"]/text()` NOTE:removing ')' < > fn/@reference
`If xref[@ref-type="fn"] in table-wrap:` + `table-wrap//fn[@id = xref/@rid]/*` < > fn/*
else: //fn-group/fn[@id = xrefrid]/* < > fn/*
xref[@ref-type="table-fn"] < > fn
`xref[@ref-type="table-fn"]/text()` NOTE: removing ')' < > fn/@reference
table-wrap//fn[@id = xref/@rid]/* < > fn/*
[example%unnumbered] ==== [source,xml] ---- <thead>... <xref ref-type="table-fn" rid="table-fn_1.1"> <sup>A)</sup> </xref>... </thead> ... <table-wrap-foot> <fn id="table-fn_1.1"> <label><sup>A)</sup></label> <p>These items shall appear in every design brief.</p> </fn></table-wrap-foot></table-wrap> ---- ==== [example%unnumbered] ==== [source,xml] ---- <thead> ... <fn reference="A"><p>These items shall appear in every design brief.</p></fn> ... </thead> ---- ====
[example%unnumbered] ==== [source,xml] ---- <list-item> ... <xref ref-type="fn" rid="fn_1"> <sup>1)</sup> </xref> ... </body> ... <fn-group> <fn id="fn_1"> <label>1)</label> <p>Marking...</p> </fn-group> </back> ---- ==== [example%unnumbered] ==== [source,xml] ---- <fn reference="1"><p>Marking...</p></fn> ---- ====

Amendment

ISO/NISO STS a h Metanorma presentation XML h Metanorma AsciiDoc
indirectsee nested elements processing < amend
`editing-instruction` NOTE: this rule for NISO STS only. < amend/description
`editing-instruction/@id` NOTE: this rule for NISO STS only. < amend/@id
`editing-instruction/@content-type` NOTE: this rule for NISO STS only. < amend/@change
`editing-instruction/p` NOTE: this rule for NISO STS only. < amend/description/p
p < amend/description/p
`p/@content-type` NOTE: this rule for ISO STS only. < amend/@change
indirectsee nested elements processing < amend/newcontent
p < amend/newcontent/p
`label` NOTE: adding suffix to label for element `@type` < amend/autonumber/@type

Annotation

ISO/NISO STS a h Metanorma presentation XML h Metanorma AsciiDoc
`element-citation` NOTE: this rule for ISO STS only < annotation
`element-citation/@id` NOTE: this rule for ISO STS only < annotation/@id
`element-citation/annotation` NOTE: this rule for NISO STS only < annotation
`element-citation/ annotation/@id` NOTE: this rule for NISO STS only < annotation/@id
`element-citation/ annotation/@id` > <text from node with @rid = annotation/@id>

Other

ISO/NISO STS a h Metanorma presentation XML h Metanorma AsciiDoc
`styled-content` [example%unnumbered] ==== [source,xml] ---- <styled-content style-type="normal">(This annex forms an integral part of this Recommendation | International Standard.)</styled-content> <styled-content style="color:#009fe3;">•</styled-content> ---- ==== < > [example%unnumbered] ==== [source,xml,subs=none] ---- <&#x200c;!--STS: <&#x200c;styled-content ...> -->...<&#x200c;!--STS: <&#x200c;/styled-content> --> ---- ==== NOTE: Tags commented for round-trip conversion. [example%unnumbered] ==== [source,xml,subs=none] ---- <&#x200c;!--STS: <&#x200c;styled-content style-type="normal">-->(This annex forms an integral part of this Recommendation | International Standard.)<&#x200c;!--STS: <&#x200c;/styled-content>--> <&#x200c;!--STS: <&#x200c;styled-content style="color:#009fe3;">-->•<&#x200c;!--STS: <&#x200c;/styled-content>--> ---- ==== indirect
`boxed-text` [example%unnumbered] ==== [source,xml] ---- <boxed-text> <p>Objective: To provide management direction... </p> </boxed-text> ---- ==== NOTE: *conversion gap* https://github.com/metanorma/mn-samples-bsi/issues/38[https://github.com/metanorma/mn-samples-bsi/issues/38] indirect
th/break th/strong < th//br/strong

Tables

Note
In Metanorma presentation XML there aren't elements for NISO/ISO STS XML elements ’table-wrap‘, ’table-wrap/label‘, ’table-wrap/caption‘, therefore they transform to data inside Metanorma presentation XML element ’table‘.
ISO/NISO STS a h Metanorma presentation XML h Metanorma AsciiDoc
`table-wrap` [example%unnumbered] ==== [source,xml] ---- <table-wrap ...> ---- ==== < > _skip processing_ NOTE: see nested elements processing
`table-wrap/@id` [example%unnumbered] ==== [source,xml] ---- <table-wrap id="tab_D.1" ...> ---- ==== < > `table/@id` [example%unnumbered] ==== [source,xml] ---- <table id="tab_D.1" ...> ---- ==== \[[id]]
`table-wrap/@content-type` [example%unnumbered] ==== [source,xml] ---- content-type="ace-table" ---- ==== NOTE: *conversion gap* + https://github.com/metanorma/mn-samples-bsi/issues/39[https://github.com/metanorma/mn-samples-bsi/issues/39] > indirect options="unnumbered"
`table-wrap/@position` [example%unnumbered] ==== [source,xml] ---- position="float" ---- ==== NOTE: *conversion gap* https://github.com/metanorma/mn-samples-bsi/issues/35[https://github.com/metanorma/mn-samples-bsi/issues/35] indirect
`table-wrap/@orientation` [example%unnumbered] ==== [source,xml] ---- orientation="landscape" ---- ==== < > `<pagebreak orientation="..."/>` + `...` + `<pagebreak orientation="portrait"/>` [example%unnumbered] ==== [source,xml] ---- <pagebreak orientation="landscape"/> ... <pagebreak orientation="portrait"/> ---- ==== before table: + `[%...]` + `<<<` after table: + `[%portrait]` + `<<<`
`table-wrap/label` [example%unnumbered] ==== [source,xml] ---- <label>Table D.1</label> ---- ==== < > `table/name` [example%unnumbered] ==== [source,xml] ---- <name>Table D.1 — ...</name> ---- ====
`table-wrap/caption` [example%unnumbered] ==== [source,xml] ---- <caption> ---- ==== _skip processing_ NOTE: see nested elements processing
`table-wrap/caption/title` [example%unnumbered] ==== [source,xml] ---- <title>Table of requirements</title> ---- ==== < > `table/name` [example%unnumbered] ==== [source,xml] ---- <name>...Table of requirements</name> ---- ==== . ...
`table` [example%unnumbered] ==== [source,xml] ---- <table ...> ---- ==== < > `table` [example%unnumbered] ==== [source,xml] ---- <table ...> ---- ==== if parent is array:[[array_ + array/@id]][%unnumbered][...]|===...|===
array/table < figure//table
`table/@id` [example%unnumbered] ==== [source,xml] ---- <table id="calendar"> ---- ==== < > `table/@id` [example%unnumbered] ==== [source,xml] ---- <table id="calendar"> ---- ==== NOTE: if there isn't source STS `table/@id`, then it populates from STS `table-wrap/@id` or `array/@id` \[[id]]
`table/@width` [example%unnumbered] ==== [source,xml] ---- <table width="650"> <table width="80%"> <table width="500px"> ---- ==== < > `table/@width` [example%unnumbered] ==== [source,xml] ---- <table width="650px"> <table width="80%"> <table width="500px"> ---- ==== NOTE: if in source STS `table/@width` there isn't 'px' or '%', then 'px' will be added. a `width=...` NOTE: if value doesn't contain '%' or 'px', then 'px' will be added.
`table-wrap/table-wrap-foot` [example%unnumbered] ==== [source,xml] ---- </table> <table-wrap-foot> <p> <non-normative-note> <label>NOTE</label> <p>Actual sensitivity might vary by activity or partner.</p> </non-normative-note> </p> </table-wrap-foot> </table-wrap> ---- ==== < > `</tbody> content of table-wrap-foot </table>` [example%unnumbered] ==== [source,xml] ---- </tbody> <p> <note> <name>NOTE</name> <p>Actual sensitivity might vary by activity or partner.</p> </note> </p> </table> ---- ==== options="footer"
`table/@style` [example%unnumbered] ==== [source,xml] ---- <table style="border-collapse:collapse;border-color:#009fe3;"> ---- ==== NOTE: conversion gap, https://github.com/metanorma/mn-samples-bsi/issues/11[https://github.com/metanorma/mn-samples-bsi/issues/11] < > `table/@style` [example%unnumbered] ==== [source,xml] ---- <table style="border-collapse:collapse;border-color:#009fe3;"> ---- ==== NOTE: in Metanorma presentation XML model there isn't the attribute `@style`. It adds for round-trip conversion. indirect
`table/@frame` [example%unnumbered] ==== [source,xml] ---- <table frame="hsides"> ---- ==== NOTE: conversion gap, https://github.com/metanorma/mn-samples-bsi/issues/11[https://github.com/metanorma/mn-samples-bsi/issues/11] < > `table/@frame` [example%unnumbered] ==== [source,xml] ---- <table frame="hsides"> ---- ==== NOTE: in Metanorma presentation XML model there isn't the attribute `@frame`. It added for round-trip conversion. indirect
`table/@rules` [example%unnumbered] ==== [source,xml] ---- <table rules="rows"> ---- ==== NOTE: conversion gap, https://github.com/metanorma/mn-samples-bsi/issues/11[https://github.com/metanorma/mn-samples-bsi/issues/11] < > `table/@rules` [example%unnumbered] ==== [source,xml] ---- <table rules="rows"> ---- ==== NOTE: in Metanorma presentation XML model there isn't the attribute `@rules`. It added for round-trip conversion. indirect
`thead` [example%unnumbered] ==== [source,xml] ---- <thead> ---- ==== < > `thead` [example%unnumbered] ==== [source,xml] ---- <thead> ---- ==== `options="header",` + `headerrows=count(tr)`
`tbody` [example%unnumbered] ==== [source,xml] ---- <tbody> ---- ==== < > `tbody` [example%unnumbered] ==== [source,xml] ---- <tbody> ---- ====
tfoot < tfoot
`colgroup` [example%unnumbered] ==== [source,xml] ---- <colgroup> ---- ==== NOTE: *conversion gap* https://github.com/metanorma/mn-samples-bsi/issues/26[https://github.com/metanorma/mn-samples-bsi/issues/26] < > `colgroup` [example%unnumbered] ==== [source,xml] ---- <colgroup> ---- ==== NOTE: In some STS XML documents there isn't `'colgroup'` element, but in Metanorma presentation XML it adds always.
`col` [example%unnumbered] ==== [source,xml] ---- <col ...> ---- ==== NOTE: *conversion gap* https://github.com/metanorma/mn-samples-bsi/issues/26[https://github.com/metanorma/mn-samples-bsi/issues/26] < > `col` [example%unnumbered] ==== [source,xml] ---- <col ...> ---- ====
`col/@width` [example%unnumbered] ==== [source,xml] ---- <col width="11%"/> ---- ==== < > `col/@width` [example%unnumbered] ==== [source,xml] ---- <col width="11%"/> ---- ==== `[cols="..."]` NOTE: comma separated widths NOTE: removes %, cm, and multiply by 100
`tr` [example%unnumbered] ==== [source,xml] ---- <tr> ---- ==== < > `tr` [example%unnumbered] ==== [source,xml] ---- <tr> ---- ====
`th,td` [example%unnumbered] ==== [source,xml] ---- <th ...> ---- ==== < > `th,td` [example%unnumbered] `<th ...` |
`th,td/@align` [example%unnumbered] ==== [source,xml] ---- <th align="center"> ---- ==== < > `th,td/@align` [example%unnumbered] ==== [source,xml] ---- <th align=" center "> ---- ==== `^` + `>`
`th,td/@valign` [example%unnumbered] ==== [source,xml] ---- <th valign="middle"> ---- ==== < > `th,td/@valign` [example%unnumbered] ==== [source,xml] ---- <th valign="middle"> ---- ==== `.^` + `.>`
`th,td/@style` [example%unnumbered] ==== [source,xml] ---- <th style="background-color:#009fe3;"> ---- ==== NOTE: there is conversion gap + https://github.com/metanorma/mn-samples-bsi/issues/11[https://github.com/metanorma/mn-samples-bsi/issues/11] < > `th,td /@style` [example%unnumbered] ==== [source,xml] ---- <th style="background-color:#009fe3;"> ---- ==== NOTE: in Metanorma presentation XML model there isn't the attribute `@style`. It added for round-trip conversion.
`th,td/@rowspan` [example%unnumbered] ==== [source,xml] ---- <th rowspan="6"> ---- ==== < > `th,td/@rowspan` [example%unnumbered] ==== [source,xml] ---- <th rowspan="6"> ---- ==== .x+
`th,td/@colspan` [example%unnumbered] ==== [source,xml] ---- <th colspan="3"> ---- ==== < > `th,td/@colspan` [example%unnumbered] ==== [source,xml] ---- <th colspan="3"> ---- ==== x+
`th,td/@scope` [example%unnumbered] ==== [source,xml] ---- <th scope="row"> ---- ==== < > `th,td/@scope` [example%unnumbered] ==== [source,xml] ---- <th scope="row"> ---- ==== NOTE: in Metanorma presentation XML model there isn't the attribute `@scope`. It is added for round-trip conversion.

List

%unnumbered]

===

h| ISO/NISO STS a| h| Metanorma presentation XML h| Metanorma AsciiDoc | list[@list-type = 'bullet' or @list-type = 'simple'] | < > | ul a| | list[@list-type = 'bullet'] | < | ul[not(@list-type)] a| | list[not (@list-type = 'bullet' or @list-type = 'simple')] | > | ol a| | list[@list-type = 'alpha-lower'] | < | ol[not(@list-type)] a| | list/@list-type='alpha-lower' | < > | ol/@type="alphabet"] a| | list/@list-type='alpha-upper' | < > | ol/@type="alphabet_upper" | [upperalpha] | list/@list-type='roman-lower' | < > | ol/@type="roman" | [lowerroman] | list/@list-type='roman-upper' | < > | ol/@type="roman_upper" | [upperroman] | list/@list-type=' arabic' | > | ol/@type="arabic" | [arabic] | list/ first char of list/label[1] in 1234567890] | > | ol/@type="arabic" | [arabic] | list/@list-type='order' | < | ol/@type="arabic" a| | list/ first char of list/label[1] in ixvcm] | > | @type="roman" | [lowerroman] | list first char of list/label[1] in IXVCM] | > | @type="roman_upper" | [upperroman] | list/ first char of list/label[1] in a-z] | > | @type="alphabet" a| | first char of list/label[1] in A-Z | > | @type="alphabet_upper" | [upperalpha] | list/@list-type | < > | @type a| a| list/@list-type="simple"

Note
conversion gap https://github.com/metanorma/mn-samples-bsi/issues/40 a| | indirect | indirect | first char of list/label[1] != 1 or a or A or i or I | > a| @startdecimal number for start value determines in the Java function org.metanorma.utils.Util.getListStartValue a| indirectTo do:https://github.com/metanorma/mnconvert/issues/24 | list-item | < > | li a| if list/@list-type = 'bullet' 'dash' or simple:* ...

else. ...

Note
count of '*' and ',' depends on level depth | list-item/label | > | indirect a| a| list-item/label
Note
Evaluate in xslt type of list (ul or ol), @type and @start values.See <xsl:template match="*[local-name() = 'li']"> for rules. | < a| Evaluate by ul,ol/@type, @start a|

===

Definitions list

ISO/NISO STS a h Metanorma presentation XML h Metanorma AsciiDoc
`def-list` [example%unnumbered] ==== [source,xml] ---- <def-list ...> ---- ==== > `dl` [example%unnumbered] ==== [source,xml] ---- <dl> ---- ====
def-list/title > indirect \...
`def-list/def-item` [example%unnumbered] ==== [source,xml] ---- <def-item ...> ---- ==== > _skip processing_ NOTE: see nested elements processing
`def-item/term` [example%unnumbered] ==== [source,xml] ---- <term>CBRMS</term> ---- ==== > `dt` [example%unnumbered] ==== [source,xml] ---- <dt> CBRMS</dt> ---- ==== ...::
`def-list/def-item/id` [example%unnumbered] ==== [source,xml] ---- <def-item id="abbrev_1"> ---- ==== > `dt/@id` [example%unnumbered] ==== [source,xml] ---- <dt id="abbrev_1">... ---- ==== \[[id]]
`def-item/def` [example%unnumbered] ==== [source,xml] ---- <def> <p>intellectual property right</p> </def> ---- ==== > `dd` [example%unnumbered] ==== [source,xml] ---- <dd> <p>intellectual property right</p> </dd> ---- ==== text
`array [count of table/col =2 or count of table/colgroup/col = 2]` [example%unnumbered] ==== [source,xml] ---- <array id="tab_a"> <table> <tbody> <tr> <td valign="top" scope="row" align="left">cent</td> <td valign="top" align="left">time scale component century </td> </tr> </tr> <tr> <td align="left" valign="top"> <italic>C</italic><sub>dev</sub> </td> <td align="left" valign="top">is the cost of developing the product (for total anticipated quantity);</td> </tr>.... ---- ==== NOTE: this rule is not applicable for BSI documents < > `dl` + `@key = 'true' if STS `label` = 'Key'` [example%unnumbered] ==== [source,xml] ---- <dl id="tab_a"> <dt>cent</dt> <dd> <p id="...">time scale component century</p> </dd> ---- ==== tr/td[1]::tr/td[2]
array [count of table/col =2 or count of table/colgroup/col = 2]/@id < > dl/@id
array [count of table/col =2 or count of table/colgroup/col = 2]/label = 'Key' > dl/@key="true" \label

Image

ISO/NISO STS a h Metanorma presentation XML h Metanorma AsciiDoc
fig > figure a `====` + `...` + `====`
fig/@id > figure/@id \[[id]]
`fig` NOTE: for BSI only < figure[figure]
`fig/@id` NOTE: for BSI only < figure[figure]/@id
fig-group < figure[figure]
fig-group/@id < figure[figure]/@id
`fig-group/@content-type=figures` < figure[figure]
`fig/@fig-type` [example%unnumbered] ==== [source,xml] ---- <fig fig-type="figure" ---- ==== indirect
`fig/label` [example%unnumbered] ==== [source,xml] ---- <label>Figure 1</label> ---- ==== < > `figure/name` [example%unnumbered] ==== [source,xml] ---- <name>Figure 1 — ... ---- ==== if starts with 0:[number=...]
`fig/caption` [example%unnumbered] ==== [source,xml] ---- <caption><title>Multidimensional relationships</title></caption> ---- ==== < > figure/name [example%unnumbered] ==== [source,xml] ---- <name>... Multidimensional relationships</name> ---- ==== . ...
fig-group > figure a `====` + `...` + `====`
fig-group/@id > figure/@id \[[id]]
`graphic[caption]` [example%unnumbered] ==== [source,xml] ---- <graphic xlink:type="simple" pass:[xlink:href]="30238432_FigA01a"> <label>a)</label><caption> <title>Imposed loads for treads with a span of up to 1 200 mm </title> </caption></graphic> ---- ==== < > figure a `====` + `...` + `====`
graphic/label (if there isn't graphic/caption/title) < > figure/name . ...
`graphic/label` [example%unnumbered] ==== [source,xml] ---- <label>a)</label><caption>... ---- ==== < > `figure/name` [example%unnumbered] `<name>a) &#160; ... </name)`
`graphic/caption/title` [example%unnumbered] ==== [source,xml] ---- <label>a)</label><caption> <title>Imposed loads for treads with a span of up to 1 200 mm </title></caption> ---- ==== < > `figure/name` [example%unnumbered] ==== [source,xml] ---- <name>... Imposed loads for treads with a span of up to 1 200 mm ---- ==== . ...
`graphic` < > image height="auto" width="auto" image:: ...
inline-graphic > image height="auto" width="auto" image:: ...
indirect `image/@height` [example%unnumbered] ==== [source,xml] ---- height="auto" ---- ====
indirect `image/@width` [example%unnumbered] ==== [source,xml] ---- width="auto" ---- ====
`inline-graphic | graphic/@pass:[xlink:href] and not processing-instruction('isoimg-id')` NOTE: if there isn't `processing-instruction('isoimg-id'`), then `@pass:[xlink:href]` contains image file name. > `image/@src` + `string in base64 encoding OR` + `imagedir path + @pass:[xlink:href] + .png(optional, if @pass:[xlink:href] doesn't have file extension)` image:: ...
`graphic/processing-instruction('isoimg-id')` NOTE: if there is this PI, then it contains image file name (but not `@pass:[xlink:href]`) NOTE: `graphic/@pass:[xlink:href]` + *conversion gap* + https://github.com/metanorma/mn-samples-bsi/issues/25[https://github.com/metanorma/mn-samples-bsi/issues/25] > `image/@src` + `imagedir path + value from 'isoimg-id'` image:: ...
graphic/@xlink:href < image/@id
graphic/alt-textinline-graphic/alt-text < > image/@alt image:: ... [alt-text]
indirect image/@mimetype
`graphic/object-id[@pub-id-type = 'publisher-id']` [example%unnumbered] ==== [source,xml] ---- <object-id pub-id-type="fpi"> +//ISO 9070/RA::A00007::GE::DIN German Institute for Standardization::Standards //NONSGML ISO 13849-1:2006-11-00::Figure 1 //EN</object-id> <object-id pub-id-type= "publisher-id">fig-1</object-id> ---- ==== > indirect image:: ... [object-id]

Bibliography

ISO/NISO STS a h Metanorma presentation XML h Metanorma AsciiDoc
ref < > bibitem a `* [\[[id,(ref)label]]], title` + or + `* [\[[id,ref]]], title` NOTE: see below for component's source data.
ref/@id < > bibitem/@id a `* [[[*id*,(ref)label]]]`
ref/std/@std-id > `* [[[*id*,(ref)label]]]`
ref/std/@std-ref > `* [[[*id*,(ref)label]]]`
ref/std/@std-ref > `* [\[[id,(*ref*)label]]]`
ref/std//title > `* [\[[id,(ref)label]]], *\_title_*`
ref/@content-type < > bibitem/@type
ref/label < > docidentifier[@type="metanorma"] * [\[[id,(ref)label]]]
`mixed-citation` NOTE: there is a conversion gap for sub-elements, see https://github.com/metanorma/mn-samples-bsi/issues/10[https://github.com/metanorma/mn-samples-bsi/issues/10] < > bibitem/title
mixed-citation/std > `* [\[[id,(*ref*)label]]]`
`mixed-citation/@publication-type` NOTE: *conversion gap* https://github.com/metanorma/mn-samples-bsi/issues/30[https://github.com/metanorma/mn-samples-bsi/issues/30] > indirect
ref-list/ref/std/@std-id < > bibitem/docidentifier[@type="URN"]
indirect bibitem/fetched
indirect bibitem/title/@type
indirect bibitem/title/@format
indirect bibitem/title/@language
indirect bibitem/title/script
indirect bibitem/uri
indirect bibitem/uri/@type
*indirect* NOTE: commented < bibitem/docnumber
*indirect* NOTE: commented < bibitem/date
*indirect* NOTE: commented < bibitem/date/@type
*indirect* NOTE: commented < bibitem/date/on
*indirect* NOTE: commented < bibitem/contributor
*indirect* NOTE: commented < bibitem/contributor/role
*indirect* NOTE: commented < bibitem/contributor/role/@type
*indirect* NOTE: commented < bibitem/contributor/organization
*indirect* NOTE: commented < bibitem/contributor/organization/name
*indirect* NOTE: commented < bibitem/contributor/organization/abbreviation
*indirect* NOTE: commented < bibitem/contributor/organization/uri
indirect bibitem/edition
indirect bibitem/language
indirect bibitem/script
indirect bibitem/abstract
indirect bibitem/abstract/@format
indirect bibitem/abstract/@language
indirect bibitem/abstract/@script
indirect bibitem/status
indirect bibitem/status/stage
indirect bibitem/status/substage
indirect bibitem/copyright
indirect bibitem/copyright/from
indirect bibitem/copyright/owner
indirect bibitem/copyright/owner/organization
indirect bibitem/copyright/owner/organization/name
indirect bibitem/relation
indirect bibitem/relation/@type
indirect bibitem/relation/bibitem /...
indirect bibitem/place
`ref/std/xref` + `ref/std/fn` < bibitem/note
indirect bibitem/note/@format
ref/title < bibitem/formattedref
indirect bibitem/formattedref/@format
see rules for text formatting elements bibitem/formattedref/ formatted text

Processing instructions

ISO/NISO STS a h Metanorma presentation XML h Metanorma AsciiDoc
`<?foreward ...` [example%unnumbered] ==== [source,xml] ---- <?foreward metadata-error?> ---- ==== > indirect, ignores
`<?doi ...` [example%unnumbered] ==== [source,xml] ---- <?doi https://doi.org/10.3403/30130607?> ---- ==== < > copy 'as is', for round-trip conversion
`<?QAout ...` + `<?QA ...` [example%unnumbered] ==== [source,xml] ---- <?QAout enhancements="En-2 En-3 En-4"?> <?QA valid="true" features="E-1 E-3 M-13 M-15 F-6 En-1" release-version="v2.1"?> ---- ==== < > copy 'as is', for round-trip conversion
`<?... Page_Break?>` + `<?... Page-Break?>` [example%unnumbered] ==== [source,xml] ---- <?Para Page_Break?> <?Table Page_Break?> <?Table Page-Break?> ---- ==== > <pagebreak /> a `<<<` + [NOTE] ==== *conversion gap* + for page break between table's rows: + https://github.com/metanorma/mn-samples-bsi/issues/47[https://github.com/metanorma/mn-samples-bsi/issues/47] ====
<?Para Page_Break?> < `<pagebreak />` NOTE: for pagebreak before table, see rule for `<pagebreak orientation="..."/>`
`<?isoimg-id ...` [example%unnumbered] ==== [source,xml] ---- <?isoimg-id 44001_ed1fig1.eps?> ---- ==== > `image/@src` + `.eps, .EPS extensions replacing by .png` [example%unnumbered] ==== [source,xml] ---- <image src="images/44001_ed1fig1.png"... ---- ==== image::...
1 ...
2 ...
3 ...
4 ...