metanorma-nist 1.0.3 → 1.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -105,9 +105,12 @@ span.nistvariable {
105
105
  }
106
106
 
107
107
  .document-type-band {
108
- @include docBand(
109
- $fontFamily: "'Source Sans Pro', sans-serif",
110
- $order: 2, $textLength: 150, $offset: 180px, $color: #7ba812);
108
+ @include docBand($fontFamily: "'Source Sans Pro', sans-serif",
109
+ $order: 2, $offset: 180px, $color: #7ba812);
110
+
111
+ .document-type {
112
+ top: 20px;
113
+ }
111
114
  }
112
115
 
113
116
  #governance-band p.document-type {
@@ -1,24 +1,8 @@
1
1
  <script>
2
- //TOC generation
3
- $('#toc').toc({
4
- 'selectors': toclevel(), //elements to use as headings
5
- 'container': 'body', //element to find all selectors in
6
- 'smoothScrolling': true, //enable or disable smooth scrolling on click
7
- 'prefix': 'toc', //prefix for anchor tags and class names
8
- 'onHighlight': function(el) {}, //called when a new section is highlighted
9
- 'highlightOnScroll': true, //add class to heading that is currently in focus
10
- 'highlightOffset': 100, //offset to trigger the next headline
11
- 'anchorName': function(i, heading, prefix) { //custom function for anchor name
12
- return prefix+i;
13
- },
14
- 'headerText': function(i, heading, $heading) { //custom function building the header-item text
15
- return $heading.text();
16
- },
17
- 'itemClass': function(i, heading, $heading, prefix) { // custom function for item class
18
- return $heading[0].tagName.toLowerCase();
19
- }
20
- });
21
-
2
+ $("#toc").on('click', 'li', function(e) {
3
+ $(this).parent().find('li.toc-active').removeClass('toc-active');
4
+ $(this).addClass('toc-active');
5
+ });
22
6
  </script>
23
7
 
24
8
  <script>
@@ -58,13 +42,16 @@ $('#toggle').on('click', function(){
58
42
  </script>
59
43
 
60
44
  <script>
61
- /**
62
- * AnchorJS - v4.1.0 - 2017-09-20
63
- * https://github.com/bryanbraun/anchorjs
64
- * Copyright (c) 2017 Bryan Braun; Licensed MIT
65
- */
66
- !function(A,e){"use strict";"function"==typeof define&&define.amd?define([],e):"object"==typeof module&&module.exports?module.exports=e():(A.AnchorJS=e(),A.anchors=new A.AnchorJS)}(this,function(){"use strict";return function(A){function e(A){A.icon=A.hasOwnProperty("icon")?A.icon:"",A.visible=A.hasOwnProperty("visible")?A.visible:"hover",A.placement=A.hasOwnProperty("placement")?A.placement:"right",A.ariaLabel=A.hasOwnProperty("ariaLabel")?A.ariaLabel:"Anchor",A.class=A.hasOwnProperty("class")?A.class:"",A.truncate=A.hasOwnProperty("truncate")?Math.floor(A.truncate):64}function t(A){var e;if("string"==typeof A||A instanceof String)e=[].slice.call(document.querySelectorAll(A));else{if(!(Array.isArray(A)||A instanceof NodeList))throw new Error("The selector provided to AnchorJS was invalid.");e=[].slice.call(A)}return e}function i(){if(null===document.head.querySelector("style.anchorjs")){var A,e=document.createElement("style");e.className="anchorjs",e.appendChild(document.createTextNode("")),void 0===(A=document.head.querySelector('[rel="stylesheet"], style'))?document.head.appendChild(e):document.head.insertBefore(e,A),e.sheet.insertRule(" .anchorjs-link { opacity: 0; text-decoration: none; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }",e.sheet.cssRules.length),e.sheet.insertRule(" *:hover > .anchorjs-link, .anchorjs-link:focus { opacity: 1; }",e.sheet.cssRules.length),e.sheet.insertRule(" [data-anchorjs-icon]::after { content: attr(data-anchorjs-icon); }",e.sheet.cssRules.length),e.sheet.insertRule(' @font-face { font-family: "anchorjs-icons"; src: url(data:n/a;base64,AAEAAAALAIAAAwAwT1MvMg8yG2cAAAE4AAAAYGNtYXDp3gC3AAABpAAAAExnYXNwAAAAEAAAA9wAAAAIZ2x5ZlQCcfwAAAH4AAABCGhlYWQHFvHyAAAAvAAAADZoaGVhBnACFwAAAPQAAAAkaG10eASAADEAAAGYAAAADGxvY2EACACEAAAB8AAAAAhtYXhwAAYAVwAAARgAAAAgbmFtZQGOH9cAAAMAAAAAunBvc3QAAwAAAAADvAAAACAAAQAAAAEAAHzE2p9fDzz1AAkEAAAAAADRecUWAAAAANQA6R8AAAAAAoACwAAAAAgAAgAAAAAAAAABAAADwP/AAAACgAAA/9MCrQABAAAAAAAAAAAAAAAAAAAAAwABAAAAAwBVAAIAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAMCQAGQAAUAAAKZAswAAACPApkCzAAAAesAMwEJAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAQAAg//0DwP/AAEADwABAAAAAAQAAAAAAAAAAAAAAIAAAAAAAAAIAAAACgAAxAAAAAwAAAAMAAAAcAAEAAwAAABwAAwABAAAAHAAEADAAAAAIAAgAAgAAACDpy//9//8AAAAg6cv//f///+EWNwADAAEAAAAAAAAAAAAAAAAACACEAAEAAAAAAAAAAAAAAAAxAAACAAQARAKAAsAAKwBUAAABIiYnJjQ3NzY2MzIWFxYUBwcGIicmNDc3NjQnJiYjIgYHBwYUFxYUBwYGIwciJicmNDc3NjIXFhQHBwYUFxYWMzI2Nzc2NCcmNDc2MhcWFAcHBgYjARQGDAUtLXoWOR8fORYtLTgKGwoKCjgaGg0gEhIgDXoaGgkJBQwHdR85Fi0tOAobCgoKOBoaDSASEiANehoaCQkKGwotLXoWOR8BMwUFLYEuehYXFxYugC44CQkKGwo4GkoaDQ0NDXoaShoKGwoFBe8XFi6ALjgJCQobCjgaShoNDQ0NehpKGgobCgoKLYEuehYXAAAADACWAAEAAAAAAAEACAAAAAEAAAAAAAIAAwAIAAEAAAAAAAMACAAAAAEAAAAAAAQACAAAAAEAAAAAAAUAAQALAAEAAAAAAAYACAAAAAMAAQQJAAEAEAAMAAMAAQQJAAIABgAcAAMAAQQJAAMAEAAMAAMAAQQJAAQAEAAMAAMAAQQJAAUAAgAiAAMAAQQJAAYAEAAMYW5jaG9yanM0MDBAAGEAbgBjAGgAbwByAGoAcwA0ADAAMABAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAH//wAP) format("truetype"); }',e.sheet.cssRules.length)}}this.options=A||{},this.elements=[],e(this.options),this.isTouchDevice=function(){return!!("ontouchstart"in window||window.DocumentTouch&&document instanceof DocumentTouch)},this.add=function(A){var n,o,s,a,r,c,h,l,u,d,f,p=[];if(e(this.options),"touch"===(f=this.options.visible)&&(f=this.isTouchDevice()?"always":"hover"),A||(A="h2, h3, h4, h5, h6"),0===(n=t(A)).length)return this;for(i(),o=document.querySelectorAll("[id]"),s=[].map.call(o,function(A){return A.id}),r=0;r<n.length;r++)if(this.hasAnchorJSLink(n[r]))p.push(r);else{if(n[r].hasAttribute("id"))a=n[r].getAttribute("id");else if(n[r].hasAttribute("data-anchor-id"))a=n[r].getAttribute("data-anchor-id");else{u=l=this.urlify(n[r].textContent),h=0;do{void 0!==c&&(u=l+"-"+h),c=s.indexOf(u),h+=1}while(-1!==c);c=void 0,s.push(u),n[r].setAttribute("id",u),a=u}a.replace(/-/g," "),(d=document.createElement("a")).className="anchorjs-link "+this.options.class,d.href="#"+a,d.setAttribute("aria-label",this.options.ariaLabel),d.setAttribute("data-anchorjs-icon",this.options.icon),"always"===f&&(d.style.opacity="1"),""===this.options.icon&&(d.style.font="1em/1 anchorjs-icons","left"===this.options.placement&&(d.style.lineHeight="inherit")),"left"===this.options.placement?(d.style.position="absolute",d.style.marginLeft="-1em",d.style.paddingRight="0.5em",n[r].insertBefore(d,n[r].firstChild)):(d.style.paddingLeft="0.375em",n[r].appendChild(d))}for(r=0;r<p.length;r++)n.splice(p[r]-r,1);return this.elements=this.elements.concat(n),this},this.remove=function(A){for(var e,i,n=t(A),o=0;o<n.length;o++)(i=n[o].querySelector(".anchorjs-link"))&&(-1!==(e=this.elements.indexOf(n[o]))&&this.elements.splice(e,1),n[o].removeChild(i));return this},this.removeAll=function(){this.remove(this.elements)},this.urlify=function(A){var t=/[& +$,:;=?@"#{}|^~[`%!'<>\]\.\/\(\)\*\\]/g;return this.options.truncate||e(this.options),A.trim().replace(/\'/gi,"").replace(t,"-").replace(/-{2,}/g,"-").substring(0,this.options.truncate).replace(/^-+|-+$/gm,"").toLowerCase()},this.hasAnchorJSLink=function(A){var e=A.firstChild&&(" "+A.firstChild.className+" ").indexOf(" anchorjs-link ")>-1,t=A.lastChild&&(" "+A.lastChild.className+" ").indexOf(" anchorjs-link ")>-1;return e||t||!1}}}); </script>
67
-
45
+ // @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt Expat
46
+ //
47
+ // AnchorJS - v4.2.2 - 2020-04-20
48
+ // https://www.bryanbraun.com/anchorjs/
49
+ // Copyright (c) 2020 Bryan Braun; Licensed MIT
50
+ //
51
+ // @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt Expat
52
+ !function(A,e){"use strict";"function"==typeof define&&define.amd?define([],e):"object"==typeof module&&module.exports?module.exports=e():(A.AnchorJS=e(),A.anchors=new A.AnchorJS)}(this,function(){"use strict";return function(A){function f(A){A.icon=A.hasOwnProperty("icon")?A.icon:"",A.visible=A.hasOwnProperty("visible")?A.visible:"hover",A.placement=A.hasOwnProperty("placement")?A.placement:"right",A.ariaLabel=A.hasOwnProperty("ariaLabel")?A.ariaLabel:"Anchor",A.class=A.hasOwnProperty("class")?A.class:"",A.base=A.hasOwnProperty("base")?A.base:"",A.truncate=A.hasOwnProperty("truncate")?Math.floor(A.truncate):64,A.titleText=A.hasOwnProperty("titleText")?A.titleText:""}function p(A){var e;if("string"==typeof A||A instanceof String)e=[].slice.call(document.querySelectorAll(A));else{if(!(Array.isArray(A)||A instanceof NodeList))throw new Error("The selector provided to AnchorJS was invalid.");e=[].slice.call(A)}return e}this.options=A||{},this.elements=[],f(this.options),this.isTouchDevice=function(){return!!("ontouchstart"in window||window.DocumentTouch&&document instanceof DocumentTouch)},this.add=function(A){var e,t,i,n,o,s,a,r,c,h,l,u,d=[];if(f(this.options),"touch"===(l=this.options.visible)&&(l=this.isTouchDevice()?"always":"hover"),0===(e=p(A=A||"h2, h3, h4, h5, h6")).length)return this;for(!function(){if(null!==document.head.querySelector("style.anchorjs"))return;var A,e=document.createElement("style");e.className="anchorjs",e.appendChild(document.createTextNode("")),void 0===(A=document.head.querySelector('[rel="stylesheet"],style'))?document.head.appendChild(e):document.head.insertBefore(e,A);e.sheet.insertRule(".anchorjs-link{opacity:0;text-decoration:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}",e.sheet.cssRules.length),e.sheet.insertRule(":hover>.anchorjs-link,.anchorjs-link:focus{opacity:1}",e.sheet.cssRules.length),e.sheet.insertRule("[data-anchorjs-icon]::after{content:attr(data-anchorjs-icon)}",e.sheet.cssRules.length),e.sheet.insertRule('@font-face{font-family:anchorjs-icons;src:url(data:n/a;base64,AAEAAAALAIAAAwAwT1MvMg8yG2cAAAE4AAAAYGNtYXDp3gC3AAABpAAAAExnYXNwAAAAEAAAA9wAAAAIZ2x5ZlQCcfwAAAH4AAABCGhlYWQHFvHyAAAAvAAAADZoaGVhBnACFwAAAPQAAAAkaG10eASAADEAAAGYAAAADGxvY2EACACEAAAB8AAAAAhtYXhwAAYAVwAAARgAAAAgbmFtZQGOH9cAAAMAAAAAunBvc3QAAwAAAAADvAAAACAAAQAAAAEAAHzE2p9fDzz1AAkEAAAAAADRecUWAAAAANQA6R8AAAAAAoACwAAAAAgAAgAAAAAAAAABAAADwP/AAAACgAAA/9MCrQABAAAAAAAAAAAAAAAAAAAAAwABAAAAAwBVAAIAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAMCQAGQAAUAAAKZAswAAACPApkCzAAAAesAMwEJAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAQAAg//0DwP/AAEADwABAAAAAAQAAAAAAAAAAAAAAIAAAAAAAAAIAAAACgAAxAAAAAwAAAAMAAAAcAAEAAwAAABwAAwABAAAAHAAEADAAAAAIAAgAAgAAACDpy//9//8AAAAg6cv//f///+EWNwADAAEAAAAAAAAAAAAAAAAACACEAAEAAAAAAAAAAAAAAAAxAAACAAQARAKAAsAAKwBUAAABIiYnJjQ3NzY2MzIWFxYUBwcGIicmNDc3NjQnJiYjIgYHBwYUFxYUBwYGIwciJicmNDc3NjIXFhQHBwYUFxYWMzI2Nzc2NCcmNDc2MhcWFAcHBgYjARQGDAUtLXoWOR8fORYtLTgKGwoKCjgaGg0gEhIgDXoaGgkJBQwHdR85Fi0tOAobCgoKOBoaDSASEiANehoaCQkKGwotLXoWOR8BMwUFLYEuehYXFxYugC44CQkKGwo4GkoaDQ0NDXoaShoKGwoFBe8XFi6ALjgJCQobCjgaShoNDQ0NehpKGgobCgoKLYEuehYXAAAADACWAAEAAAAAAAEACAAAAAEAAAAAAAIAAwAIAAEAAAAAAAMACAAAAAEAAAAAAAQACAAAAAEAAAAAAAUAAQALAAEAAAAAAAYACAAAAAMAAQQJAAEAEAAMAAMAAQQJAAIABgAcAAMAAQQJAAMAEAAMAAMAAQQJAAQAEAAMAAMAAQQJAAUAAgAiAAMAAQQJAAYAEAAMYW5jaG9yanM0MDBAAGEAbgBjAGgAbwByAGoAcwA0ADAAMABAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAH//wAP) format("truetype")}',e.sheet.cssRules.length)}(),t=document.querySelectorAll("[id]"),i=[].map.call(t,function(A){return A.id}),o=0;o<e.length;o++)if(this.hasAnchorJSLink(e[o]))d.push(o);else{if(e[o].hasAttribute("id"))n=e[o].getAttribute("id");else if(e[o].hasAttribute("data-anchor-id"))n=e[o].getAttribute("data-anchor-id");else{for(c=r=this.urlify(e[o].textContent),a=0;void 0!==s&&(c=r+"-"+a),a+=1,-1!==(s=i.indexOf(c)););s=void 0,i.push(c),e[o].setAttribute("id",c),n=c}(h=document.createElement("a")).className="anchorjs-link "+this.options.class,h.setAttribute("aria-label",this.options.ariaLabel),h.setAttribute("data-anchorjs-icon",this.options.icon),this.options.titleText&&(h.title=this.options.titleText),u=document.querySelector("base")?window.location.pathname+window.location.search:"",u=this.options.base||u,h.href=u+"#"+n,"always"===l&&(h.style.opacity="1"),""===this.options.icon&&(h.style.font="1em/1 anchorjs-icons","left"===this.options.placement&&(h.style.lineHeight="inherit")),"left"===this.options.placement?(h.style.position="absolute",h.style.marginLeft="-1em",h.style.paddingRight="0.5em",e[o].insertBefore(h,e[o].firstChild)):(h.style.paddingLeft="0.375em",e[o].appendChild(h))}for(o=0;o<d.length;o++)e.splice(d[o]-o,1);return this.elements=this.elements.concat(e),this},this.remove=function(A){for(var e,t,i=p(A),n=0;n<i.length;n++)(t=i[n].querySelector(".anchorjs-link"))&&(-1!==(e=this.elements.indexOf(i[n]))&&this.elements.splice(e,1),i[n].removeChild(t));return this},this.removeAll=function(){this.remove(this.elements)},this.urlify=function(A){return this.options.truncate||f(this.options),A.trim().replace(/\'/gi,"").replace(/[& +$,:;=?@"#{}|^~[`%!'<>\]\.\/\(\)\*\\\n\t\b\v]/g,"-").replace(/-{2,}/g,"-").substring(0,this.options.truncate).replace(/^-+|-+$/gm,"").toLowerCase()},this.hasAnchorJSLink=function(A){var e=A.firstChild&&-1<(" "+A.firstChild.className+" ").indexOf(" anchorjs-link "),t=A.lastChild&&-1<(" "+A.lastChild.className+" ").indexOf(" anchorjs-link ");return e||t||!1}}});
53
+ // @license-end
54
+ </script>
68
55
  <script>
69
56
  /*
70
57
  $(document).ready(function() {
@@ -845,7 +845,7 @@ style='width:477.0pt;margin-left:-5.25pt;border-collapse:collapse;border:none;ms
845
845
  padding:0cm 5.4pt 0cm 5.4pt'>
846
846
  <p class="Default"><span lang="EN-US" style='font-size:11.0pt;font-family:"Calibri",sans-serif;
847
847
  mso-ascii-theme-font:major-latin;mso-hansi-theme-font:major-latin;mso-bidi-font-family:
848
- "Times New Roman";color:black;mso-themecolor:text1'>{{ superseding_published_date }}<o:p></o:p></span></p>
848
+ "Times New Roman";color:black;mso-themecolor:text1'>{{ superseding_issued_date }}<o:p></o:p></span></p>
849
849
  </td>
850
850
  </tr>
851
851
  <tr style='mso-yfti-irow:13'>
@@ -37,10 +37,10 @@ module IsoDoc
37
37
  def author(ixml, _out)
38
38
  tc = ixml.at(ns("//bibdata/ext/editorialgroup/committee"))
39
39
  set(:tc, tc.text.upcase) if tc
40
- personal_authors(ixml)
41
40
  subdiv = ixml.at(ns("//bibdata/contributor[role/@type = 'publisher']/"\
42
41
  "organization/subdivision")) and
43
42
  set(:nist_subdiv, subdiv.text)
43
+ super
44
44
  end
45
45
 
46
46
  def version(ixml, _out)
@@ -86,7 +86,8 @@ module IsoDoc
86
86
  end
87
87
 
88
88
  def withdrawal_pending(ixml)
89
- d = ixml&.at(ns("//bibdata/date[@type = 'obsoleted']"))&.text or return
89
+ d = ixml&.at(ns("//bibdata/date[@type = 'obsoleted']"))&.text&.strip or return
90
+ d += "-01" if /^\d\d\d\d-\d\d$/.match(d)
90
91
  date = Date.parse(d) or return
91
92
  set(:withdrawal_pending, true) if date > Date.today
92
93
  end
@@ -109,21 +110,12 @@ module IsoDoc
109
110
  "title"))&.text and set(:subseries, subs)
110
111
  end
111
112
 
112
- def monthyr(isodate)
113
- return nil if isodate.nil?
114
- DateTime.parse(isodate).localize(:en).to_additional_s("yMMMM")
115
- end
116
-
117
113
  def mmddyyyy(isodate)
118
114
  return nil if isodate.nil?
115
+ isodate += "-01" if /^\d\d\d\d-\d\d$/.match(isodate)
119
116
  Date.parse(isodate).strftime("%m-%d-%Y")
120
117
  end
121
118
 
122
- def MMMddyyyy(isodate)
123
- return nil if isodate.nil?
124
- Date.parse(isodate).strftime("%B %d, %Y")
125
- end
126
-
127
119
  def keywords(ixml, _out)
128
120
  keywords = []
129
121
  ixml.xpath(ns("//bibdata/keyword")).each { |kw| keywords << kw.text }
@@ -149,7 +141,8 @@ module IsoDoc
149
141
 
150
142
  def relations1(ixml, type)
151
143
  ret = []
152
- ixml.xpath(ns("//bibdata/relation[@type = '#{type}']")).each do |x|
144
+ ixml.xpath(ns("//bibdata/relation[@type = '#{type}'][not(xmlns:description)] | "\
145
+ "//bibdata/relation[description = '#{type}']")).each do |x|
153
146
  id = x&.at(ns(".//docidentifier"))&.text and ret << id
154
147
  end
155
148
  ret
@@ -0,0 +1,3806 @@
1
+ <?xml version="1.0" encoding="UTF-8"?><xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:mathml="http://www.w3.org/1998/Math/MathML" xmlns:xalan="http://xml.apache.org/xalan" xmlns:fox="http://xmlgraphics.apache.org/fop/extensions" version="1.0">
2
+
3
+ <xsl:output version="1.0" method="xml" encoding="UTF-8" indent="no"/>
4
+
5
+
6
+
7
+
8
+
9
+ <xsl:variable name="pageWidth" select="'8.5in'"/>
10
+ <xsl:variable name="pageHeight" select="'11in'"/>
11
+
12
+ <xsl:variable name="title" select="/nist:nist-standard/nist:bibdata/nist:title[@language = 'en' and @type = 'main']"/>
13
+
14
+ <xsl:variable name="date">
15
+ <xsl:choose>
16
+ <xsl:when test="/nist:nist-standard/nist:bibdata/nist:date[@type='issued']">
17
+ <xsl:call-template name="formatDate">
18
+ <xsl:with-param name="date" select="/nist:nist-standard/nist:bibdata/nist:date[@type='issued']/nist:on"/>
19
+ </xsl:call-template>
20
+ </xsl:when>
21
+ <xsl:otherwise>
22
+ <xsl:call-template name="formatDate">
23
+ <xsl:with-param name="date" select="/nist:nist-standard/nist:bibdata/nist:date/nist:on"/>
24
+ </xsl:call-template>
25
+ </xsl:otherwise>
26
+ </xsl:choose>
27
+ </xsl:variable>
28
+ <xsl:variable name="color">rgb(36, 64, 97)</xsl:variable>
29
+ <xsl:variable name="seriestitle" select="/nist:nist-standard/nist:bibdata/nist:series[@type = 'main']/nist:title"/>
30
+ <!-- Example:
31
+ <item level="1" id="Foreword" display="true">Foreword</item>
32
+ <item id="term-script" display="false">3.2</item>
33
+ -->
34
+ <xsl:variable name="contents">
35
+ <contents>
36
+ <xsl:apply-templates select="/nist:nist-standard/nist:preface/nist:executivesummary" mode="contents"/>
37
+ <xsl:apply-templates select="/nist:nist-standard/nist:sections/*" mode="contents"/> <!-- /* Main sections -->
38
+ <xsl:apply-templates select="/nist:nist-standard/nist:annex" mode="contents"/>
39
+ <xsl:apply-templates select="/nist:nist-standard/nist:bibliography/nist:references" mode="contents"/>
40
+ </contents>
41
+ </xsl:variable>
42
+
43
+ <xsl:variable name="lang">
44
+ <xsl:call-template name="getLang"/>
45
+ </xsl:variable>
46
+
47
+ <xsl:template match="/">
48
+ <fo:root font-family="Times New Roman, STIX2Math" font-size="12pt" xml:lang="{$lang}">
49
+ <fo:layout-master-set>
50
+ <!-- Cover pages -->
51
+ <fo:simple-page-master master-name="cover-page" page-width="{$pageWidth}" page-height="{$pageHeight}">
52
+ <fo:region-body margin-top="1.75in" margin-bottom="1in" margin-left="1in" margin-right="1in"/>
53
+ <fo:region-before region-name="header-cover" extent="1.75in"/>
54
+ <fo:region-after extent="1in"/>
55
+ <fo:region-start extent="1in"/>
56
+ <fo:region-end extent="1in"/>
57
+ </fo:simple-page-master>
58
+
59
+ <!-- Preface page(s) -->
60
+ <fo:simple-page-master master-name="preface" page-width="{$pageWidth}" page-height="{$pageHeight}">
61
+ <fo:region-body margin-top="1.15in" margin-bottom="1in" margin-left="1in" margin-right="1in"/>
62
+ <fo:region-before region-name="header-preface" extent="1.15in"/>
63
+ <fo:region-after region-name="footer" extent="1in"/>
64
+ <fo:region-start region-name="left" extent="1in"/>
65
+ <fo:region-end region-name="right" extent="1in"/>
66
+ </fo:simple-page-master>
67
+
68
+ <!-- Document pages -->
69
+ <fo:simple-page-master master-name="document" page-width="{$pageWidth}" page-height="{$pageHeight}">
70
+ <fo:region-body margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="1in"/>
71
+ <fo:region-before region-name="header" extent="1in"/>
72
+ <fo:region-after region-name="footer" extent="1in"/>
73
+ <fo:region-start region-name="left" extent="1in"/>
74
+ <fo:region-end region-name="right" extent="1in"/>
75
+ </fo:simple-page-master>
76
+
77
+ </fo:layout-master-set>
78
+
79
+ <fo:declarations>
80
+ <pdf:catalog xmlns:pdf="http://xmlgraphics.apache.org/fop/extensions/pdf">
81
+ <pdf:dictionary type="normal" key="ViewerPreferences">
82
+ <pdf:boolean key="DisplayDocTitle">true</pdf:boolean>
83
+ </pdf:dictionary>
84
+ </pdf:catalog>
85
+ <x:xmpmeta xmlns:x="adobe:ns:meta/">
86
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
87
+ <rdf:Description xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:pdf="http://ns.adobe.com/pdf/1.3/" rdf:about="">
88
+ <!-- Dublin Core properties go here -->
89
+ <dc:title><xsl:value-of select="$title"/></dc:title>
90
+ <dc:creator>
91
+ <xsl:for-each select="/nist:nist-standard/nist:bibdata/nist:contributor[nist:role/@type = 'author']">
92
+ <xsl:value-of select="nist:person/nist:name/nist:completename"/>
93
+ <xsl:if test="position() != last()">; </xsl:if>
94
+ </xsl:for-each>
95
+ </dc:creator>
96
+ <dc:description>
97
+ <xsl:variable name="abstract">
98
+ <xsl:copy-of select="/nist:nist-standard/nist:preface/nist:abstract//text()"/>
99
+ </xsl:variable>
100
+ <xsl:value-of select="normalize-space($abstract)"/>
101
+ </dc:description>
102
+ <pdf:Keywords>
103
+ <xsl:for-each select="/nist:nist-standard/nist:bibdata//nist:keyword">
104
+ <xsl:sort data-type="text" order="ascending"/>
105
+ <xsl:apply-templates/>
106
+ <xsl:if test="position() != last()">, </xsl:if>
107
+ </xsl:for-each>
108
+ </pdf:Keywords>
109
+ </rdf:Description>
110
+ <rdf:Description xmlns:xmp="http://ns.adobe.com/xap/1.0/" rdf:about="">
111
+ <!-- XMP properties go here -->
112
+ <xmp:CreatorTool/>
113
+ </rdf:Description>
114
+ </rdf:RDF>
115
+ </x:xmpmeta>
116
+ </fo:declarations>
117
+
118
+ <!-- cover page -->
119
+ <fo:page-sequence master-reference="cover-page" force-page-count="no-force">
120
+ <!-- header -->
121
+ <fo:static-content flow-name="header-cover" font-family="Times New Roman" font-size="11pt" font-weight="bold" font-style="italic">
122
+ <fo:block-container color="white" background-color="{$color}" margin-left="-1mm" margin-right="-1mm" margin-top="1in" display-align="after" height="5mm">
123
+ <fo:block text-align-last="justify" margin-left="1mm" margin-right="1mm" padding-left="0.5mm" padding-top="0.5mm">
124
+ <fo:inline padding-left="0.5mm"> <!-- font-size="7.5pt" -->
125
+ <!-- <xsl:call-template name="recursiveSmallCaps">
126
+ <xsl:with-param name="text" select="$seriestitle"/>
127
+ </xsl:call-template> -->
128
+ <xsl:value-of select="$seriestitle"/>
129
+ </fo:inline>
130
+ <fo:inline keep-together.within-line="always">
131
+ <fo:leader leader-pattern="space"/>
132
+ <xsl:text>csrc.nist.gov  </xsl:text>
133
+ <!-- <xsl:call-template name="recursiveSmallCaps">
134
+ <xsl:with-param name="text" select="'csrc.nist.gov&#xA0;&#xA0;'"/>
135
+ </xsl:call-template> -->
136
+ </fo:inline>
137
+ </fo:block>
138
+ </fo:block-container>
139
+ </fo:static-content>
140
+
141
+ <fo:flow flow-name="xsl-region-body" color="rgb(36, 64, 97)">
142
+ <!-- logo -->
143
+ <fo:block-container absolute-position="fixed" left="25.4mm" top="229mm">
144
+ <fo:block>
145
+ <fo:external-graphic src="{concat('data:image/png;base64,', normalize-space($Image-NIST-Logo))}" width="57mm" content-height="25.4mm" content-width="scale-to-fit" scaling="uniform" fox:alt-text="Image"/>
146
+ </fo:block>
147
+ </fo:block-container>
148
+
149
+ <xsl:if test="contains(/nist:nist-standard/nist:bibdata/nist:status/nist:stage, 'draft')">
150
+ <!-- <fo:block-container absolute-position="fixed" left="20mm" top="170mm" fox:transform="rotate(-45)">
151
+ <fo:block font-family="Calibri" font-size="180pt" color="rgb(223, 223, 223)">DRAFT</fo:block>
152
+ </fo:block-container> -->
153
+ <fo:block-container absolute-position="fixed" left="0mm" top="0mm">
154
+ <fo:block line-height="0">
155
+ <fo:instream-foreign-object fox:alt-text="DRAFT">
156
+ <svg:svg xmlns:svg="http://www.w3.org/2000/svg" width="200mm" height="250mm">
157
+ <svg:g transform="rotate(-45) scale(0.6, 1)">
158
+ <svg:text x="-175mm" y="205mm" style="font-family:Calibri;font-size:260pt;font-weight:normal;fill:rgb(223, 223, 223);">
159
+ DRAFT
160
+ </svg:text>
161
+ </svg:g>
162
+ </svg:svg>
163
+ </fo:instream-foreign-object>
164
+ </fo:block>
165
+ </fo:block-container>
166
+ </xsl:if>
167
+
168
+
169
+ <fo:block>
170
+ <fo:block font-family="Arial" font-size="24pt" font-weight="bold" margin-top="12pt" margin-bottom="18pt" letter-spacing="-0.5pt" margin-right="-2mm">
171
+ <xsl:value-of select="$title"/>
172
+ </fo:block>
173
+ <fo:block margin-bottom="12pt"> </fo:block>
174
+ <fo:block margin-bottom="20pt"> </fo:block>
175
+
176
+ <!-- Authors list -->
177
+ <fo:block line-height="116%">
178
+ <xsl:for-each select="/nist:nist-standard/nist:bibdata/nist:contributor[nist:role/@type = 'author']">
179
+ <xsl:value-of select="nist:person/nist:name/nist:completename"/>
180
+ <xsl:variable name="org-name" select="nist:person/nist:affiliation/nist:organization/nist:name"/>
181
+ <xsl:variable name="org-address" select="nist:person/nist:affiliation/nist:organization/nist:address/nist:formattedAddress"/>
182
+ <xsl:if test="concat(following-sibling::nist:contributor[nist:role/@type = 'author'][1]/nist:person/nist:affiliation/nist:organization/nist:name, following-sibling::nist:contributor[nist:role/@type = 'author'][1]/nist:person/nist:affiliation/nist:organization/nist:address/nist:formattedAddress) != concat($org-name, $org-address)">
183
+
184
+ <xsl:for-each select="xalan:tokenize($org-name, ',')">
185
+ <fo:block>
186
+ <fo:inline font-style="italic">
187
+ <xsl:value-of select="."/>
188
+ <!-- <xsl:if test="normalize-space($org-address) != ''">
189
+ <fo:inline>, <xsl:value-of select="$org-address"/></fo:inline>
190
+ </xsl:if> -->
191
+ </fo:inline>
192
+ </fo:block>
193
+ </xsl:for-each>
194
+
195
+ <xsl:if test="normalize-space($org-address) != ''">
196
+ <fo:block>
197
+ <fo:inline font-style="italic">
198
+ <xsl:value-of select="$org-address"/>
199
+ </fo:inline>
200
+ </fo:block>
201
+ </xsl:if>
202
+ </xsl:if>
203
+ <xsl:value-of select="$linebreak"/>
204
+ </xsl:for-each>
205
+ </fo:block>
206
+ <fo:block margin-bottom="22pt"> </fo:block>
207
+ <fo:block margin-bottom="12pt"> <!-- font-size="14pt" -->
208
+ <xsl:value-of select="$date"/>
209
+ </fo:block>
210
+ <fo:block margin-bottom="12pt"> </fo:block>
211
+
212
+ <!-- <xsl:if test="/nist:nist-standard/nist:bibdata/nist:uri[@type = 'doi']">
213
+ <fo:block>
214
+ <xsl:text>This publication is available free of charge from:</xsl:text>
215
+ <xsl:value-of select="$linebreak"/>
216
+ <xsl:value-of select="/nist:nist-standard/nist:bibdata/nist:uri[@type = 'doi']"/>
217
+ </fo:block>
218
+ </xsl:if> -->
219
+
220
+ </fo:block>
221
+ </fo:flow>
222
+ </fo:page-sequence>
223
+
224
+
225
+ <fo:page-sequence master-reference="preface" initial-page-number="2" format="i" force-page-count="no-force" line-height="116%">
226
+
227
+ <fo:static-content flow-name="xsl-footnote-separator">
228
+ <fo:block margin-bottom="4mm">
229
+ <fo:leader leader-pattern="rule" leader-length="30%"/>
230
+ </fo:block>
231
+ </fo:static-content>
232
+ <xsl:call-template name="insertFooter"/>
233
+
234
+ <fo:flow flow-name="xsl-region-body">
235
+ <fo:block margin-top="18pt">
236
+
237
+ <!-- Abstract -->
238
+ <xsl:if test="/nist:nist-standard/nist:preface/nist:abstract">
239
+ <fo:block font-family="Arial" text-align="center" font-weight="bold" color="{$color}" margin-bottom="12pt">Abstract</fo:block>
240
+ <xsl:apply-templates select="/nist:nist-standard/nist:preface/nist:abstract"/>
241
+ </xsl:if>
242
+
243
+ <!-- Keywords -->
244
+ <xsl:if test="/nist:nist-standard/nist:bibdata/nist:keyword">
245
+ <fo:block font-family="Arial" text-align="center" font-weight="bold" color="{$color}" margin-bottom="12pt">
246
+ <xsl:text>Keywords</xsl:text>
247
+ </fo:block>
248
+ <fo:block margin-bottom="12pt" text-align="justify">
249
+ <xsl:for-each select="/nist:nist-standard/nist:bibdata//nist:keyword">
250
+ <xsl:sort data-type="text" order="ascending"/>
251
+ <xsl:apply-templates/>
252
+ <xsl:choose>
253
+ <xsl:when test="position() != last()">; </xsl:when>
254
+ <xsl:otherwise/>
255
+ </xsl:choose>
256
+ </xsl:for-each>
257
+ </fo:block>
258
+ </xsl:if>
259
+
260
+ <xsl:if test="/nist:nist-standard/nist:preface/nist:acknowledgements">
261
+ <fo:block font-family="Arial" text-align="center" font-weight="bold" color="{$color}" margin-top="18pt" margin-bottom="12pt">Acknowledgements</fo:block>
262
+ <xsl:apply-templates select="/nist:nist-standard/nist:preface/nist:acknowledgements"/>
263
+ </xsl:if>
264
+
265
+
266
+ <!-- Disclaimer -->
267
+ <!-- Additional Information -->
268
+ <!-- Comments on this publication may be submitted to -->
269
+ <xsl:if test="/nist:nist-standard/nist:boilerplate/nist:legal-statement">
270
+ <xsl:apply-templates select="/nist:nist-standard/nist:boilerplate/nist:legal-statement"/>
271
+ </xsl:if>
272
+
273
+ <fo:block font-family="Arial" text-align="center" font-weight="bold" color="{$color}" margin-bottom="12pt">Feedback</fo:block>
274
+ <xsl:text>Feedback on this publication is welcome, and can be sent to: code-signing@nist.gov.</xsl:text>
275
+
276
+ <xsl:apply-templates select="/nist:nist-standard/nist:preface/nist:clause"/>
277
+
278
+ <fo:block break-after="page"/>
279
+
280
+ <!-- <xsl:apply-templates select="/nist:nist-standard/nist:preface/nist:foreword"/> -->
281
+
282
+ <!-- Executive summary -->
283
+ <!-- <xsl:apply-templates select="/nist:nist-standard/nist:preface/nist:executivesummary"/> -->
284
+
285
+ <xsl:text disable-output-escaping="yes">&lt;!--</xsl:text>
286
+ DEBUG
287
+ contents=<xsl:copy-of select="xalan:nodeset($contents)"/>
288
+ <xsl:text disable-output-escaping="yes">--&gt;</xsl:text>
289
+
290
+ <!-- CONTENTS -->
291
+ <!-- <fo:block break-after="page"/>
292
+ <fo:block-container font-family="Arial">
293
+ <fo:block font-family="Arial Black" font-size="12pt" margin-top="4pt" margin-bottom="12pt" text-align="center">Table of Contents</fo:block>
294
+ <xsl:for-each select="xalan:nodeset($contents)//item[not(@type = 'table') and not(@type = 'figure')]">
295
+ <xsl:if test="@display = 'true'">
296
+ <fo:block color="{$color}">
297
+ <xsl:attribute name="margin-top">6pt</xsl:attribute>
298
+ <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
299
+ <xsl:if test="@level = 1">
300
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
301
+ </xsl:if>
302
+ <fo:block text-align-last="justify" margin-left="12mm" text-indent="-12mm">
303
+ <xsl:if test="@level &gt;= 2 and @section != ''">
304
+ <xsl:attribute name="margin-left">21.5mm</xsl:attribute>
305
+ </xsl:if>
306
+ <xsl:if test="@type = 'annex'">
307
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
308
+ </xsl:if>
309
+ <fo:basic-link internal-destination="{@id}" fox:alt-text="{@section}">
310
+ <xsl:if test="@section != '' and not(@display-section = 'false')">
311
+ <fo:inline>
312
+ <xsl:if test="not(@type = 'annex')">
313
+ <xsl:attribute name="padding-right">
314
+ <xsl:choose>
315
+ <xsl:when test="@level = 1">6mm</xsl:when>
316
+ <xsl:otherwise>5mm</xsl:otherwise>
317
+ </xsl:choose>
318
+ </xsl:attribute>
319
+ </xsl:if>
320
+ <xsl:value-of select="@section"/>
321
+ <xsl:choose>
322
+ <xsl:when test="@type = 'annex'">
323
+ <xsl:text> — </xsl:text>
324
+ </xsl:when>
325
+ <xsl:otherwise>
326
+ <xsl:text>. </xsl:text>
327
+ </xsl:otherwise>
328
+ </xsl:choose>
329
+ </fo:inline>
330
+ </xsl:if>
331
+ <xsl:value-of select="text()"/><xsl:text> </xsl:text>
332
+ <fo:inline keep-together.within-line="always">
333
+ <fo:leader leader-pattern="dots"/>
334
+ <fo:page-number-citation ref-id="{@id}"/>
335
+ </fo:inline>
336
+ </fo:basic-link>
337
+ </fo:block>
338
+ </fo:block>
339
+ </xsl:if>
340
+ </xsl:for-each>
341
+
342
+ <xsl:if test="xalan:nodeset($contents)//item[@type = 'figure']">
343
+ <fo:block font-size="12pt">&#xA0;</fo:block>
344
+ <fo:block font-size="12pt">&#xA0;</fo:block>
345
+ <fo:block font-size="12pt" font-weight="bold" text-align="center" margin-bottom="12pt">List of Figures</fo:block>
346
+ <xsl:for-each select="xalan:nodeset($contents)//item[@type = 'figure']">
347
+ <fo:block text-align-last="justify" margin-top="6pt" margin-bottom="6pt">
348
+ <fo:basic-link internal-destination="{@id}" fox:alt-text="{@section}">
349
+ <xsl:value-of select="@section"/>
350
+ <xsl:if test="text() != ''">
351
+ <xsl:text> — </xsl:text>
352
+ <xsl:value-of select="text()"/>
353
+ </xsl:if>
354
+ <fo:inline keep-together.within-line="always">
355
+ <fo:leader leader-pattern="dots"/>
356
+ <fo:page-number-citation ref-id="{@id}"/>
357
+ </fo:inline>
358
+ </fo:basic-link>
359
+ </fo:block>
360
+ </xsl:for-each>
361
+ </xsl:if>
362
+
363
+ <xsl:if test="xalan:nodeset($contents)//item[@type = 'table']">
364
+ <fo:block font-size="12pt">&#xA0;</fo:block>
365
+ <fo:block font-size="12pt">&#xA0;</fo:block>
366
+ <fo:block font-size="12pt" font-weight="bold" text-align="center" margin-bottom="12pt">List of Tables</fo:block>
367
+ <xsl:for-each select="xalan:nodeset($contents)//item[@type = 'table']">
368
+ <fo:block text-align-last="justify" margin-top="6pt" margin-bottom="6pt">
369
+ <fo:basic-link internal-destination="{@id}" fox:alt-text="{@section}">
370
+ <xsl:value-of select="@section"/>
371
+ <xsl:if test="text() != ''">
372
+ <xsl:text> — </xsl:text>
373
+ <xsl:value-of select="text()"/>
374
+ </xsl:if>
375
+ <fo:inline keep-together.within-line="always">
376
+ <fo:leader leader-pattern="dots"/>
377
+ <fo:page-number-citation ref-id="{@id}"/>
378
+ </fo:inline>
379
+ </fo:basic-link>
380
+ </fo:block>
381
+ </xsl:for-each>
382
+ </xsl:if>
383
+ </fo:block-container> -->
384
+ </fo:block>
385
+ </fo:flow>
386
+ </fo:page-sequence>
387
+
388
+ <!-- BODY -->
389
+ <fo:page-sequence master-reference="document" initial-page-number="1" force-page-count="no-force" line-height="116%">
390
+ <fo:static-content flow-name="xsl-footnote-separator">
391
+ <fo:block margin-bottom="4mm">
392
+ <fo:leader leader-pattern="rule" leader-length="30%"/>
393
+ </fo:block>
394
+ </fo:static-content>
395
+
396
+ <xsl:call-template name="insertHeaderFooter"/>
397
+
398
+ <fo:flow flow-name="xsl-region-body">
399
+ <!-- Clause(s) -->
400
+ <fo:block>
401
+ <xsl:apply-templates select="/nist:nist-standard/nist:sections/*"/>
402
+
403
+ <xsl:apply-templates select="/nist:nist-standard/nist:annex"/>
404
+
405
+ <!-- Bibliography -->
406
+ <xsl:apply-templates select="/nist:nist-standard/nist:bibliography/nist:references"/>
407
+
408
+ </fo:block>
409
+
410
+ </fo:flow>
411
+ </fo:page-sequence>
412
+
413
+
414
+ </fo:root>
415
+ </xsl:template>
416
+
417
+ <!-- for pass the paremeter 'sectionNum' over templates, like 'tunnel' parameter in XSLT 2.0 -->
418
+ <xsl:template match="node()">
419
+ <xsl:param name="sectionNum"/>
420
+ <xsl:param name="sectionNumSkew"/>
421
+ <xsl:apply-templates>
422
+ <xsl:with-param name="sectionNum" select="$sectionNum"/>
423
+ <xsl:with-param name="sectionNumSkew" select="$sectionNumSkew"/>
424
+ </xsl:apply-templates>
425
+ </xsl:template>
426
+
427
+ <!-- ============================= -->
428
+ <!-- CONTENTS -->
429
+ <!-- ============================= -->
430
+ <xsl:template match="node()" mode="contents">
431
+ <xsl:param name="sectionNum"/>
432
+ <xsl:param name="sectionNumSkew"/>
433
+ <xsl:apply-templates mode="contents">
434
+ <xsl:with-param name="sectionNum" select="$sectionNum"/>
435
+ <xsl:with-param name="sectionNumSkew" select="$sectionNumSkew"/>
436
+ </xsl:apply-templates>
437
+ </xsl:template>
438
+
439
+ <!-- calculate main section number (1,2,3) and pass it deep into templates -->
440
+ <!-- it's necessary, because there is itu:bibliography/itu:references from other section, but numbering should be sequental -->
441
+ <xsl:template match="nist:nist-standard/nist:sections/*" mode="contents">
442
+ <xsl:param name="sectionNum"/>
443
+ <xsl:param name="sectionNumSkew" select="0"/>
444
+ <xsl:variable name="sectionNum_">
445
+ <xsl:choose>
446
+ <xsl:when test="$sectionNum"><xsl:value-of select="$sectionNum"/></xsl:when>
447
+ <xsl:when test="$sectionNumSkew != 0">
448
+ <xsl:variable name="number"><xsl:number count="*"/></xsl:variable>
449
+ <xsl:value-of select="$number + $sectionNumSkew"/>
450
+ </xsl:when>
451
+ <xsl:otherwise>
452
+ <xsl:number count="*"/>
453
+ </xsl:otherwise>
454
+ </xsl:choose>
455
+ </xsl:variable>
456
+ <xsl:apply-templates mode="contents">
457
+ <xsl:with-param name="sectionNum" select="$sectionNum_"/>
458
+ </xsl:apply-templates>
459
+ </xsl:template>
460
+
461
+ <!-- Any node with title element - clause, definition, annex,... -->
462
+ <xsl:template match="nist:title | nist:preferred" mode="contents">
463
+ <xsl:param name="sectionNum"/>
464
+
465
+ <xsl:variable name="id">
466
+ <xsl:choose>
467
+ <xsl:when test="../@id">
468
+ <xsl:value-of select="../@id"/>
469
+ </xsl:when>
470
+ <xsl:otherwise>
471
+ <xsl:value-of select="text()"/>
472
+ </xsl:otherwise>
473
+ </xsl:choose>
474
+ </xsl:variable>
475
+
476
+ <xsl:variable name="level">
477
+ <xsl:call-template name="getLevel"/>
478
+ </xsl:variable>
479
+
480
+ <xsl:variable name="section">
481
+ <xsl:call-template name="getSection">
482
+ <xsl:with-param name="sectionNum" select="$sectionNum"/>
483
+ </xsl:call-template>
484
+ </xsl:variable>
485
+
486
+ <xsl:variable name="display">
487
+ <xsl:choose>
488
+ <!-- <xsl:when test="ancestor::itu:annex">true</xsl:when> -->
489
+ <xsl:when test="ancestor::nist:annex and $level &gt;= 2">false</xsl:when>
490
+ <xsl:when test="$level &lt;= 2">true</xsl:when>
491
+ <xsl:otherwise>false</xsl:otherwise>
492
+ </xsl:choose>
493
+ </xsl:variable>
494
+
495
+ <xsl:variable name="type">
496
+ <xsl:value-of select="local-name(..)"/>
497
+ </xsl:variable>
498
+
499
+ <item id="{$id}" level="{$level}" section="{$section}" display="{$display}" type="{$type}">
500
+ <xsl:value-of select="."/>
501
+ </item>
502
+
503
+ <xsl:apply-templates mode="contents">
504
+ <xsl:with-param name="sectionNum" select="$sectionNum"/>
505
+ </xsl:apply-templates>
506
+ </xsl:template>
507
+
508
+ <xsl:template match="nist:bibitem" mode="contents"/>
509
+
510
+ <xsl:template match="nist:figure" mode="contents">
511
+ <xsl:param name="sectionNum"/>
512
+ <item level="" id="{@id}" type="figure">
513
+ <xsl:attribute name="section">
514
+ <xsl:text>Figure </xsl:text>
515
+ <xsl:choose>
516
+ <xsl:when test="ancestor::nist:annex">
517
+ <xsl:choose>
518
+ <xsl:when test="count(//nist:annex) = 1">
519
+ <xsl:value-of select="/nist:nist-standard/nist:bibdata/nist:ext/nist:structuredidentifier/nist:annexid"/><xsl:number format="-1" level="any" count="nist:annex//nist:figure"/>
520
+ </xsl:when>
521
+ <xsl:otherwise>
522
+ <xsl:number format="A.1-1" level="multiple" count="nist:annex | nist:figure"/>
523
+ </xsl:otherwise>
524
+ </xsl:choose>
525
+ </xsl:when>
526
+ <xsl:when test="ancestor::nist:figure">
527
+ <xsl:for-each select="parent::*[1]">
528
+ <xsl:number format="1" level="any" count="nist:figure[not(parent::nist:figure)]"/>
529
+ </xsl:for-each>
530
+ <xsl:number format="-a" count="nist:figure"/>
531
+ </xsl:when>
532
+ <xsl:otherwise>
533
+ <xsl:number format="1" level="any" count="nist:figure[not(parent::nist:figure)]"/>
534
+ <!-- <xsl:number format="1.1-1" level="multiple" count="nist:annex | nist:figure"/> -->
535
+ </xsl:otherwise>
536
+ </xsl:choose>
537
+ </xsl:attribute>
538
+ <xsl:value-of select="nist:name"/>
539
+ </item>
540
+ </xsl:template>
541
+
542
+ <xsl:template match="nist:table" mode="contents">
543
+ <xsl:param name="sectionNum"/>
544
+ <xsl:variable name="annex-id" select="ancestor::nist:annex/@id"/>
545
+ <item level="" id="{@id}" display="false" type="table">
546
+ <xsl:attribute name="section">
547
+ <xsl:text>Table </xsl:text>
548
+ <xsl:choose>
549
+ <xsl:when test="ancestor::*[local-name()='executivesummary']"> <!-- NIST -->
550
+ <xsl:text>ES-</xsl:text><xsl:number format="1" count="*[local-name()='executivesummary']//*[local-name()='table']"/>
551
+ </xsl:when>
552
+ <xsl:when test="ancestor::*[local-name()='annex']">
553
+ <xsl:number format="A-" count="nist:annex"/>
554
+ <xsl:number format="1" level="any" count="nist:table[ancestor::nist:annex[@id = $annex-id]]"/>
555
+ </xsl:when>
556
+ <xsl:otherwise>
557
+ <!-- <xsl:number format="1"/> -->
558
+ <xsl:number format="1" level="any" count="*[local-name()='sections']//*[local-name()='table']"/>
559
+ </xsl:otherwise>
560
+ </xsl:choose>
561
+ </xsl:attribute>
562
+ <xsl:value-of select="nist:name/text()"/>
563
+ </item>
564
+ </xsl:template>
565
+
566
+ <xsl:template match="nist:formula" mode="contents">
567
+ <xsl:param name="sectionNum"/>
568
+ <item level="" id="{@id}" display="false">
569
+ <xsl:attribute name="section">
570
+ <xsl:text>Formula (</xsl:text><xsl:number format="A.1" level="multiple" count="nist:annex | nist:formula"/><xsl:text>)</xsl:text>
571
+ </xsl:attribute>
572
+ </item>
573
+ </xsl:template>
574
+
575
+ <xsl:template match="nist:example" mode="contents">
576
+ <xsl:param name="sectionNum"/>
577
+ <xsl:variable name="level">
578
+ <xsl:call-template name="getLevel"/>
579
+ </xsl:variable>
580
+ <xsl:variable name="section">
581
+ <xsl:call-template name="getSection">
582
+ <xsl:with-param name="sectionNum" select="$sectionNum"/>
583
+ </xsl:call-template>
584
+ </xsl:variable>
585
+
586
+ <xsl:variable name="parent-element" select="local-name(..)"/>
587
+ <item level="" id="{@id}" display="false" type="Example" section="{$section}">
588
+ <xsl:attribute name="parent">
589
+ <xsl:choose>
590
+ <xsl:when test="$parent-element = 'clause'">Clause</xsl:when>
591
+ <xsl:otherwise/>
592
+ </xsl:choose>
593
+ </xsl:attribute>
594
+ </item>
595
+ <xsl:apply-templates mode="contents">
596
+ <xsl:with-param name="sectionNum" select="$sectionNum"/>
597
+ </xsl:apply-templates>
598
+ </xsl:template>
599
+
600
+ <xsl:template match="nist:terms" mode="contents">
601
+ <item level="" id="{@id}" display="false" type="Terms">
602
+ <xsl:if test="ancestor::nist:annex">
603
+ <xsl:attribute name="section">
604
+ <xsl:text>Appendix </xsl:text><xsl:number format="A" count="nist:annex"/>
605
+ </xsl:attribute>
606
+ </xsl:if>
607
+ </item>
608
+ </xsl:template>
609
+
610
+ <xsl:template match="nist:references" mode="contents">
611
+ <item level="" id="{@id}" display="false" type="References">
612
+ <xsl:choose>
613
+ <xsl:when test="ancestor::nist:annex">
614
+ <xsl:attribute name="section">
615
+ <xsl:text>Appendix </xsl:text><xsl:number format="A" count="nist:annex"/>
616
+ </xsl:attribute>
617
+ </xsl:when>
618
+ <xsl:otherwise>
619
+ <xsl:attribute name="level">1</xsl:attribute>
620
+ <xsl:attribute name="display">true</xsl:attribute>
621
+ <xsl:text>References</xsl:text>
622
+ </xsl:otherwise>
623
+ </xsl:choose>
624
+ </item>
625
+ </xsl:template>
626
+
627
+ <!-- ============================= -->
628
+ <!-- ============================= -->
629
+
630
+
631
+
632
+ <!-- ============================= -->
633
+ <!-- Authority -->
634
+ <!-- ============================= -->
635
+ <xsl:template match="/nist:nist-standard/nist:boilerplate/nist:feedback-statement/nist:clause">
636
+ <fo:block font-family="Arial" font-size="12pt" space-before="6pt">
637
+ <xsl:apply-templates>
638
+ <xsl:with-param name="margin">12pt</xsl:with-param>
639
+ </xsl:apply-templates>
640
+ </fo:block>
641
+ </xsl:template>
642
+ <!-- ============================= -->
643
+ <!-- ============================= -->
644
+
645
+
646
+
647
+ <!-- ============================= -->
648
+ <!-- PARAGRAPHS -->
649
+ <!-- ============================= -->
650
+ <xsl:template match="nist:p">
651
+ <xsl:param name="margin"/>
652
+ <fo:block>
653
+ <xsl:attribute name="margin-bottom">
654
+ <xsl:choose>
655
+ <xsl:when test="(local-name(..) = 'td' or local-name(..) = 'th') and ancestor::nist:annex">0</xsl:when>
656
+ <xsl:when test="$margin != ''"><xsl:value-of select="$margin"/></xsl:when>
657
+ <xsl:otherwise>12pt</xsl:otherwise>
658
+ </xsl:choose>
659
+ </xsl:attribute>
660
+ <xsl:attribute name="text-align">
661
+ <xsl:choose>
662
+ <xsl:when test="@align"><xsl:value-of select="@align"/></xsl:when>
663
+ <xsl:when test="ancestor::nist:preface or ancestor::nist:boilerplate">justify</xsl:when>
664
+ <xsl:otherwise>left</xsl:otherwise>
665
+ </xsl:choose>
666
+ </xsl:attribute>
667
+ <xsl:apply-templates/>
668
+ </fo:block>
669
+ </xsl:template>
670
+
671
+ <xsl:template match="nist:note/nist:p" name="note">
672
+ <fo:block font-size="11pt" space-before="4pt">
673
+ <xsl:text>NOTE </xsl:text>
674
+ <xsl:if test="../following-sibling::nist:note or ../preceding-sibling::nist:note">
675
+ <xsl:number count="nist:note"/><xsl:text> </xsl:text>
676
+ </xsl:if>
677
+ <xsl:text>– </xsl:text>
678
+ <xsl:apply-templates/>
679
+ </fo:block>
680
+ </xsl:template>
681
+
682
+ <xsl:template match="nist:recommendation">
683
+ <fo:block margin-left="20mm">
684
+ <fo:block font-weight="bold">
685
+ <xsl:text>Recommendation </xsl:text>
686
+ <xsl:choose>
687
+ <xsl:when test="ancestor::nist:sections">
688
+ <xsl:number level="any" count="nist:sections//nist:recommendation"/>
689
+ </xsl:when>
690
+ <xsl:when test="ancestor::*[local-name()='annex']">
691
+ <xsl:variable name="annex-id" select="ancestor::*[local-name()='annex']/@id"/>
692
+ <xsl:number format="A-" count="nist:annex"/>
693
+ <xsl:number format="1" level="any" count="nist:recommendation[ancestor::nist:annex[@id = $annex-id]]"/>
694
+ <!-- <xsl:number format="A-1" level="multiple" count="nist:annex | nist:recommendation"/> -->
695
+ </xsl:when>
696
+ </xsl:choose>
697
+ <xsl:text>:</xsl:text>
698
+ </fo:block>
699
+ <xsl:apply-templates/>
700
+ </fo:block>
701
+ </xsl:template>
702
+
703
+ <xsl:template match="nist:admonition">
704
+ <fo:block-container border="1pt solid black" margin-left="-2mm" margin-right="-2mm" padding-top="6mm" padding-bottom="7mm" background-color="rgb(222,222,222)">
705
+ <fo:block margin-left="8mm" margin-right="8mm">
706
+ <fo:block font-size="11pt" font-weight="bold" text-align="center" margin-bottom="6pt" keep-with-next="always">
707
+ <xsl:choose>
708
+ <xsl:when test="@type='important'">IMPORTANT</xsl:when>
709
+ <xsl:when test="@type='tip'">
710
+ <xsl:apply-templates select="nist:name" mode="process"/>
711
+ </xsl:when>
712
+ <xsl:otherwise>
713
+ <xsl:apply-templates select="nist:name" mode="process"/>
714
+ </xsl:otherwise>
715
+ </xsl:choose>
716
+ </fo:block>
717
+ <xsl:apply-templates/>
718
+ </fo:block>
719
+ </fo:block-container>
720
+ <fo:block margin-bottom="6pt"> </fo:block>
721
+ </xsl:template>
722
+
723
+ <xsl:template match="nist:admonition/nist:name"/>
724
+ <xsl:template match="nist:admonition/nist:name" mode="process">
725
+ <xsl:apply-templates/>
726
+ </xsl:template>
727
+
728
+ <xsl:template match="nist:admonition/nist:p">
729
+ <fo:block><xsl:apply-templates/></fo:block>
730
+ </xsl:template>
731
+
732
+ <!-- ============================= -->
733
+ <!-- ============================= -->
734
+
735
+
736
+ <!-- ============================= -->
737
+ <!-- Bibliography -->
738
+ <!-- ============================= -->
739
+
740
+
741
+ <xsl:template match="nist:references">
742
+ <fo:block break-after="page"/>
743
+ <fo:block>
744
+ <xsl:if test="not(nist:title)">
745
+ <xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute>
746
+ </xsl:if>
747
+ <xsl:apply-templates/>
748
+ </fo:block>
749
+ </xsl:template>
750
+
751
+
752
+ <!-- Example: [ITU-T A.23] ITU-T A.23, Recommendation ITU-T A.23, Annex A (2014), Guide for ITU-T and ISO/IEC JTC 1 cooperation. -->
753
+ <xsl:template match="nist:bibitem">
754
+
755
+ <fo:list-block margin-bottom="12pt" provisional-distance-between-starts="12mm">
756
+ <fo:list-item>
757
+ <fo:list-item-label end-indent="label-end()">
758
+ <fo:block>
759
+ <fo:inline id="{@id}">
760
+ <!-- <xsl:number format="[1]"/> -->
761
+ <xsl:value-of select="nist:docidentifier"/>
762
+ </fo:inline>
763
+ </fo:block>
764
+ </fo:list-item-label>
765
+ <fo:list-item-body start-indent="body-start()">
766
+ <fo:block>
767
+ <xsl:choose>
768
+ <xsl:when test="nist:title[@type = 'main' and @language = 'en']">
769
+ <xsl:apply-templates select="nist:title[@type = 'main' and @language = 'en']"/>
770
+ </xsl:when>
771
+ <xsl:otherwise>
772
+ <xsl:apply-templates select="nist:title"/>
773
+ </xsl:otherwise>
774
+ </xsl:choose>
775
+ <xsl:apply-templates select="nist:formattedref"/>
776
+ </fo:block>
777
+ </fo:list-item-body>
778
+ </fo:list-item>
779
+ </fo:list-block>
780
+ </xsl:template>
781
+
782
+ <!-- ============================= -->
783
+ <!-- ============================= -->
784
+
785
+
786
+ <xsl:template match="text()">
787
+ <xsl:value-of select="."/>
788
+ </xsl:template>
789
+
790
+
791
+ <!-- calculate main section number (1,2,3) and pass it deep into templates -->
792
+ <!-- it's necessary, because there is itu:bibliography/itu:references from other section, but numbering should be sequental -->
793
+ <xsl:template match="nist:nist-standard/nist:sections/*">
794
+ <xsl:param name="sectionNum"/>
795
+ <xsl:param name="sectionNumSkew" select="0"/>
796
+ <fo:block>
797
+ <xsl:variable name="sectionNum_">
798
+ <xsl:choose>
799
+ <xsl:when test="$sectionNum"><xsl:value-of select="$sectionNum"/></xsl:when>
800
+ <xsl:when test="$sectionNumSkew != 0">
801
+ <xsl:variable name="number"><xsl:number count="*"/></xsl:variable>
802
+ <xsl:value-of select="$number + $sectionNumSkew"/>
803
+ </xsl:when>
804
+ <xsl:otherwise>
805
+ <xsl:number count="*"/>
806
+ </xsl:otherwise>
807
+ </xsl:choose>
808
+ </xsl:variable>
809
+ <xsl:apply-templates>
810
+ <xsl:with-param name="sectionNum" select="$sectionNum_"/>
811
+ </xsl:apply-templates>
812
+ </fo:block>
813
+ <xsl:if test="position() != last()">
814
+ <fo:block break-after="page"/>
815
+ </xsl:if>
816
+ </xsl:template>
817
+
818
+
819
+ <xsl:template match="nist:title">
820
+ <xsl:param name="sectionNum"/>
821
+ <xsl:variable name="id">
822
+ <xsl:choose>
823
+ <xsl:when test="../@id">
824
+ <xsl:value-of select="../@id"/>
825
+ </xsl:when>
826
+ <xsl:otherwise>
827
+ <xsl:value-of select="text()"/>
828
+ </xsl:otherwise>
829
+ </xsl:choose>
830
+ </xsl:variable>
831
+
832
+ <xsl:variable name="parent-name" select="local-name(..)"/>
833
+ <xsl:variable name="references_num_current">
834
+ <xsl:number level="any" count="nist:references"/>
835
+ </xsl:variable>
836
+
837
+ <xsl:variable name="level">
838
+ <xsl:call-template name="getLevel"/>
839
+ </xsl:variable>
840
+
841
+ <xsl:variable name="font-size">
842
+ <xsl:choose>
843
+ <xsl:when test="$level = 1">12pt</xsl:when>
844
+ <xsl:when test="$level &gt;= 2">11pt</xsl:when>
845
+ <xsl:otherwise>11pt</xsl:otherwise>
846
+ </xsl:choose>
847
+ </xsl:variable>
848
+
849
+ <xsl:variable name="space-after">
850
+ <xsl:choose>
851
+ <xsl:when test="$level = 2">12pt</xsl:when>
852
+ <xsl:otherwise>6pt</xsl:otherwise>
853
+ </xsl:choose>
854
+ </xsl:variable>
855
+
856
+ <xsl:variable name="section">
857
+ <xsl:call-template name="getSection">
858
+ <xsl:with-param name="sectionNum" select="$sectionNum"/>
859
+ </xsl:call-template>
860
+ </xsl:variable>
861
+
862
+ <xsl:choose>
863
+ <xsl:when test="ancestor::nist:legal-statement">
864
+ <fo:block id="{$id}" font-family="Arial" font-size="12pt" font-weight="bold" text-align="center" margin-bottom="12pt" color="{$color}">
865
+ <xsl:apply-templates/>
866
+ </fo:block>
867
+ </xsl:when>
868
+ <xsl:when test="ancestor::nist:executivesummary">
869
+ <fo:block-container color="white" background-color="black" margin-bottom="12pt">
870
+ <fo:block id="{$id}" font-family="Arial" font-size="12pt" font-weight="bold" text-align="left" margin-left="4mm" padding-top="1mm">
871
+ <xsl:apply-templates/>
872
+ </fo:block>
873
+ </fo:block-container>
874
+ </xsl:when>
875
+ <xsl:when test="ancestor::nist:preface">
876
+ <fo:block id="{$id}" font-family="Arial" font-size="12pt" font-weight="bold" text-align="center" space-before="12pt" margin-bottom="12pt" color="{$color}">
877
+ <xsl:apply-templates/>
878
+ </fo:block>
879
+ </xsl:when>
880
+ <xsl:when test="$parent-name = 'references'"> <!-- and $references_num_current != 1 -->
881
+ <fo:block-container color="white" background-color="{$color}" margin-bottom="12pt" keep-with-next="always" height="5mm" margin-left="-0.5mm" margin-right="-0.5mm">
882
+ <fo:block id="{$id}" font-family="Arial" font-size="12pt" font-weight="bold" margin-left="1mm" padding-top="0.3mm">
883
+ <!-- <xsl:apply-templates /> -->
884
+ <xsl:text>References</xsl:text>
885
+ </fo:block>
886
+ </fo:block-container>
887
+ </xsl:when>
888
+ <xsl:when test="ancestor::nist:annex and $level &gt;= 3">
889
+ <fo:block id="{$id}" font-family="Arial" font-size="11pt" font-weight="bold" margin-top="3pt" margin-bottom="12pt">
890
+ <xsl:if test="$parent-name != 'references'">
891
+ <xsl:value-of select="$section"/><xsl:text>. </xsl:text>
892
+ </xsl:if>
893
+ <xsl:apply-templates/>
894
+ </fo:block>
895
+ </xsl:when>
896
+ <xsl:when test="ancestor::nist:annex and $level &gt;= 2">
897
+ <fo:block id="{$id}" font-family="Arial" font-size="12pt" font-weight="bold" text-align="center" margin-top="3pt" margin-bottom="12pt">
898
+ <xsl:if test="$parent-name != 'references'">
899
+ <xsl:value-of select="$section"/><xsl:text>. </xsl:text>
900
+ </xsl:if>
901
+ <xsl:apply-templates/>
902
+ </fo:block>
903
+ </xsl:when>
904
+ <xsl:when test="$level = 1">
905
+ <fo:block-container color="white" background-color="{$color}" margin-bottom="12pt" keep-with-next="always" height="6mm" margin-left="-2mm" margin-right="-2mm">
906
+ <fo:block id="{$id}" font-family="Arial" font-size="{$font-size}" font-weight="bold" text-align="left" keep-with-next="always" margin-left="4mm" padding-top="1mm">
907
+ <xsl:choose>
908
+ <xsl:when test="$parent-name != 'annex'">
909
+ <fo:inline padding-right="7.5mm"><xsl:value-of select="$section"/></fo:inline> <!-- . -->
910
+ </xsl:when>
911
+ <xsl:otherwise>
912
+ <fo:inline><xsl:value-of select="$section"/> — </fo:inline>
913
+ </xsl:otherwise>
914
+ </xsl:choose>
915
+ <xsl:apply-templates/>
916
+ </fo:block>
917
+ </fo:block-container>
918
+ </xsl:when>
919
+ <xsl:otherwise>
920
+ <fo:block id="{$id}" font-family="Arial" font-size="{$font-size}" color="{$color}" font-weight="bold" text-align="left" space-after="{$space-after}" keep-with-next="always">
921
+ <fo:inline padding-right="4mm"><xsl:value-of select="$section"/>.</fo:inline>
922
+ <xsl:apply-templates/>
923
+ </fo:block>
924
+ </xsl:otherwise>
925
+ </xsl:choose>
926
+ </xsl:template>
927
+
928
+
929
+ <xsl:template match="nist:preferred2">
930
+ <xsl:param name="sectionNum"/>
931
+ <!-- DEBUG need -->
932
+ <fo:block space-before="6pt" text-align="justify">
933
+ <fo:inline id="{../@id}" padding-right="5mm" font-weight="bold">
934
+ <!-- <xsl:value-of select="$sectionNum"/><xsl:number format=".1" level="multiple" count="itu:clause/itu:clause | itu:clause/itu:terms | itu:terms/itu:term"/> -->
935
+ <xsl:variable name="section">
936
+ <xsl:call-template name="getSection">
937
+ <xsl:with-param name="sectionNum" select="$sectionNum"/>
938
+ </xsl:call-template>
939
+ </xsl:variable>
940
+ <xsl:value-of select="$section"/>
941
+ </fo:inline>
942
+ <fo:inline font-weight="bold">
943
+ <xsl:apply-templates/>
944
+ </fo:inline>
945
+ <xsl:if test="../nist:termsource/nist:origin">
946
+ <xsl:text> [</xsl:text><xsl:value-of select="../nist:termsource/nist:origin/@citeas"/><xsl:text>]</xsl:text>
947
+ </xsl:if>
948
+ <xsl:text>: </xsl:text>
949
+ <xsl:apply-templates select="following-sibling::nist:definition/node()" mode="process"/> <!-- -->
950
+ </fo:block>
951
+ </xsl:template>
952
+
953
+
954
+ <xsl:template match="nist:p//nist:fn[not(ancestor::nist:table)] | nist:title/nist:fn | nist:table/nist:name/nist:fn" priority="2">
955
+ <fo:footnote>
956
+ <xsl:variable name="number">
957
+ <xsl:number level="any" count="nist:p//nist:fn[not(ancestor::nist:table)] | nist:title/nist:fn | nist:table/nist:name/nist:fn"/>
958
+ </xsl:variable>
959
+ <fo:inline font-size="60%" keep-with-previous.within-line="always" vertical-align="super">
960
+ <fo:basic-link internal-destination="footnote_{@reference}_{$number}" fox:alt-text="footnote {@reference} {$number}">
961
+ <xsl:value-of select="$number + count(//nist:bibitem/nist:note)"/>
962
+ </fo:basic-link>
963
+ </fo:inline>
964
+ <fo:footnote-body>
965
+ <fo:block-container margin-left="3mm">
966
+ <fo:block font-size="9pt" font-family="Times New Roman" font-style="normal" font-weight="normal" margin-left="-3mm" margin-top="6pt" margin-bottom="12pt" start-indent="0mm" text-indent="-2mm" line-height="10pt" page-break-inside="avoid">
967
+ <fo:inline id="footnote_{@reference}_{$number}" font-size="75%" keep-with-next.within-line="always" vertical-align="super" padding-right="1mm"> <!-- alignment-baseline="hanging" -->
968
+ <xsl:value-of select="$number + count(//nist:bibitem/nist:note)"/>
969
+ </fo:inline>
970
+ <xsl:for-each select="nist:p">
971
+ <xsl:apply-templates/>
972
+ </xsl:for-each>
973
+ </fo:block>
974
+ </fo:block-container>
975
+ </fo:footnote-body>
976
+ </fo:footnote>
977
+ </xsl:template>
978
+
979
+
980
+ <xsl:template match="*[local-name()='tt']" priority="2">
981
+ <xsl:variable name="element-name">
982
+ <xsl:choose>
983
+ <xsl:when test="normalize-space(ancestor::nist:p[1]//text()[not(parent::nist:tt)]) != ''">fo:inline</xsl:when>
984
+ <xsl:otherwise>fo:block</xsl:otherwise>
985
+ </xsl:choose>
986
+ </xsl:variable>
987
+ <xsl:element name="{$element-name}">
988
+ <xsl:attribute name="font-family">Courier</xsl:attribute>
989
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
990
+ <xsl:attribute name="text-align">center</xsl:attribute>
991
+ <xsl:apply-templates/>
992
+ </xsl:element>
993
+ </xsl:template>
994
+
995
+
996
+ <xsl:template match="nist:figure">
997
+ <fo:block-container id="{@id}">
998
+ <fo:block>
999
+ <xsl:apply-templates/>
1000
+ </fo:block>
1001
+ <xsl:call-template name="fn_display_figure"/>
1002
+ <xsl:for-each select="nist:note//nist:p">
1003
+ <xsl:call-template name="note"/>
1004
+ </xsl:for-each>
1005
+ <fo:block font-weight="bold" text-align="center" margin-bottom="6pt" keep-with-previous="always">
1006
+ <xsl:text>Figure </xsl:text>
1007
+ <xsl:choose>
1008
+ <xsl:when test="ancestor::nist:annex">
1009
+ <xsl:choose>
1010
+ <xsl:when test="count(//nist:annex) = 1">
1011
+ <xsl:value-of select="/nist:nist-standard/nist:bibdata/nist:ext/nist:structuredidentifier/nist:annexid"/><xsl:number format="-1" level="any" count="nist:annex//nist:figure"/>
1012
+ </xsl:when>
1013
+ <xsl:otherwise>
1014
+ <xsl:number format="A-1-1" level="multiple" count="nist:annex | nist:figure"/>
1015
+ </xsl:otherwise>
1016
+ </xsl:choose>
1017
+ </xsl:when>
1018
+ <xsl:when test="ancestor::nist:figure">
1019
+ <xsl:for-each select="parent::*[1]">
1020
+ <xsl:number format="1" level="any" count="nist:figure[not(parent::nist:figure)]"/>
1021
+ </xsl:for-each>
1022
+ <xsl:number format="-a" count="nist:figure"/>
1023
+ </xsl:when>
1024
+ <xsl:otherwise>
1025
+ <xsl:number format="1" level="any" count="nist:figure[not(parent::nist:figure)]"/>
1026
+ </xsl:otherwise>
1027
+ </xsl:choose>
1028
+ <xsl:if test="nist:name">
1029
+ <xsl:text> — </xsl:text>
1030
+ <xsl:value-of select="nist:name"/>
1031
+ </xsl:if>
1032
+ </fo:block>
1033
+ </fo:block-container>
1034
+ </xsl:template>
1035
+
1036
+ <xsl:template match="nist:figure/nist:name"/>
1037
+ <xsl:template match="nist:figure/nist:fn" priority="2"/>
1038
+ <xsl:template match="nist:figure/nist:note"/>
1039
+
1040
+
1041
+ <xsl:template match="nist:figure2[@class = 'pseudocode']">
1042
+ <fo:block>
1043
+ <xsl:apply-templates/>
1044
+ </fo:block>
1045
+ </xsl:template>
1046
+
1047
+ <xsl:template match="nist:figure2[@class = 'pseudocode']//nist:p">
1048
+ <fo:block font-size="10pt" margin-top="6pt" margin-bottom="6pt">
1049
+ <xsl:apply-templates/>
1050
+ </fo:block>
1051
+ </xsl:template>
1052
+
1053
+
1054
+ <xsl:template match="nist:image">
1055
+ <fo:block text-align="center">
1056
+ <!-- <fo:external-graphic src="{@src}" content-width="75%" content-height="scale-to-fit" scaling="uniform"/> -->
1057
+ <fo:external-graphic src="{@src}" width="75%" content-height="100%" content-width="scale-to-fit" scaling="uniform" fox:alt-text="Image"/>
1058
+ </fo:block>
1059
+ </xsl:template>
1060
+
1061
+
1062
+ <!-- Examples:
1063
+ [b-ASM] b-ASM, http://www.eecs.umich.edu/gasm/ (accessed 20 March 2018).
1064
+ [b-Börger & Stärk] b-Börger & Stärk, Börger, E., and Stärk, R. S. (2003), Abstract State Machines: A Method for High-Level System Design and Analysis, Springer-Verlag.
1065
+ -->
1066
+ <xsl:template match="nist:annex//nist:bibitem">
1067
+ <fo:block id="{@id}" margin-top="6pt" margin-left="12mm" text-indent="-12mm">
1068
+ <xsl:if test="nist:formattedref">
1069
+ <xsl:choose>
1070
+ <xsl:when test="nist:docidentifier[@type = 'metanorma']">
1071
+ <xsl:attribute name="margin-left">0</xsl:attribute>
1072
+ <xsl:attribute name="text-indent">0</xsl:attribute>
1073
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
1074
+ <!-- create list -->
1075
+ <fo:list-block>
1076
+ <fo:list-item>
1077
+ <fo:list-item-label end-indent="label-end()">
1078
+ <fo:block>
1079
+ <xsl:apply-templates select="nist:docidentifier[@type = 'metanorma']" mode="process"/>
1080
+ </fo:block>
1081
+ </fo:list-item-label>
1082
+ <fo:list-item-body start-indent="body-start()">
1083
+ <fo:block margin-left="3mm">
1084
+ <xsl:apply-templates select="nist:formattedref"/>
1085
+ </fo:block>
1086
+ </fo:list-item-body>
1087
+ </fo:list-item>
1088
+ </fo:list-block>
1089
+ </xsl:when>
1090
+ <xsl:otherwise>
1091
+ <xsl:apply-templates select="nist:formattedref"/>
1092
+ <xsl:apply-templates select="nist:docidentifier[@type != 'metanorma' or not(@type)]" mode="process"/>
1093
+ </xsl:otherwise>
1094
+ </xsl:choose>
1095
+
1096
+
1097
+ </xsl:if>
1098
+ <xsl:if test="nist:title">
1099
+ <xsl:for-each select="nist:contributor">
1100
+ <xsl:value-of select="nist:organization/nist:name"/>
1101
+ <xsl:if test="position() != last()">, </xsl:if>
1102
+ </xsl:for-each>
1103
+ <xsl:text> (</xsl:text>
1104
+
1105
+ <xsl:value-of select="$date"/>
1106
+ <xsl:text>) </xsl:text>
1107
+ <fo:inline font-style="italic"><xsl:value-of select="nist:title"/></fo:inline>
1108
+ <xsl:if test="nist:contributor[nist:role/@type='publisher']/nist:organization/nist:name">
1109
+ <xsl:text> (</xsl:text><xsl:value-of select="nist:contributor[nist:role/@type='publisher']/nist:organization/nist:name"/><xsl:text>)</xsl:text>
1110
+ </xsl:if>
1111
+ <xsl:text>, </xsl:text>
1112
+ <xsl:value-of select="$date"/>
1113
+ <xsl:text>. </xsl:text>
1114
+ <xsl:value-of select="nist:docidentifier"/>
1115
+ <xsl:value-of select="$linebreak"/>
1116
+ <xsl:value-of select="nist:uri"/>
1117
+ </xsl:if>
1118
+ </fo:block>
1119
+ </xsl:template>
1120
+
1121
+ <xsl:template match="nist:annex//nist:bibitem//nist:formattedref">
1122
+ <xsl:apply-templates/>
1123
+ </xsl:template>
1124
+
1125
+ <xsl:template match="nist:docidentifier[@type = 'metanorma']" mode="process">
1126
+ <xsl:apply-templates/>
1127
+ </xsl:template>
1128
+ <xsl:template match="nist:docidentifier[@type != 'metanorma' or not(@type)]" mode="process">
1129
+ <xsl:text> [</xsl:text><xsl:apply-templates/><xsl:text>]</xsl:text>
1130
+ </xsl:template>
1131
+ <xsl:template match="nist:docidentifier"/>
1132
+
1133
+
1134
+
1135
+ <xsl:template match="nist:annex//nist:note/nist:p">
1136
+ <fo:block font-size="11pt" margin-top="4pt">
1137
+ <xsl:text>NOTE </xsl:text>
1138
+ <xsl:if test="../following-sibling::nist:note or ../preceding-sibling::nist:note">
1139
+ <xsl:number count="nist:note"/><xsl:text> </xsl:text>
1140
+ </xsl:if>
1141
+ <xsl:text>– </xsl:text>
1142
+ <xsl:apply-templates/>
1143
+ </fo:block>
1144
+ </xsl:template>
1145
+
1146
+ <xsl:template match="nist:ul | nist:ol">
1147
+ <fo:list-block>
1148
+ <xsl:apply-templates/>
1149
+ </fo:list-block>
1150
+ <xsl:apply-templates select="./nist:note" mode="process"/>
1151
+ </xsl:template>
1152
+
1153
+ <xsl:template match="nist:ul//nist:note | nist:ol//nist:note"/>
1154
+ <xsl:template match="nist:ul//nist:note/nist:p | nist:ol//nist:note/nist:p" mode="process">
1155
+ <fo:block font-size="11pt" margin-top="4pt">
1156
+ <xsl:text>NOTE </xsl:text>
1157
+ <xsl:if test="../following-sibling::nist:note or ../preceding-sibling::nist:note">
1158
+ <xsl:number count="nist:note"/><xsl:text> </xsl:text>
1159
+ </xsl:if>
1160
+ <xsl:text>– </xsl:text>
1161
+ <xsl:apply-templates/>
1162
+ </fo:block>
1163
+ </xsl:template>
1164
+
1165
+ <xsl:template match="nist:li">
1166
+ <xsl:variable name="level">
1167
+ <xsl:variable name="numtmp">
1168
+ <xsl:number level="multiple" count="nist:ol"/>
1169
+ </xsl:variable>
1170
+ <!-- level example: 1.1
1171
+ calculate counts of '.' in numtmp value - level of nested lists
1172
+ -->
1173
+ <xsl:value-of select="string-length($numtmp) - string-length(translate($numtmp, '.', '')) + 1"/>
1174
+ </xsl:variable>
1175
+ <fo:list-item>
1176
+ <fo:list-item-label end-indent="label-end()">
1177
+ <fo:block>
1178
+ <xsl:choose>
1179
+ <!-- <xsl:when test="local-name(..) = 'ul'">&#x2014;</xsl:when>--> <!-- dash -->
1180
+ <xsl:when test="local-name(..) = 'ul'">•</xsl:when>
1181
+ <xsl:otherwise> <!-- for ordered lists -->
1182
+ <xsl:choose>
1183
+ <xsl:when test="../@type = 'arabic'">
1184
+ <xsl:number format="a)"/>
1185
+ </xsl:when>
1186
+ <xsl:when test="../@type = 'alphabet'">
1187
+ <xsl:number format="1)"/>
1188
+ </xsl:when>
1189
+ <xsl:when test="ancestor::*[nist:annex]">
1190
+ <xsl:choose>
1191
+ <xsl:when test="$level = 1">
1192
+ <xsl:number format="a)"/>
1193
+ </xsl:when>
1194
+ <xsl:when test="$level = 2">
1195
+ <xsl:number format="i)"/>
1196
+ </xsl:when>
1197
+ <xsl:otherwise>
1198
+ <xsl:number format="1.)"/>
1199
+ </xsl:otherwise>
1200
+ </xsl:choose>
1201
+ </xsl:when>
1202
+ <xsl:otherwise>
1203
+ <xsl:number format="1."/>
1204
+ </xsl:otherwise>
1205
+ </xsl:choose>
1206
+ </xsl:otherwise>
1207
+ </xsl:choose>
1208
+ </fo:block>
1209
+ </fo:list-item-label>
1210
+ <fo:list-item-body start-indent="body-start()">
1211
+ <xsl:apply-templates/>
1212
+ <xsl:apply-templates select=".//nist:note" mode="process"/>
1213
+ </fo:list-item-body>
1214
+ </fo:list-item>
1215
+ </xsl:template>
1216
+
1217
+ <xsl:template match="nist:li//nist:p">
1218
+ <xsl:variable name="num"><xsl:number/></xsl:variable>
1219
+ <fo:block margin-bottom="6pt">
1220
+ <xsl:if test="$num &gt;= 2">
1221
+ <xsl:attribute name="font-size">11pt</xsl:attribute>
1222
+ </xsl:if>
1223
+ <xsl:apply-templates/>
1224
+ </fo:block>
1225
+ </xsl:template>
1226
+
1227
+ <xsl:template match="nist:link">
1228
+ <xsl:if test="ancestor::nist:formattedref">
1229
+ <xsl:value-of select="$linebreak"/>
1230
+ </xsl:if>
1231
+ <fo:basic-link external-destination="{@target}" color="blue" text-decoration="underline" fox:alt-text="link {@target}">
1232
+ <xsl:choose>
1233
+ <xsl:when test="normalize-space(.) = ''">
1234
+ <xsl:choose>
1235
+ <xsl:when test="starts-with(@target, 'mailto:')">
1236
+ <xsl:value-of select="substring-after(@target, 'mailto:')"/>
1237
+ </xsl:when>
1238
+ <xsl:otherwise>
1239
+ <xsl:value-of select="@target"/>
1240
+ </xsl:otherwise>
1241
+ </xsl:choose>
1242
+ </xsl:when>
1243
+ <xsl:otherwise>
1244
+ <xsl:apply-templates/>
1245
+ </xsl:otherwise>
1246
+ </xsl:choose>
1247
+ </fo:basic-link>
1248
+ <!-- </fo:inline> -->
1249
+ </xsl:template>
1250
+
1251
+
1252
+ <xsl:template match="nist:termnote">
1253
+ <fo:block margin-top="4pt">
1254
+ <xsl:text>NOTE </xsl:text>
1255
+ <xsl:if test="following-sibling::nist:termnote or preceding-sibling::nist:termnote">
1256
+ <xsl:number/><xsl:text> </xsl:text>
1257
+ </xsl:if>
1258
+ <xsl:text>– </xsl:text>
1259
+ <xsl:apply-templates/>
1260
+ </fo:block>
1261
+ </xsl:template>
1262
+ <xsl:template match="nist:termnote/nist:p">
1263
+ <xsl:apply-templates/>
1264
+ </xsl:template>
1265
+
1266
+
1267
+ <xsl:template match="nist:annex">
1268
+ <fo:block break-after="page"/>
1269
+ <xsl:apply-templates/>
1270
+ </xsl:template>
1271
+
1272
+ <xsl:template match="nist:formula" name="formula">
1273
+ <fo:block id="{@id}" margin-top="6pt"> <!-- text-align="center" -->
1274
+ <fo:table table-layout="fixed" width="100%">
1275
+ <fo:table-column column-width="95%"/>
1276
+ <fo:table-column column-width="5%"/>
1277
+ <fo:table-body>
1278
+ <fo:table-row>
1279
+ <fo:table-cell>
1280
+ <fo:block text-align="center">
1281
+ <xsl:if test="ancestor::nist:annex">
1282
+ <xsl:attribute name="text-align">left</xsl:attribute>
1283
+ <xsl:attribute name="margin-left">7mm</xsl:attribute>
1284
+ </xsl:if>
1285
+ <xsl:apply-templates/>
1286
+ </fo:block>
1287
+ </fo:table-cell>
1288
+ <fo:table-cell> <!-- display-align="center" -->
1289
+ <fo:block text-align="right">
1290
+ <xsl:if test="not(ancestor::nist:annex)">
1291
+ <xsl:text>(</xsl:text><xsl:number level="any"/><xsl:text>)</xsl:text>
1292
+ </xsl:if>
1293
+ <xsl:if test="ancestor::nist:annex">
1294
+ <xsl:variable name="annex-id" select="ancestor::nist:annex/@id"/>
1295
+ <xsl:text>(</xsl:text>
1296
+ <xsl:number format="A-" count="nist:annex"/>
1297
+ <xsl:number format="1" level="any" count="nist:formula[ancestor::nist:annex[@id = $annex-id]]"/>
1298
+ <xsl:text>)</xsl:text>
1299
+ </xsl:if>
1300
+ </fo:block>
1301
+ </fo:table-cell>
1302
+ </fo:table-row>
1303
+ </fo:table-body>
1304
+ </fo:table>
1305
+ <fo:inline keep-together.within-line="always">
1306
+ </fo:inline>
1307
+ </fo:block>
1308
+ </xsl:template>
1309
+
1310
+ <xsl:template match="nist:formula" mode="process">
1311
+ <xsl:call-template name="formula"/>
1312
+ </xsl:template>
1313
+
1314
+ <xsl:template match="nist:xref">
1315
+ <xsl:param name="sectionNum"/>
1316
+
1317
+ <xsl:variable name="section" select="xalan:nodeset($contents)//item[@id = current()/@target]/@section"/>
1318
+
1319
+ <fo:basic-link internal-destination="{@target}" text-decoration="underline" color="blue" fox:alt-text="{@target}">
1320
+ <xsl:variable name="type" select="xalan:nodeset($contents)//item[@id = current()/@target]/@type"/>
1321
+ <xsl:choose>
1322
+ <xsl:when test="$type = 'clause'">Section </xsl:when><!-- and not (ancestor::annex) -->
1323
+ <xsl:when test="$type = 'Example'">Example </xsl:when>
1324
+ <xsl:otherwise/> <!-- <xsl:value-of select="$type"/> -->
1325
+ </xsl:choose>
1326
+
1327
+ <xsl:choose>
1328
+ <xsl:when test="$type = 'Example'">
1329
+ <xsl:variable name="currentSection">
1330
+ <xsl:call-template name="getSection"/>
1331
+ </xsl:variable>
1332
+ <xsl:if test="not(contains($section, $currentSection))">
1333
+ <xsl:text>in </xsl:text>
1334
+ <xsl:value-of select="xalan:nodeset($contents)//item[@id = current()/@target]/@parent"/>
1335
+ <xsl:text> </xsl:text>
1336
+ <xsl:value-of select="$section"/>
1337
+ </xsl:if>
1338
+ </xsl:when>
1339
+ <xsl:otherwise>
1340
+ <xsl:choose>
1341
+ <xsl:when test="$section != ''"><xsl:value-of select="$section"/></xsl:when>
1342
+ <xsl:otherwise>???</xsl:otherwise>
1343
+ </xsl:choose>
1344
+ </xsl:otherwise>
1345
+ </xsl:choose>
1346
+
1347
+ </fo:basic-link>
1348
+ </xsl:template>
1349
+
1350
+
1351
+ <xsl:template match="nist:example">
1352
+ <fo:block id="{@id}" font-size="10pt" font-weight="bold" margin-bottom="12pt">EXAMPLE</fo:block>
1353
+ <fo:block font-size="11pt" margin-top="12pt" margin-bottom="12pt" margin-left="15mm">
1354
+ <xsl:apply-templates/>
1355
+ </fo:block>
1356
+ </xsl:template>
1357
+ <xsl:template match="nist:example/nist:p">
1358
+ <xsl:variable name="num"><xsl:number/></xsl:variable>
1359
+ <fo:block margin-bottom="12pt">
1360
+ <xsl:if test="$num = 1">
1361
+ <xsl:attribute name="margin-left">5mm</xsl:attribute>
1362
+ </xsl:if>
1363
+ <xsl:apply-templates/>
1364
+ </fo:block>
1365
+ </xsl:template>
1366
+
1367
+ <!-- <xsl:template match="itu:example/itu:name">
1368
+ <fo:block font-weight="bold">
1369
+ <xsl:text>EXAMPLE</xsl:text>
1370
+ <xsl:if test="count(ancestor::itu:clause[1]/itu:example) &gt; 1">
1371
+ <xsl:text> </xsl:text><xsl:number count="itu:example"/>
1372
+ </xsl:if>
1373
+ <xsl:text> — </xsl:text>
1374
+ <xsl:apply-templates />
1375
+ </fo:block>
1376
+ </xsl:template> -->
1377
+
1378
+
1379
+
1380
+
1381
+ <xsl:template match="nist:eref">
1382
+ <!-- <fo:inline color="blue"> -->
1383
+ <fo:basic-link internal-destination="{@bibitemid}" color="blue" fox:alt-text="{@citeas}">
1384
+ <xsl:if test="@type = 'footnote'">
1385
+ <xsl:attribute name="keep-together.within-line">always</xsl:attribute>
1386
+ <xsl:attribute name="font-size">80%</xsl:attribute>
1387
+ <xsl:attribute name="keep-with-previous.within-line">always</xsl:attribute>
1388
+ <xsl:attribute name="vertical-align">super</xsl:attribute>
1389
+ </xsl:if>
1390
+ <xsl:if test="@type = 'inline'">
1391
+ <xsl:attribute name="text-decoration">underline</xsl:attribute>
1392
+ </xsl:if>
1393
+ <!-- <xsl:text>[</xsl:text> --><xsl:value-of select="@citeas" disable-output-escaping="yes"/><!-- <xsl:text>]</xsl:text> -->
1394
+
1395
+ <xsl:apply-templates select="nist:localityStack"/>
1396
+
1397
+ </fo:basic-link>
1398
+ <!-- </fo:inline> -->
1399
+ </xsl:template>
1400
+
1401
+ <xsl:template match="nist:locality">
1402
+ <xsl:choose>
1403
+ <xsl:when test="@type = 'section'">Section </xsl:when>
1404
+ <xsl:when test="@type = 'clause'">Clause </xsl:when>
1405
+ <xsl:otherwise/>
1406
+ </xsl:choose>
1407
+ <xsl:text> </xsl:text><xsl:value-of select="nist:referenceFrom"/>
1408
+ </xsl:template>
1409
+
1410
+ <xsl:template match="nist:terms[nist:term[nist:preferred and nist:definition]]">
1411
+ <fo:block id="{@id}">
1412
+ <fo:table width="100%" table-layout="fixed">
1413
+ <fo:table-column column-width="22%"/>
1414
+ <fo:table-column column-width="78%"/>
1415
+ <fo:table-body>
1416
+ <xsl:apply-templates mode="table"/>
1417
+ </fo:table-body>
1418
+ </fo:table>
1419
+ </fo:block>
1420
+ </xsl:template>
1421
+ <xsl:template match="nist:term" mode="table">
1422
+ <fo:table-row>
1423
+ <fo:table-cell padding-right="1mm">
1424
+ <fo:block margin-bottom="12pt">
1425
+ <xsl:apply-templates select="nist:preferred"/>
1426
+ </fo:block>
1427
+ </fo:table-cell>
1428
+ <fo:table-cell>
1429
+ <fo:block margin-bottom="12pt">
1430
+ <xsl:apply-templates select="nist:*[local-name(.) != 'preferred']"/>
1431
+ </fo:block>
1432
+ </fo:table-cell>
1433
+ </fo:table-row>
1434
+ </xsl:template>
1435
+ <xsl:template match="nist:preferred">
1436
+ <fo:inline id="{../@id}">
1437
+ <xsl:apply-templates/>
1438
+ </fo:inline>
1439
+ </xsl:template>
1440
+ <xsl:template match="nist:definition/nist:p">
1441
+ <fo:block>
1442
+ <xsl:apply-templates/>
1443
+ </fo:block>
1444
+ </xsl:template>
1445
+
1446
+ <xsl:template match="nist:errata">
1447
+ <!-- <row>
1448
+ <date>05-07-2013</date>
1449
+ <type>Editorial</type>
1450
+ <change>Changed CA-9 Priority Code from P1 to P2 in <xref target="tabled2"/>.</change>
1451
+ <pages>D-3</pages>
1452
+ </row>
1453
+ -->
1454
+ <fo:table table-layout="fixed" width="100%" font-size="10pt" border="1pt solid black">
1455
+ <fo:table-column column-width="20mm"/>
1456
+ <fo:table-column column-width="23mm"/>
1457
+ <fo:table-column column-width="107mm"/>
1458
+ <fo:table-column column-width="15mm"/>
1459
+ <fo:table-body>
1460
+ <fo:table-row font-family="Arial" text-align="center" font-weight="bold" background-color="black" color="white">
1461
+ <fo:table-cell border="1pt solid black"><fo:block>Date</fo:block></fo:table-cell>
1462
+ <fo:table-cell border="1pt solid black"><fo:block>Type</fo:block></fo:table-cell>
1463
+ <fo:table-cell border="1pt solid black"><fo:block>Change</fo:block></fo:table-cell>
1464
+ <fo:table-cell border="1pt solid black"><fo:block>Pages</fo:block></fo:table-cell>
1465
+ </fo:table-row>
1466
+ <xsl:apply-templates/>
1467
+ </fo:table-body>
1468
+ </fo:table>
1469
+ </xsl:template>
1470
+
1471
+ <xsl:template match="nist:errata/nist:row">
1472
+ <fo:table-row>
1473
+ <xsl:apply-templates/>
1474
+ </fo:table-row>
1475
+ </xsl:template>
1476
+
1477
+ <xsl:template match="nist:errata/nist:row/*">
1478
+ <fo:table-cell border="1pt solid black" padding-left="1mm" padding-top="0.5mm">
1479
+ <fo:block><xsl:apply-templates/></fo:block>
1480
+ </fo:table-cell>
1481
+ </xsl:template>
1482
+
1483
+ <xsl:template match="nist:quote">
1484
+ <fo:block-container margin-left="7mm" margin-right="7mm">
1485
+ <xsl:apply-templates/>
1486
+ <xsl:apply-templates select="nist:author" mode="process"/>
1487
+ </fo:block-container>
1488
+ </xsl:template>
1489
+
1490
+ <xsl:template match="nist:quote/nist:author"/>
1491
+ <xsl:template match="nist:quote/nist:p">
1492
+ <fo:block text-align="justify" margin-bottom="12pt">
1493
+ <xsl:apply-templates/>
1494
+ </fo:block>
1495
+ </xsl:template>
1496
+ <xsl:template match="nist:quote/nist:author" mode="process">
1497
+ <fo:block text-align="right" margin-left="0.5in" margin-right="0.5in">
1498
+ <fo:inline>— </fo:inline>
1499
+ <xsl:apply-templates/>
1500
+ </fo:block>
1501
+ </xsl:template>
1502
+
1503
+ <xsl:template match="nist:sourcecode">
1504
+ <fo:block font-family="Courier" font-size="10pt" margin-top="6pt" margin-bottom="6pt">
1505
+ <!-- <xsl:choose>
1506
+ <xsl:when test="@lang = 'en'"></xsl:when>
1507
+ <xsl:otherwise> -->
1508
+ <xsl:attribute name="white-space">pre</xsl:attribute>
1509
+ <xsl:attribute name="wrap-option">wrap</xsl:attribute>
1510
+ <!-- </xsl:otherwise>
1511
+ </xsl:choose> -->
1512
+ <xsl:apply-templates/>
1513
+ </fo:block>
1514
+ </xsl:template>
1515
+
1516
+ <!-- <xsl:template match="nist:dt//nist:stem">
1517
+ <xsl:apply-templates />
1518
+ <xsl:value-of select="$linebreak"/>
1519
+ </xsl:template> -->
1520
+
1521
+
1522
+
1523
+ <xsl:template name="insertHeaderFooter">
1524
+ <xsl:call-template name="insertHeader"/>
1525
+ <xsl:call-template name="insertFooter"/>
1526
+ </xsl:template>
1527
+
1528
+ <xsl:template name="insertHeader">
1529
+ <fo:static-content flow-name="header" font-family="Arial" font-size="7.5pt">
1530
+ <fo:block-container height="1in" display-align="before" color="{$color}">
1531
+ <fo:block padding-top="0.5in" margin-bottom="7pt" line-height="115%"> <!-- text-align-last="justify" -->
1532
+ <fo:table table-layout="fixed" width="100%">
1533
+ <fo:table-column column-width="70%"/>
1534
+ <fo:table-column column-width="30%"/>
1535
+ <fo:table-body>
1536
+ <fo:table-row>
1537
+ <fo:table-cell>
1538
+ <fo:block>
1539
+ <xsl:call-template name="recursiveSmallCaps">
1540
+ <xsl:with-param name="text" select="$seriestitle"/>
1541
+ </xsl:call-template>
1542
+ </fo:block>
1543
+ </fo:table-cell>
1544
+ <fo:table-cell>
1545
+ <fo:block text-align="right">
1546
+ <xsl:call-template name="recursiveSmallCaps">
1547
+ <xsl:with-param name="text" select="$title"/>
1548
+ </xsl:call-template>
1549
+ </fo:block>
1550
+ </fo:table-cell>
1551
+ </fo:table-row>
1552
+ </fo:table-body>
1553
+ </fo:table>
1554
+ <!-- <xsl:call-template name="recursiveSmallCaps">
1555
+ <xsl:with-param name="text" select="$seriestitle"/>
1556
+ </xsl:call-template>
1557
+ <fo:inline keep-together.within-line="always">
1558
+ <fo:leader leader-pattern="space"/>
1559
+ <xsl:call-template name="recursiveSmallCaps">
1560
+ <xsl:with-param name="text" select="$title"/>
1561
+ </xsl:call-template>
1562
+ </fo:inline> -->
1563
+ </fo:block>
1564
+ <!-- <fo:block>
1565
+ <xsl:call-template name="recursiveSmallCaps">
1566
+ <xsl:with-param name="text" select="$date"/>
1567
+ </xsl:call-template>
1568
+ </fo:block> -->
1569
+ </fo:block-container>
1570
+ </fo:static-content>
1571
+ </xsl:template>
1572
+
1573
+ <xsl:template name="insertFooter">
1574
+ <fo:static-content flow-name="footer" font-size="11pt">
1575
+ <fo:block-container height="1in" display-align="after" color="{$color}">
1576
+ <fo:block text-align="center" padding-bottom="0.65in"><fo:page-number/></fo:block>
1577
+ </fo:block-container>
1578
+ </fo:static-content>
1579
+ </xsl:template>
1580
+
1581
+ <xsl:variable name="Image-NIST-Logo">
1582
+ <xsl:text>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
2607
+ </xsl:text>
2608
+ </xsl:variable>
2609
+
2610
+
2611
+ <!-- convert YYYY-MM-DD to (Month YYYY) -->
2612
+ <xsl:template name="formatDate">
2613
+ <xsl:param name="date"/>
2614
+ <xsl:variable name="year" select="substring($date, 1, 4)"/>
2615
+ <xsl:variable name="month" select="substring($date, 6, 2)"/>
2616
+ <xsl:variable name="day" select="substring($date, 9)"/>
2617
+ <xsl:variable name="monthStr">
2618
+ <xsl:choose>
2619
+ <xsl:when test="$month = '01'">January</xsl:when>
2620
+ <xsl:when test="$month = '02'">February</xsl:when>
2621
+ <xsl:when test="$month = '03'">March</xsl:when>
2622
+ <xsl:when test="$month = '04'">April</xsl:when>
2623
+ <xsl:when test="$month = '05'">May</xsl:when>
2624
+ <xsl:when test="$month = '06'">June</xsl:when>
2625
+ <xsl:when test="$month = '07'">July</xsl:when>
2626
+ <xsl:when test="$month = '08'">August</xsl:when>
2627
+ <xsl:when test="$month = '09'">September</xsl:when>
2628
+ <xsl:when test="$month = '10'">October</xsl:when>
2629
+ <xsl:when test="$month = '11'">November</xsl:when>
2630
+ <xsl:when test="$month = '12'">December</xsl:when>
2631
+ </xsl:choose>
2632
+ </xsl:variable>
2633
+ <xsl:variable name="result" select="normalize-space(concat($monthStr, ' ', $day, ', ', $year))"/>
2634
+ <xsl:value-of select="$result"/>
2635
+ </xsl:template>
2636
+
2637
+ <!-- convert YYYY-MM-DD to MM-DD-YYYY -->
2638
+ <xsl:template name="formatDateDigits">
2639
+ <xsl:param name="date"/>
2640
+ <xsl:variable name="year" select="substring($date, 1, 4)"/>
2641
+ <xsl:variable name="month" select="substring($date, 6, 2)"/>
2642
+ <xsl:variable name="day" select="substring($date, 9, 2)"/>
2643
+ <xsl:if test="$year != ''">
2644
+ <xsl:value-of select="$month"/>-<xsl:value-of select="$day"/>-<xsl:value-of select="$year"/>
2645
+ </xsl:if>
2646
+ </xsl:template>
2647
+
2648
+ <xsl:template name="getLevel">
2649
+ <xsl:variable name="level_total" select="count(ancestor::*)"/>
2650
+ <xsl:variable name="level">
2651
+ <xsl:choose>
2652
+ <xsl:when test="ancestor::nist:sections">
2653
+ <xsl:value-of select="$level_total - 2"/>
2654
+ </xsl:when>
2655
+ <xsl:when test="ancestor::nist:bibliography">
2656
+ <xsl:value-of select="$level_total - 2"/>
2657
+ </xsl:when>
2658
+ <xsl:when test="local-name(ancestor::*[1]) = 'annex'">1</xsl:when>
2659
+ <xsl:otherwise>
2660
+ <xsl:value-of select="$level_total - 1"/>
2661
+ </xsl:otherwise>
2662
+ </xsl:choose>
2663
+ </xsl:variable>
2664
+ <xsl:value-of select="$level"/>
2665
+ </xsl:template>
2666
+
2667
+ <xsl:template name="getSection">
2668
+ <xsl:param name="sectionNum"/>
2669
+ <xsl:variable name="level">
2670
+ <xsl:call-template name="getLevel"/>
2671
+ </xsl:variable>
2672
+ <xsl:variable name="section">
2673
+ <xsl:choose>
2674
+ <xsl:when test="ancestor::nist:bibliography">
2675
+ <xsl:value-of select="$sectionNum"/>
2676
+ </xsl:when>
2677
+ <xsl:when test="ancestor::nist:sections">
2678
+ <!-- 1, 2, 3, 4, ... from main section (not annex, bibliography, ...) -->
2679
+ <xsl:choose>
2680
+ <xsl:when test="$level = 1">
2681
+ <xsl:value-of select="$sectionNum"/>
2682
+ </xsl:when>
2683
+ <xsl:when test="$level &gt;= 2">
2684
+ <xsl:variable name="num">
2685
+ <xsl:number format=".1" level="multiple" count="nist:clause/nist:clause | nist:clause/nist:terms | nist:terms/nist:term | nist:clause/nist:term"/>
2686
+ </xsl:variable>
2687
+ <xsl:value-of select="concat($sectionNum, $num)"/>
2688
+ </xsl:when>
2689
+ <xsl:otherwise>
2690
+ </xsl:otherwise>
2691
+ </xsl:choose>
2692
+ </xsl:when>
2693
+ <xsl:when test="ancestor::nist:annex[@obligation = 'informative']">
2694
+ <xsl:choose>
2695
+ <xsl:when test="$level = 1">
2696
+ <xsl:text>Appendix </xsl:text>
2697
+ <xsl:number format="I" level="any" count="nist:annex[@obligation = 'informative']"/>
2698
+ </xsl:when>
2699
+ <xsl:otherwise>
2700
+ <xsl:number format="I.1" level="multiple" count="nist:annex[@obligation = 'informative'] | nist:clause"/>
2701
+ </xsl:otherwise>
2702
+ </xsl:choose>
2703
+ </xsl:when>
2704
+ <xsl:when test="ancestor::nist:annex">
2705
+ <xsl:choose>
2706
+ <xsl:when test="$level = 1">
2707
+ <xsl:text>Appendix </xsl:text>
2708
+ <xsl:choose>
2709
+ <xsl:when test="count(//nist:annex) = 1">
2710
+ <xsl:value-of select="/nist:nist-standard/nist:bibdata/nist:ext/nist:structuredidentifier/nist:annexid"/>
2711
+ </xsl:when>
2712
+ <xsl:otherwise>
2713
+ <xsl:number format="A" level="any" count="nist:annex"/>
2714
+ </xsl:otherwise>
2715
+ </xsl:choose>
2716
+ </xsl:when>
2717
+ <xsl:otherwise>
2718
+ <xsl:choose>
2719
+ <xsl:when test="count(//nist:annex) = 1">
2720
+ <xsl:value-of select="/nist:nist-standard/nist:bibdata/nist:ext/nist:structuredidentifier/nist:annexid"/><xsl:number format=".1" level="multiple" count="nist:clause"/>
2721
+ </xsl:when>
2722
+ <xsl:otherwise>
2723
+ <xsl:number format="A.1" level="multiple" count="nist:annex | nist:clause"/>
2724
+ </xsl:otherwise>
2725
+ </xsl:choose>
2726
+ </xsl:otherwise>
2727
+ </xsl:choose>
2728
+ </xsl:when>
2729
+ <xsl:otherwise>
2730
+ </xsl:otherwise>
2731
+ </xsl:choose>
2732
+ </xsl:variable>
2733
+ <xsl:value-of select="$section"/>
2734
+ </xsl:template>
2735
+
2736
+ <xsl:variable xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" name="lower">abcdefghijklmnopqrstuvwxyz</xsl:variable><xsl:variable xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" name="upper">ABCDEFGHIJKLMNOPQRSTUVWXYZ</xsl:variable><xsl:variable xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" name="en_chars" select="concat($lower,$upper,',.`1234567890-=~!@#$%^*()_+[]{}\|?/')"/><xsl:variable xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" name="linebreak" select="'&#8232;'"/><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="text()">
2737
+ <xsl:value-of select="."/>
2738
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='br']">
2739
+ <xsl:value-of select="$linebreak"/>
2740
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='td']//text() | *[local-name()='th']//text()" priority="1">
2741
+ <xsl:call-template name="add-zero-spaces"/>
2742
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='table']">
2743
+
2744
+ <xsl:variable name="simple-table">
2745
+ <!-- <xsl:copy> -->
2746
+ <xsl:call-template name="getSimpleTable"/>
2747
+ <!-- </xsl:copy> -->
2748
+ </xsl:variable>
2749
+
2750
+ <!-- DEBUG -->
2751
+ <!-- SourceTable=<xsl:copy-of select="current()"/>EndSourceTable -->
2752
+ <!-- Simpletable=<xsl:copy-of select="$simple-table"/>EndSimpltable -->
2753
+
2754
+ <!-- <xsl:variable name="namespace" select="substring-before(name(/*), '-')"/> -->
2755
+
2756
+
2757
+ <xsl:choose>
2758
+ <xsl:when test="@unnumbered = 'true'"/>
2759
+ <xsl:otherwise>
2760
+
2761
+
2762
+
2763
+ <fo:block font-weight="bold" text-align="center" margin-bottom="6pt" keep-with-next="always">
2764
+
2765
+ <xsl:attribute name="font-family">Arial</xsl:attribute>
2766
+ <xsl:attribute name="font-size">9pt</xsl:attribute>
2767
+
2768
+
2769
+
2770
+
2771
+ <xsl:text>Table </xsl:text>
2772
+ <xsl:choose>
2773
+ <xsl:when test="ancestor::*[local-name()='executivesummary']"> <!-- NIST -->
2774
+ <xsl:text>ES-</xsl:text><xsl:number format="1" count="*[local-name()='executivesummary']//*[local-name()='table'][not(@unnumbered) or @unnumbered != 'true']"/>
2775
+ </xsl:when>
2776
+ <xsl:when test="ancestor::*[local-name()='annex']">
2777
+
2778
+
2779
+
2780
+ <xsl:variable name="annex-id" select="ancestor::*[local-name()='annex']/@id"/>
2781
+ <xsl:number format="A-" count="*[local-name()='annex']"/>
2782
+ <xsl:number format="1" level="any" count="*[local-name()='table'][not(@unnumbered) or @unnumbered != 'true'][ancestor::*[local-name()='annex'][@id = $annex-id]]"/>
2783
+
2784
+
2785
+
2786
+
2787
+ </xsl:when>
2788
+ <xsl:otherwise>
2789
+ <!-- <xsl:number format="1"/> -->
2790
+ <xsl:number format="A." count="*[local-name()='annex']"/>
2791
+ <!-- <xsl:number format="1" level="any" count="*[local-name()='sections']//*[local-name()='table'][not(@unnumbered) or @unnumbered != 'true']"/> -->
2792
+ <xsl:number format="1" level="any" count="//*[local-name()='table'] [not(ancestor::*[local-name()='annex']) and not(ancestor::*[local-name()='executivesummary']) and not(ancestor::*[local-name()='bibdata'])] [not(@unnumbered) or @unnumbered != 'true']"/>
2793
+ </xsl:otherwise>
2794
+ </xsl:choose>
2795
+ <xsl:if test="*[local-name()='name']">
2796
+
2797
+
2798
+
2799
+ <xsl:text> — </xsl:text>
2800
+
2801
+ <xsl:apply-templates select="*[local-name()='name']" mode="process"/>
2802
+ </xsl:if>
2803
+ </fo:block>
2804
+
2805
+
2806
+ </xsl:otherwise>
2807
+ </xsl:choose>
2808
+
2809
+ <xsl:variable name="cols-count" select="count(xalan:nodeset($simple-table)//tr[1]/td)"/>
2810
+
2811
+ <!-- <xsl:variable name="cols-count">
2812
+ <xsl:choose>
2813
+ <xsl:when test="*[local-name()='thead']">
2814
+ <xsl:call-template name="calculate-columns-numbers">
2815
+ <xsl:with-param name="table-row" select="*[local-name()='thead']/*[local-name()='tr'][1]"/>
2816
+ </xsl:call-template>
2817
+ </xsl:when>
2818
+ <xsl:otherwise>
2819
+ <xsl:call-template name="calculate-columns-numbers">
2820
+ <xsl:with-param name="table-row" select="*[local-name()='tbody']/*[local-name()='tr'][1]"/>
2821
+ </xsl:call-template>
2822
+ </xsl:otherwise>
2823
+ </xsl:choose>
2824
+ </xsl:variable> -->
2825
+ <!-- cols-count=<xsl:copy-of select="$cols-count"/> -->
2826
+ <!-- cols-count2=<xsl:copy-of select="$cols-count2"/> -->
2827
+
2828
+
2829
+
2830
+ <xsl:variable name="colwidths">
2831
+ <xsl:call-template name="calculate-column-widths">
2832
+ <xsl:with-param name="cols-count" select="$cols-count"/>
2833
+ <xsl:with-param name="table" select="$simple-table"/>
2834
+ </xsl:call-template>
2835
+ </xsl:variable>
2836
+
2837
+ <xsl:variable name="colwidths2">
2838
+ <xsl:call-template name="calculate-column-widths">
2839
+ <xsl:with-param name="cols-count" select="$cols-count"/>
2840
+ </xsl:call-template>
2841
+ </xsl:variable>
2842
+
2843
+ <!-- cols-count=<xsl:copy-of select="$cols-count"/>
2844
+ colwidthsNew=<xsl:copy-of select="$colwidths"/>
2845
+ colwidthsOld=<xsl:copy-of select="$colwidths2"/>z -->
2846
+
2847
+ <xsl:variable name="margin-left">
2848
+ <xsl:choose>
2849
+ <xsl:when test="sum(xalan:nodeset($colwidths)//column) &gt; 75">15</xsl:when>
2850
+ <xsl:otherwise>0</xsl:otherwise>
2851
+ </xsl:choose>
2852
+ </xsl:variable>
2853
+
2854
+ <fo:block-container margin-left="-{$margin-left}mm" margin-right="-{$margin-left}mm">
2855
+
2856
+ <xsl:attribute name="space-after">6pt</xsl:attribute>
2857
+
2858
+
2859
+
2860
+
2861
+
2862
+ <fo:table id="{@id}" table-layout="fixed" width="100%" margin-left="{$margin-left}mm" margin-right="{$margin-left}mm">
2863
+
2864
+
2865
+
2866
+
2867
+ <xsl:if test="ancestor::*[local-name()='annex'] or ancestor::*[local-name()='preface']">
2868
+ <xsl:attribute name="font-family">Times New Roman</xsl:attribute>
2869
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
2870
+ </xsl:if>
2871
+ <xsl:if test="not(ancestor::*[local-name()='annex'] or ancestor::*[local-name()='preface'])">
2872
+ <xsl:attribute name="font-family">Times New Roman</xsl:attribute>
2873
+ <xsl:attribute name="font-size">12pt</xsl:attribute>
2874
+ </xsl:if>
2875
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
2876
+
2877
+
2878
+
2879
+
2880
+
2881
+ <xsl:for-each select="xalan:nodeset($colwidths)//column">
2882
+ <xsl:choose>
2883
+ <xsl:when test=". = 1">
2884
+ <fo:table-column column-width="proportional-column-width(2)"/>
2885
+ </xsl:when>
2886
+ <xsl:otherwise>
2887
+ <fo:table-column column-width="proportional-column-width({.})"/>
2888
+ </xsl:otherwise>
2889
+ </xsl:choose>
2890
+ </xsl:for-each>
2891
+ <xsl:apply-templates/>
2892
+ </fo:table>
2893
+ </fo:block-container>
2894
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='table']/*[local-name()='name']"/><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='table']/*[local-name()='name']" mode="process">
2895
+ <xsl:apply-templates/>
2896
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" name="calculate-columns-numbers">
2897
+ <xsl:param name="table-row"/>
2898
+ <xsl:variable name="columns-count" select="count($table-row/*)"/>
2899
+ <xsl:variable name="sum-colspans" select="sum($table-row/*/@colspan)"/>
2900
+ <xsl:variable name="columns-with-colspan" select="count($table-row/*[@colspan])"/>
2901
+ <xsl:value-of select="$columns-count + $sum-colspans - $columns-with-colspan"/>
2902
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" name="calculate-column-widths">
2903
+ <xsl:param name="table"/>
2904
+ <xsl:param name="cols-count"/>
2905
+ <xsl:param name="curr-col" select="1"/>
2906
+ <xsl:param name="width" select="0"/>
2907
+
2908
+ <xsl:if test="$curr-col &lt;= $cols-count">
2909
+ <xsl:variable name="widths">
2910
+ <xsl:choose>
2911
+ <xsl:when test="not($table)">
2912
+ <xsl:for-each select="*[local-name()='thead']//*[local-name()='tr']">
2913
+ <xsl:variable name="words">
2914
+ <xsl:call-template name="tokenize">
2915
+ <xsl:with-param name="text" select="translate(*[local-name()='th'][$curr-col],'- —:', ' ')"/>
2916
+ </xsl:call-template>
2917
+ </xsl:variable>
2918
+ <xsl:variable name="max_length">
2919
+ <xsl:call-template name="max_length">
2920
+ <xsl:with-param name="words" select="xalan:nodeset($words)"/>
2921
+ </xsl:call-template>
2922
+ </xsl:variable>
2923
+ <width>
2924
+ <xsl:value-of select="$max_length"/>
2925
+ </width>
2926
+ </xsl:for-each>
2927
+ <xsl:for-each select="*[local-name()='tbody']//*[local-name()='tr']">
2928
+ <xsl:variable name="words">
2929
+ <xsl:call-template name="tokenize">
2930
+ <xsl:with-param name="text" select="translate(*[local-name()='td'][$curr-col],'- —:', ' ')"/>
2931
+ </xsl:call-template>
2932
+ </xsl:variable>
2933
+ <xsl:variable name="max_length">
2934
+ <xsl:call-template name="max_length">
2935
+ <xsl:with-param name="words" select="xalan:nodeset($words)"/>
2936
+ </xsl:call-template>
2937
+ </xsl:variable>
2938
+ <width>
2939
+ <xsl:value-of select="$max_length"/>
2940
+ </width>
2941
+
2942
+ </xsl:for-each>
2943
+ </xsl:when>
2944
+ <xsl:otherwise>
2945
+ <xsl:for-each select="xalan:nodeset($table)//tr">
2946
+ <xsl:variable name="words">
2947
+ <xsl:call-template name="tokenize">
2948
+ <xsl:with-param name="text" select="translate(td[$curr-col],'- —:', ' ')"/>
2949
+ </xsl:call-template>
2950
+ </xsl:variable>
2951
+ <xsl:variable name="max_length">
2952
+ <xsl:call-template name="max_length">
2953
+ <xsl:with-param name="words" select="xalan:nodeset($words)"/>
2954
+ </xsl:call-template>
2955
+ </xsl:variable>
2956
+ <width>
2957
+ <xsl:variable name="divider">
2958
+ <xsl:choose>
2959
+ <xsl:when test="td[$curr-col]/@divide">
2960
+ <xsl:value-of select="td[$curr-col]/@divide"/>
2961
+ </xsl:when>
2962
+ <xsl:otherwise>1</xsl:otherwise>
2963
+ </xsl:choose>
2964
+ </xsl:variable>
2965
+ <xsl:value-of select="$max_length div $divider"/>
2966
+ </width>
2967
+
2968
+ </xsl:for-each>
2969
+
2970
+ </xsl:otherwise>
2971
+ </xsl:choose>
2972
+ </xsl:variable>
2973
+
2974
+
2975
+ <column>
2976
+ <xsl:for-each select="xalan:nodeset($widths)//width">
2977
+ <xsl:sort select="." data-type="number" order="descending"/>
2978
+ <xsl:if test="position()=1">
2979
+ <xsl:value-of select="."/>
2980
+ </xsl:if>
2981
+ </xsl:for-each>
2982
+ </column>
2983
+ <xsl:call-template name="calculate-column-widths">
2984
+ <xsl:with-param name="cols-count" select="$cols-count"/>
2985
+ <xsl:with-param name="curr-col" select="$curr-col +1"/>
2986
+ <xsl:with-param name="table" select="$table"/>
2987
+ </xsl:call-template>
2988
+ </xsl:if>
2989
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='table2']"/><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='thead']"/><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='thead']" mode="process">
2990
+ <!-- <fo:table-header font-weight="bold">
2991
+ <xsl:apply-templates />
2992
+ </fo:table-header> -->
2993
+ <xsl:apply-templates/>
2994
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='tfoot']"/><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='tfoot']" mode="process">
2995
+ <xsl:apply-templates/>
2996
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='tbody']">
2997
+ <xsl:variable name="cols-count">
2998
+ <xsl:choose>
2999
+ <xsl:when test="../*[local-name()='thead']">
3000
+ <!-- <xsl:value-of select="count(../*[local-name()='thead']/*[local-name()='tr']/*[local-name()='th'])"/> -->
3001
+ <xsl:call-template name="calculate-columns-numbers">
3002
+ <xsl:with-param name="table-row" select="../*[local-name()='thead']/*[local-name()='tr'][1]"/>
3003
+ </xsl:call-template>
3004
+ </xsl:when>
3005
+ <xsl:otherwise>
3006
+ <!-- <xsl:value-of select="count(./*[local-name()='tr'][1]/*[local-name()='td'])"/> -->
3007
+ <xsl:call-template name="calculate-columns-numbers">
3008
+ <xsl:with-param name="table-row" select="./*[local-name()='tr'][1]"/>
3009
+ </xsl:call-template>
3010
+ </xsl:otherwise>
3011
+ </xsl:choose>
3012
+ </xsl:variable>
3013
+
3014
+ <fo:table-body>
3015
+ <xsl:apply-templates select="../*[local-name()='thead']" mode="process"/>
3016
+ <xsl:apply-templates/>
3017
+ <xsl:apply-templates select="../*[local-name()='tfoot']" mode="process"/>
3018
+ <!-- if there are note(s) or fn(s) then create footer row -->
3019
+ <xsl:if test="../*[local-name()='note'] or ..//*[local-name()='fn'][local-name(..) != 'name']">
3020
+ <fo:table-row>
3021
+ <fo:table-cell border="solid black 1pt" padding-left="1mm" padding-right="1mm" padding-top="1mm" number-columns-spanned="{$cols-count}">
3022
+
3023
+
3024
+ <!-- fn will be processed inside 'note' processing -->
3025
+ <xsl:apply-templates select="../*[local-name()='note']" mode="process"/>
3026
+ <!-- fn processing -->
3027
+ <xsl:call-template name="fn_display"/>
3028
+
3029
+ </fo:table-cell>
3030
+ </fo:table-row>
3031
+
3032
+ </xsl:if>
3033
+ </fo:table-body>
3034
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='tr']">
3035
+ <xsl:variable name="parent-name" select="local-name(..)"/>
3036
+ <!-- <xsl:variable name="namespace" select="substring-before(name(/*), '-')"/> -->
3037
+ <fo:table-row min-height="4mm">
3038
+ <xsl:if test="$parent-name = 'thead'">
3039
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
3040
+
3041
+ <xsl:attribute name="font-family">Arial</xsl:attribute>
3042
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
3043
+
3044
+
3045
+
3046
+
3047
+ </xsl:if>
3048
+ <xsl:if test="$parent-name = 'tfoot'">
3049
+
3050
+ </xsl:if>
3051
+
3052
+ <xsl:apply-templates/>
3053
+ </fo:table-row>
3054
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='th']">
3055
+ <fo:table-cell text-align="{@align}" font-weight="bold" border="solid black 1pt" padding-left="1mm" display-align="center">
3056
+
3057
+
3058
+
3059
+ <xsl:attribute name="text-align">center</xsl:attribute>
3060
+ <xsl:attribute name="background-color">black</xsl:attribute>
3061
+ <xsl:attribute name="color">white</xsl:attribute>
3062
+
3063
+
3064
+
3065
+
3066
+ <xsl:if test="@colspan">
3067
+ <xsl:attribute name="number-columns-spanned">
3068
+ <xsl:value-of select="@colspan"/>
3069
+ </xsl:attribute>
3070
+ </xsl:if>
3071
+ <xsl:if test="@rowspan">
3072
+ <xsl:attribute name="number-rows-spanned">
3073
+ <xsl:value-of select="@rowspan"/>
3074
+ </xsl:attribute>
3075
+ </xsl:if>
3076
+ <fo:block>
3077
+ <xsl:apply-templates/>
3078
+ </fo:block>
3079
+ </fo:table-cell>
3080
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='td']">
3081
+ <fo:table-cell text-align="{@align}" display-align="center" border="solid black 1pt" padding-left="1mm">
3082
+
3083
+
3084
+
3085
+
3086
+
3087
+
3088
+ <xsl:if test="ancestor::*[local-name()='thead']">
3089
+ <xsl:attribute name="font-weight">normal</xsl:attribute>
3090
+ </xsl:if>
3091
+
3092
+ <xsl:if test="@colspan">
3093
+ <xsl:attribute name="number-columns-spanned">
3094
+ <xsl:value-of select="@colspan"/>
3095
+ </xsl:attribute>
3096
+ </xsl:if>
3097
+ <xsl:if test="@rowspan">
3098
+ <xsl:attribute name="number-rows-spanned">
3099
+ <xsl:value-of select="@rowspan"/>
3100
+ </xsl:attribute>
3101
+ </xsl:if>
3102
+ <fo:block>
3103
+ <xsl:apply-templates/>
3104
+ </fo:block>
3105
+ <!-- <xsl:choose>
3106
+ <xsl:when test="count(*) = 1 and *[local-name() = 'p']">
3107
+ <xsl:apply-templates />
3108
+ </xsl:when>
3109
+ <xsl:otherwise>
3110
+ <fo:block>
3111
+ <xsl:apply-templates />
3112
+ </fo:block>
3113
+ </xsl:otherwise>
3114
+ </xsl:choose> -->
3115
+
3116
+
3117
+ </fo:table-cell>
3118
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='table']/*[local-name()='note']"/><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='table']/*[local-name()='note']" mode="process">
3119
+
3120
+
3121
+ <fo:block font-size="10pt" margin-bottom="12pt">
3122
+
3123
+ <fo:inline padding-right="2mm">
3124
+ <xsl:text>NOTE </xsl:text>
3125
+
3126
+
3127
+ <xsl:number format="1 "/>
3128
+
3129
+ </fo:inline>
3130
+ <xsl:apply-templates mode="process"/>
3131
+ </fo:block>
3132
+
3133
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='table']/*[local-name()='note']/*[local-name()='p']" mode="process">
3134
+ <xsl:apply-templates/>
3135
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" name="fn_display">
3136
+ <xsl:variable name="references">
3137
+ <xsl:for-each select="..//*[local-name()='fn'][local-name(..) != 'name']">
3138
+ <fn reference="{@reference}" id="{@reference}_{ancestor::*[@id][1]/@id}">
3139
+
3140
+
3141
+ <xsl:apply-templates/>
3142
+ </fn>
3143
+ </xsl:for-each>
3144
+ </xsl:variable>
3145
+ <xsl:for-each select="xalan:nodeset($references)//fn">
3146
+ <xsl:variable name="reference" select="@reference"/>
3147
+ <xsl:if test="not(preceding-sibling::*[@reference = $reference])"> <!-- only unique reference puts in note-->
3148
+ <fo:block margin-bottom="12pt">
3149
+
3150
+ <fo:inline font-size="80%" padding-right="5mm" id="{@id}">
3151
+
3152
+ <xsl:attribute name="vertical-align">super</xsl:attribute>
3153
+
3154
+
3155
+
3156
+
3157
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
3158
+
3159
+ <xsl:value-of select="@reference"/>
3160
+
3161
+ </fo:inline>
3162
+ <fo:inline>
3163
+
3164
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
3165
+
3166
+ <xsl:apply-templates/>
3167
+ </fo:inline>
3168
+ </fo:block>
3169
+ </xsl:if>
3170
+ </xsl:for-each>
3171
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" name="fn_name_display">
3172
+ <!-- <xsl:variable name="references">
3173
+ <xsl:for-each select="*[local-name()='name']//*[local-name()='fn']">
3174
+ <fn reference="{@reference}" id="{@reference}_{ancestor::*[@id][1]/@id}">
3175
+ <xsl:apply-templates />
3176
+ </fn>
3177
+ </xsl:for-each>
3178
+ </xsl:variable>
3179
+ $references=<xsl:copy-of select="$references"/> -->
3180
+ <xsl:for-each select="*[local-name()='name']//*[local-name()='fn']">
3181
+ <xsl:variable name="reference" select="@reference"/>
3182
+ <fo:block id="{@reference}_{ancestor::*[@id][1]/@id}"><xsl:value-of select="@reference"/></fo:block>
3183
+ <fo:block margin-bottom="12pt">
3184
+ <xsl:apply-templates/>
3185
+ </fo:block>
3186
+ </xsl:for-each>
3187
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" name="fn_display_figure">
3188
+ <xsl:variable name="key_iso">
3189
+ <!-- and (not(@class) or @class !='pseudocode') -->
3190
+ </xsl:variable>
3191
+ <xsl:variable name="references">
3192
+ <xsl:for-each select=".//*[local-name()='fn']">
3193
+ <fn reference="{@reference}" id="{@reference}_{ancestor::*[@id][1]/@id}">
3194
+ <xsl:apply-templates/>
3195
+ </fn>
3196
+ </xsl:for-each>
3197
+ </xsl:variable>
3198
+ <xsl:if test="xalan:nodeset($references)//fn">
3199
+ <fo:block>
3200
+ <fo:table width="95%" table-layout="fixed">
3201
+ <xsl:if test="normalize-space($key_iso) = 'true'">
3202
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
3203
+ </xsl:if>
3204
+ <fo:table-column column-width="15%"/>
3205
+ <fo:table-column column-width="85%"/>
3206
+ <fo:table-body>
3207
+ <xsl:for-each select="xalan:nodeset($references)//fn">
3208
+ <xsl:variable name="reference" select="@reference"/>
3209
+ <xsl:if test="not(preceding-sibling::*[@reference = $reference])"> <!-- only unique reference puts in note-->
3210
+ <fo:table-row>
3211
+ <fo:table-cell>
3212
+ <fo:block>
3213
+ <fo:inline font-size="80%" padding-right="5mm" vertical-align="super" id="{@id}">
3214
+
3215
+ <xsl:value-of select="@reference"/>
3216
+ </fo:inline>
3217
+ </fo:block>
3218
+ </fo:table-cell>
3219
+ <fo:table-cell>
3220
+ <fo:block text-align="justify" margin-bottom="12pt">
3221
+
3222
+ <xsl:if test="normalize-space($key_iso) = 'true'">
3223
+ <xsl:attribute name="margin-bottom">0</xsl:attribute>
3224
+ </xsl:if>
3225
+
3226
+ <xsl:apply-templates/>
3227
+ </fo:block>
3228
+ </fo:table-cell>
3229
+ </fo:table-row>
3230
+ </xsl:if>
3231
+ </xsl:for-each>
3232
+ </fo:table-body>
3233
+ </fo:table>
3234
+ </fo:block>
3235
+ </xsl:if>
3236
+
3237
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='fn']">
3238
+ <!-- <xsl:variable name="namespace" select="substring-before(name(/*), '-')"/> -->
3239
+ <fo:inline font-size="80%" keep-with-previous.within-line="always">
3240
+
3241
+
3242
+ <xsl:attribute name="vertical-align">super</xsl:attribute>
3243
+ <xsl:attribute name="color">blue</xsl:attribute>
3244
+
3245
+
3246
+ <xsl:attribute name="text-decoration">underline</xsl:attribute>
3247
+
3248
+ <fo:basic-link internal-destination="{@reference}_{ancestor::*[@id][1]/@id}" fox:alt-text="{@reference}"> <!-- @reference | ancestor::*[local-name()='clause'][1]/@id-->
3249
+
3250
+ <xsl:value-of select="@reference"/>
3251
+ </fo:basic-link>
3252
+ </fo:inline>
3253
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='fn']/*[local-name()='p']">
3254
+ <fo:inline>
3255
+ <xsl:apply-templates/>
3256
+ </fo:inline>
3257
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='dl']">
3258
+ <xsl:variable name="parent" select="local-name(..)"/>
3259
+
3260
+ <xsl:variable name="key_iso">
3261
+ <!-- and (not(../@class) or ../@class !='pseudocode') -->
3262
+ </xsl:variable>
3263
+
3264
+ <xsl:choose>
3265
+ <xsl:when test="$parent = 'formula' and count(*[local-name()='dt']) = 1"> <!-- only one component -->
3266
+
3267
+
3268
+ <fo:block margin-bottom="12pt" text-align="left">
3269
+
3270
+ <xsl:text>where </xsl:text>
3271
+ <xsl:apply-templates select="*[local-name()='dt']/*"/>
3272
+ <xsl:text/>
3273
+ <xsl:apply-templates select="*[local-name()='dd']/*" mode="inline"/>
3274
+ </fo:block>
3275
+
3276
+ </xsl:when>
3277
+ <xsl:when test="$parent = 'formula'"> <!-- a few components -->
3278
+ <fo:block margin-bottom="12pt" text-align="left">
3279
+
3280
+
3281
+
3282
+ <xsl:text>where</xsl:text>
3283
+ </fo:block>
3284
+ </xsl:when>
3285
+ <xsl:when test="$parent = 'figure' and (not(../@class) or ../@class !='pseudocode')">
3286
+ <fo:block font-weight="bold" text-align="left" margin-bottom="12pt">
3287
+
3288
+ <xsl:text>Key</xsl:text>
3289
+ </fo:block>
3290
+ </xsl:when>
3291
+ </xsl:choose>
3292
+
3293
+ <!-- a few components -->
3294
+ <xsl:if test="not($parent = 'formula' and count(*[local-name()='dt']) = 1)">
3295
+ <fo:block>
3296
+
3297
+
3298
+
3299
+ <xsl:if test="not(.//*[local-name()='dt']//*[local-name()='stem'])">
3300
+ <xsl:attribute name="margin-left">5mm</xsl:attribute>
3301
+ </xsl:if>
3302
+
3303
+
3304
+ <fo:block>
3305
+
3306
+ <xsl:if test="not(.//*[local-name()='dt']//*[local-name()='stem'])">
3307
+ <xsl:attribute name="margin-left">-2.5mm</xsl:attribute>
3308
+ </xsl:if>
3309
+
3310
+ <!-- create virtual html table for dl/[dt and dd] -->
3311
+ <xsl:variable name="html-table">
3312
+ <xsl:variable name="ns" select="substring-before(name(/*), '-')"/>
3313
+ <xsl:element name="{$ns}:table">
3314
+ <tbody>
3315
+ <xsl:apply-templates mode="dl"/>
3316
+ </tbody>
3317
+ </xsl:element>
3318
+ </xsl:variable>
3319
+ <!-- html-table<xsl:copy-of select="$html-table"/> -->
3320
+ <xsl:variable name="colwidths">
3321
+ <xsl:call-template name="calculate-column-widths">
3322
+ <xsl:with-param name="cols-count" select="2"/>
3323
+ <xsl:with-param name="table" select="$html-table"/>
3324
+ </xsl:call-template>
3325
+ </xsl:variable>
3326
+ <!-- colwidths=<xsl:value-of select="$colwidths"/> -->
3327
+
3328
+ <fo:table width="95%" table-layout="fixed">
3329
+ <xsl:choose>
3330
+ <xsl:when test="normalize-space($key_iso) = 'true' and $parent = 'formula'">
3331
+ <!-- <xsl:attribute name="font-size">11pt</xsl:attribute> -->
3332
+ </xsl:when>
3333
+ <xsl:when test="normalize-space($key_iso) = 'true'">
3334
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
3335
+ </xsl:when>
3336
+ </xsl:choose>
3337
+ <xsl:choose>
3338
+ <xsl:when test="ancestor::*[local-name()='dl']"><!-- second level, i.e. inlined table -->
3339
+ <fo:table-column column-width="50%"/>
3340
+ <fo:table-column column-width="50%"/>
3341
+ </xsl:when>
3342
+ <xsl:otherwise>
3343
+ <xsl:choose>
3344
+ <!-- <xsl:when test="xalan:nodeset($colwidths)/column[1] div xalan:nodeset($colwidths)/column[2] &gt; 1.7">
3345
+ <fo:table-column column-width="60%"/>
3346
+ <fo:table-column column-width="40%"/>
3347
+ </xsl:when> -->
3348
+ <xsl:when test="xalan:nodeset($colwidths)/column[1] div xalan:nodeset($colwidths)/column[2] &gt; 1.3">
3349
+ <fo:table-column column-width="50%"/>
3350
+ <fo:table-column column-width="50%"/>
3351
+ </xsl:when>
3352
+ <xsl:when test="xalan:nodeset($colwidths)/column[1] div xalan:nodeset($colwidths)/column[2] &gt; 0.5">
3353
+ <fo:table-column column-width="40%"/>
3354
+ <fo:table-column column-width="60%"/>
3355
+ </xsl:when>
3356
+ <xsl:otherwise>
3357
+ <xsl:for-each select="xalan:nodeset($colwidths)//column">
3358
+ <xsl:choose>
3359
+ <xsl:when test=". = 1">
3360
+ <fo:table-column column-width="proportional-column-width(2)"/>
3361
+ </xsl:when>
3362
+ <xsl:otherwise>
3363
+ <fo:table-column column-width="proportional-column-width({.})"/>
3364
+ </xsl:otherwise>
3365
+ </xsl:choose>
3366
+ </xsl:for-each>
3367
+ </xsl:otherwise>
3368
+ </xsl:choose>
3369
+ <!-- <fo:table-column column-width="15%"/>
3370
+ <fo:table-column column-width="85%"/> -->
3371
+ </xsl:otherwise>
3372
+ </xsl:choose>
3373
+ <fo:table-body>
3374
+ <xsl:apply-templates>
3375
+ <xsl:with-param name="key_iso" select="normalize-space($key_iso)"/>
3376
+ </xsl:apply-templates>
3377
+ </fo:table-body>
3378
+ </fo:table>
3379
+ </fo:block>
3380
+ </fo:block>
3381
+ </xsl:if>
3382
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='dl']/*[local-name()='note']">
3383
+ <xsl:param name="key_iso"/>
3384
+
3385
+ <!-- <tr>
3386
+ <td>NOTE</td>
3387
+ <td>
3388
+ <xsl:apply-templates />
3389
+ </td>
3390
+ </tr>
3391
+ -->
3392
+ <fo:table-row>
3393
+ <fo:table-cell>
3394
+ <fo:block margin-top="6pt">
3395
+ <xsl:if test="normalize-space($key_iso) = 'true'">
3396
+ <xsl:attribute name="margin-top">0</xsl:attribute>
3397
+ </xsl:if>
3398
+ NOTE
3399
+ </fo:block>
3400
+ </fo:table-cell>
3401
+ <fo:table-cell>
3402
+ <fo:block>
3403
+ <xsl:apply-templates/>
3404
+ </fo:block>
3405
+ </fo:table-cell>
3406
+ </fo:table-row>
3407
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='dt']" mode="dl">
3408
+ <tr>
3409
+ <td>
3410
+ <xsl:apply-templates/>
3411
+ </td>
3412
+ <td>
3413
+
3414
+ <xsl:if test="local-name(*[1]) != 'stem'">
3415
+ <xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]" mode="process"/>
3416
+ </xsl:if>
3417
+
3418
+
3419
+ </td>
3420
+ </tr>
3421
+
3422
+ <xsl:if test="local-name(*[1]) = 'stem'">
3423
+ <tr>
3424
+ <td>
3425
+ <xsl:text> </xsl:text>
3426
+ </td>
3427
+ <td>
3428
+ <xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]" mode="dl_process"/>
3429
+ </td>
3430
+ </tr>
3431
+ </xsl:if>
3432
+
3433
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='dt']">
3434
+ <xsl:param name="key_iso"/>
3435
+
3436
+ <fo:table-row>
3437
+ <fo:table-cell>
3438
+ <fo:block margin-top="6pt">
3439
+ <xsl:if test="normalize-space($key_iso) = 'true'">
3440
+ <xsl:attribute name="margin-top">0</xsl:attribute>
3441
+
3442
+ </xsl:if>
3443
+
3444
+ <xsl:attribute name="margin-top">0</xsl:attribute>
3445
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
3446
+
3447
+
3448
+ <xsl:apply-templates/>
3449
+ </fo:block>
3450
+ </fo:table-cell>
3451
+ <fo:table-cell>
3452
+ <fo:block>
3453
+
3454
+
3455
+ <xsl:if test="local-name(*[1]) != 'stem'">
3456
+ <xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]" mode="process"/>
3457
+ </xsl:if>
3458
+
3459
+
3460
+ </fo:block>
3461
+ </fo:table-cell>
3462
+ </fo:table-row>
3463
+
3464
+ <xsl:if test="local-name(*[1]) = 'stem'">
3465
+ <fo:table-row>
3466
+ <fo:table-cell>
3467
+ <fo:block margin-top="6pt">
3468
+ <xsl:if test="normalize-space($key_iso) = 'true'">
3469
+ <xsl:attribute name="margin-top">0</xsl:attribute>
3470
+ </xsl:if>
3471
+ <xsl:text> </xsl:text>
3472
+ </fo:block>
3473
+ </fo:table-cell>
3474
+ <fo:table-cell>
3475
+ <fo:block>
3476
+ <xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]" mode="process"/>
3477
+ </fo:block>
3478
+ </fo:table-cell>
3479
+ </fo:table-row>
3480
+ </xsl:if>
3481
+
3482
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='dd']" mode="dl"/><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='dd']" mode="dl_process">
3483
+ <xsl:apply-templates/>
3484
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='dd']"/><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='dd']" mode="process">
3485
+ <xsl:apply-templates/>
3486
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='dd']/*[local-name()='p']" mode="inline">
3487
+ <fo:inline><xsl:apply-templates/></fo:inline>
3488
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='em']">
3489
+ <fo:inline font-style="italic">
3490
+ <xsl:apply-templates/>
3491
+ </fo:inline>
3492
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='strong']">
3493
+ <fo:inline font-weight="bold">
3494
+ <xsl:apply-templates/>
3495
+ </fo:inline>
3496
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='sup']">
3497
+ <fo:inline font-size="80%" vertical-align="super">
3498
+ <xsl:apply-templates/>
3499
+ </fo:inline>
3500
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='sub']">
3501
+ <fo:inline font-size="80%" vertical-align="sub">
3502
+ <xsl:apply-templates/>
3503
+ </fo:inline>
3504
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='tt']">
3505
+ <fo:inline font-family="Courier" font-size="10pt">
3506
+ <xsl:apply-templates/>
3507
+ </fo:inline>
3508
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='del']">
3509
+ <fo:inline font-size="10pt" color="red" text-decoration="line-through">
3510
+ <xsl:apply-templates/>
3511
+ </fo:inline>
3512
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="text()[ancestor::*[local-name()='smallcap']]">
3513
+ <xsl:variable name="text" select="normalize-space(.)"/>
3514
+ <fo:inline font-size="75%">
3515
+ <xsl:if test="string-length($text) &gt; 0">
3516
+ <xsl:call-template name="recursiveSmallCaps">
3517
+ <xsl:with-param name="text" select="$text"/>
3518
+ </xsl:call-template>
3519
+ </xsl:if>
3520
+ </fo:inline>
3521
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" name="recursiveSmallCaps">
3522
+ <xsl:param name="text"/>
3523
+ <xsl:variable name="char" select="substring($text,1,1)"/>
3524
+ <xsl:variable name="upperCase" select="translate($char, $lower, $upper)"/>
3525
+ <xsl:choose>
3526
+ <xsl:when test="$char=$upperCase">
3527
+ <fo:inline font-size="{100 div 0.75}%">
3528
+ <xsl:value-of select="$upperCase"/>
3529
+ </fo:inline>
3530
+ </xsl:when>
3531
+ <xsl:otherwise>
3532
+ <xsl:value-of select="$upperCase"/>
3533
+ </xsl:otherwise>
3534
+ </xsl:choose>
3535
+ <xsl:if test="string-length($text) &gt; 1">
3536
+ <xsl:call-template name="recursiveSmallCaps">
3537
+ <xsl:with-param name="text" select="substring($text,2)"/>
3538
+ </xsl:call-template>
3539
+ </xsl:if>
3540
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" name="tokenize">
3541
+ <xsl:param name="text"/>
3542
+ <xsl:param name="separator" select="' '"/>
3543
+ <xsl:choose>
3544
+ <xsl:when test="not(contains($text, $separator))">
3545
+ <word>
3546
+ <xsl:variable name="str_no_en_chars" select="normalize-space(translate($text, $en_chars, ''))"/>
3547
+ <xsl:variable name="len_str_no_en_chars" select="string-length($str_no_en_chars)"/>
3548
+ <xsl:variable name="len_str_tmp" select="string-length(normalize-space($text))"/>
3549
+ <xsl:variable name="len_str">
3550
+ <xsl:choose>
3551
+ <xsl:when test="normalize-space(translate($text, $upper, '')) = ''"> <!-- english word in CAPITAL letters -->
3552
+ <xsl:value-of select="$len_str_tmp * 1.5"/>
3553
+ </xsl:when>
3554
+ <xsl:otherwise>
3555
+ <xsl:value-of select="$len_str_tmp"/>
3556
+ </xsl:otherwise>
3557
+ </xsl:choose>
3558
+ </xsl:variable>
3559
+
3560
+ <!-- <xsl:if test="$len_str_no_en_chars div $len_str &gt; 0.8">
3561
+ <xsl:message>
3562
+ div=<xsl:value-of select="$len_str_no_en_chars div $len_str"/>
3563
+ len_str=<xsl:value-of select="$len_str"/>
3564
+ len_str_no_en_chars=<xsl:value-of select="$len_str_no_en_chars"/>
3565
+ </xsl:message>
3566
+ </xsl:if> -->
3567
+ <!-- <len_str_no_en_chars><xsl:value-of select="$len_str_no_en_chars"/></len_str_no_en_chars>
3568
+ <len_str><xsl:value-of select="$len_str"/></len_str> -->
3569
+ <xsl:choose>
3570
+ <xsl:when test="$len_str_no_en_chars div $len_str &gt; 0.8"> <!-- means non-english string -->
3571
+ <xsl:value-of select="$len_str - $len_str_no_en_chars"/>
3572
+ </xsl:when>
3573
+ <xsl:otherwise>
3574
+ <xsl:value-of select="$len_str"/>
3575
+ </xsl:otherwise>
3576
+ </xsl:choose>
3577
+ </word>
3578
+ </xsl:when>
3579
+ <xsl:otherwise>
3580
+ <word>
3581
+ <xsl:value-of select="string-length(normalize-space(substring-before($text, $separator)))"/>
3582
+ </word>
3583
+ <xsl:call-template name="tokenize">
3584
+ <xsl:with-param name="text" select="substring-after($text, $separator)"/>
3585
+ </xsl:call-template>
3586
+ </xsl:otherwise>
3587
+ </xsl:choose>
3588
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" name="max_length">
3589
+ <xsl:param name="words"/>
3590
+ <xsl:for-each select="$words//word">
3591
+ <xsl:sort select="." data-type="number" order="descending"/>
3592
+ <xsl:if test="position()=1">
3593
+ <xsl:value-of select="."/>
3594
+ </xsl:if>
3595
+ </xsl:for-each>
3596
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" name="add-zero-spaces">
3597
+ <xsl:param name="text" select="."/>
3598
+ <xsl:variable name="zero-space-after-chars">-</xsl:variable>
3599
+ <xsl:variable name="zero-space-after-dot">.</xsl:variable>
3600
+ <xsl:variable name="zero-space-after-colon">:</xsl:variable>
3601
+ <xsl:variable name="zero-space-after-equal">=</xsl:variable>
3602
+ <xsl:variable name="zero-space">​</xsl:variable>
3603
+ <xsl:choose>
3604
+ <xsl:when test="contains($text, $zero-space-after-chars)">
3605
+ <xsl:value-of select="substring-before($text, $zero-space-after-chars)"/>
3606
+ <xsl:value-of select="$zero-space-after-chars"/>
3607
+ <xsl:value-of select="$zero-space"/>
3608
+ <xsl:call-template name="add-zero-spaces">
3609
+ <xsl:with-param name="text" select="substring-after($text, $zero-space-after-chars)"/>
3610
+ </xsl:call-template>
3611
+ </xsl:when>
3612
+ <xsl:when test="contains($text, $zero-space-after-dot)">
3613
+ <xsl:value-of select="substring-before($text, $zero-space-after-dot)"/>
3614
+ <xsl:value-of select="$zero-space-after-dot"/>
3615
+ <xsl:value-of select="$zero-space"/>
3616
+ <xsl:call-template name="add-zero-spaces">
3617
+ <xsl:with-param name="text" select="substring-after($text, $zero-space-after-dot)"/>
3618
+ </xsl:call-template>
3619
+ </xsl:when>
3620
+ <xsl:when test="contains($text, $zero-space-after-colon)">
3621
+ <xsl:value-of select="substring-before($text, $zero-space-after-colon)"/>
3622
+ <xsl:value-of select="$zero-space-after-colon"/>
3623
+ <xsl:value-of select="$zero-space"/>
3624
+ <xsl:call-template name="add-zero-spaces">
3625
+ <xsl:with-param name="text" select="substring-after($text, $zero-space-after-colon)"/>
3626
+ </xsl:call-template>
3627
+ </xsl:when>
3628
+ <xsl:when test="contains($text, $zero-space-after-equal)">
3629
+ <xsl:value-of select="substring-before($text, $zero-space-after-equal)"/>
3630
+ <xsl:value-of select="$zero-space-after-equal"/>
3631
+ <xsl:value-of select="$zero-space"/>
3632
+ <xsl:call-template name="add-zero-spaces">
3633
+ <xsl:with-param name="text" select="substring-after($text, $zero-space-after-equal)"/>
3634
+ </xsl:call-template>
3635
+ </xsl:when>
3636
+ <xsl:otherwise>
3637
+ <xsl:value-of select="$text"/>
3638
+ </xsl:otherwise>
3639
+ </xsl:choose>
3640
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" name="add-zero-spaces-equal">
3641
+ <xsl:param name="text" select="."/>
3642
+ <xsl:variable name="zero-space-after-equals">==========</xsl:variable>
3643
+ <xsl:variable name="zero-space-after-equal">=</xsl:variable>
3644
+ <xsl:variable name="zero-space">​</xsl:variable>
3645
+ <xsl:choose>
3646
+ <xsl:when test="contains($text, $zero-space-after-equals)">
3647
+ <xsl:value-of select="substring-before($text, $zero-space-after-equals)"/>
3648
+ <xsl:value-of select="$zero-space-after-equals"/>
3649
+ <xsl:value-of select="$zero-space"/>
3650
+ <xsl:call-template name="add-zero-spaces-equal">
3651
+ <xsl:with-param name="text" select="substring-after($text, $zero-space-after-equals)"/>
3652
+ </xsl:call-template>
3653
+ </xsl:when>
3654
+ <xsl:when test="contains($text, $zero-space-after-equal)">
3655
+ <xsl:value-of select="substring-before($text, $zero-space-after-equal)"/>
3656
+ <xsl:value-of select="$zero-space-after-equal"/>
3657
+ <xsl:value-of select="$zero-space"/>
3658
+ <xsl:call-template name="add-zero-spaces-equal">
3659
+ <xsl:with-param name="text" select="substring-after($text, $zero-space-after-equal)"/>
3660
+ </xsl:call-template>
3661
+ </xsl:when>
3662
+ <xsl:otherwise>
3663
+ <xsl:value-of select="$text"/>
3664
+ </xsl:otherwise>
3665
+ </xsl:choose>
3666
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" name="getSimpleTable">
3667
+ <xsl:variable name="simple-table">
3668
+
3669
+ <!-- Step 1. colspan processing -->
3670
+ <xsl:variable name="simple-table-colspan">
3671
+ <tbody>
3672
+ <xsl:apply-templates mode="simple-table-colspan"/>
3673
+ </tbody>
3674
+ </xsl:variable>
3675
+
3676
+ <!-- Step 2. rowspan processing -->
3677
+ <xsl:variable name="simple-table-rowspan">
3678
+ <xsl:apply-templates select="xalan:nodeset($simple-table-colspan)" mode="simple-table-rowspan"/>
3679
+ </xsl:variable>
3680
+
3681
+ <xsl:copy-of select="xalan:nodeset($simple-table-rowspan)"/>
3682
+
3683
+ <!-- <xsl:choose>
3684
+ <xsl:when test="current()//*[local-name()='th'][@colspan] or current()//*[local-name()='td'][@colspan] ">
3685
+
3686
+ </xsl:when>
3687
+ <xsl:otherwise>
3688
+ <xsl:copy-of select="current()"/>
3689
+ </xsl:otherwise>
3690
+ </xsl:choose> -->
3691
+ </xsl:variable>
3692
+ <xsl:copy-of select="$simple-table"/>
3693
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='thead'] | *[local-name()='tbody']" mode="simple-table-colspan">
3694
+ <xsl:apply-templates mode="simple-table-colspan"/>
3695
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='fn']" mode="simple-table-colspan"/><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='th'] | *[local-name()='td']" mode="simple-table-colspan">
3696
+ <xsl:choose>
3697
+ <xsl:when test="@colspan">
3698
+ <xsl:variable name="td">
3699
+ <xsl:element name="td">
3700
+ <xsl:attribute name="divide"><xsl:value-of select="@colspan"/></xsl:attribute>
3701
+ <xsl:apply-templates select="@*" mode="simple-table-colspan"/>
3702
+ <xsl:apply-templates mode="simple-table-colspan"/>
3703
+ </xsl:element>
3704
+ </xsl:variable>
3705
+ <xsl:call-template name="repeatNode">
3706
+ <xsl:with-param name="count" select="@colspan"/>
3707
+ <xsl:with-param name="node" select="$td"/>
3708
+ </xsl:call-template>
3709
+ </xsl:when>
3710
+ <xsl:otherwise>
3711
+ <xsl:element name="td">
3712
+ <xsl:apply-templates select="@*" mode="simple-table-colspan"/>
3713
+ <xsl:apply-templates mode="simple-table-colspan"/>
3714
+ </xsl:element>
3715
+ </xsl:otherwise>
3716
+ </xsl:choose>
3717
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="@colspan" mode="simple-table-colspan"/><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='tr']" mode="simple-table-colspan">
3718
+ <xsl:element name="tr">
3719
+ <xsl:apply-templates select="@*" mode="simple-table-colspan"/>
3720
+ <xsl:apply-templates mode="simple-table-colspan"/>
3721
+ </xsl:element>
3722
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="@*|node()" mode="simple-table-colspan">
3723
+ <xsl:copy>
3724
+ <xsl:apply-templates select="@*|node()" mode="simple-table-colspan"/>
3725
+ </xsl:copy>
3726
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" name="repeatNode">
3727
+ <xsl:param name="count"/>
3728
+ <xsl:param name="node"/>
3729
+
3730
+ <xsl:if test="$count &gt; 0">
3731
+ <xsl:call-template name="repeatNode">
3732
+ <xsl:with-param name="count" select="$count - 1"/>
3733
+ <xsl:with-param name="node" select="$node"/>
3734
+ </xsl:call-template>
3735
+ <xsl:copy-of select="$node"/>
3736
+ </xsl:if>
3737
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="@*|node()" mode="simple-table-rowspan">
3738
+ <xsl:copy>
3739
+ <xsl:apply-templates select="@*|node()" mode="simple-table-rowspan"/>
3740
+ </xsl:copy>
3741
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="tbody" mode="simple-table-rowspan">
3742
+ <xsl:copy>
3743
+ <xsl:copy-of select="tr[1]"/>
3744
+ <xsl:apply-templates select="tr[2]" mode="simple-table-rowspan">
3745
+ <xsl:with-param name="previousRow" select="tr[1]"/>
3746
+ </xsl:apply-templates>
3747
+ </xsl:copy>
3748
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="tr" mode="simple-table-rowspan">
3749
+ <xsl:param name="previousRow"/>
3750
+ <xsl:variable name="currentRow" select="."/>
3751
+
3752
+ <xsl:variable name="normalizedTDs">
3753
+ <xsl:for-each select="xalan:nodeset($previousRow)//td">
3754
+ <xsl:choose>
3755
+ <xsl:when test="@rowspan &gt; 1">
3756
+ <xsl:copy>
3757
+ <xsl:attribute name="rowspan">
3758
+ <xsl:value-of select="@rowspan - 1"/>
3759
+ </xsl:attribute>
3760
+ <xsl:copy-of select="@*[not(name() = 'rowspan')]"/>
3761
+ <xsl:copy-of select="node()"/>
3762
+ </xsl:copy>
3763
+ </xsl:when>
3764
+ <xsl:otherwise>
3765
+ <xsl:copy-of select="$currentRow/td[1 + count(current()/preceding-sibling::td[not(@rowspan) or (@rowspan = 1)])]"/>
3766
+ </xsl:otherwise>
3767
+ </xsl:choose>
3768
+ </xsl:for-each>
3769
+ </xsl:variable>
3770
+
3771
+ <xsl:variable name="newRow">
3772
+ <xsl:copy>
3773
+ <xsl:copy-of select="$currentRow/@*"/>
3774
+ <xsl:copy-of select="xalan:nodeset($normalizedTDs)"/>
3775
+ </xsl:copy>
3776
+ </xsl:variable>
3777
+ <xsl:copy-of select="$newRow"/>
3778
+
3779
+ <xsl:apply-templates select="following-sibling::tr[1]" mode="simple-table-rowspan">
3780
+ <xsl:with-param name="previousRow" select="$newRow"/>
3781
+ </xsl:apply-templates>
3782
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" name="getLang">
3783
+ <xsl:variable name="language" select="//*[local-name()='bibdata']//*[local-name()='language']"/>
3784
+ <xsl:choose>
3785
+ <xsl:when test="$language = 'English'">en</xsl:when>
3786
+ <xsl:otherwise><xsl:value-of select="$language"/></xsl:otherwise>
3787
+ </xsl:choose>
3788
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" name="capitalizeWords">
3789
+ <xsl:param name="str"/>
3790
+ <xsl:variable name="str2" select="translate($str, '-', ' ')"/>
3791
+ <xsl:choose>
3792
+ <xsl:when test="contains($str2, ' ')">
3793
+ <xsl:variable name="substr" select="substring-before($str2, ' ')"/>
3794
+ <xsl:value-of select="translate(substring($substr, 1, 1), $lower, $upper)"/>
3795
+ <xsl:value-of select="substring($substr, 2)"/>
3796
+ <xsl:text> </xsl:text>
3797
+ <xsl:call-template name="capitalizeWords">
3798
+ <xsl:with-param name="str" select="substring-after($str2, ' ')"/>
3799
+ </xsl:call-template>
3800
+ </xsl:when>
3801
+ <xsl:otherwise>
3802
+ <xsl:value-of select="translate(substring($str2, 1, 1), $lower, $upper)"/>
3803
+ <xsl:value-of select="substring($str2, 2)"/>
3804
+ </xsl:otherwise>
3805
+ </xsl:choose>
3806
+ </xsl:template></xsl:stylesheet>