metanorma-nist 1.0.4 → 1.0.9

Sign up to get free protection for your applications and to get access to all the features.
@@ -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 {
@@ -693,7 +693,7 @@ div.Admonition {
693
693
  mso-ansi-language:EN-AU;
694
694
  }
695
695
 
696
- div Admonotion p {
696
+ div.Admonition p {
697
697
  margin-top:6.0pt;margin-right:0cm;
698
698
  margin-bottom:6.0pt;margin-left:0cm;text-align:left;mso-pagination:widow-orphan;
699
699
  mso-hyphenate:auto;background:#dddddd;mso-layout-grid-align:auto;mso-vertical-align-alt:
@@ -643,7 +643,7 @@ div.Admonition {
643
643
  mso-ansi-language:EN-AU;
644
644
  }
645
645
 
646
- div Admonotion p {
646
+ div.Admonition p {
647
647
  margin-top:6.0pt;margin-right:0cm;
648
648
  margin-bottom:6.0pt;margin-left:0cm;text-align:left;mso-pagination:widow-orphan;
649
649
  mso-hyphenate:auto;background:#dddddd;mso-layout-grid-align:auto;mso-vertical-align-alt:
@@ -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'>
@@ -20,9 +20,11 @@ module IsoDoc
20
20
 
21
21
  def default_fonts(options)
22
22
  {
23
- bodyfont: (options[:script] == "Hans" ? '"SimSun",serif' : '"Libre Baskerville",serif'),
24
- headerfont: (options[:script] == "Hans" ? '"SimHei",sans-serif' : '"Libre Baskerville",serif'),
25
- monospacefont: '"Space Mono",monospace'
23
+ bodyfont: (options[:script] == "Hans" ? '"SimSun",serif' :
24
+ '"Libre Baskerville",serif'),
25
+ headerfont: (options[:script] == "Hans" ? '"SimHei",sans-serif' :
26
+ '"Libre Baskerville",serif'),
27
+ monospacefont: '"Space Mono",monospace'
26
28
  }
27
29
  end
28
30
 
@@ -48,28 +50,34 @@ module IsoDoc
48
50
  end
49
51
 
50
52
  def toclevel
51
- ret = toclevel_classes.map { |l| "#{l}:not(:empty):not(.TermNum):not(.noTOC):not(.AbstractTitle):not(.IntroTitle):not(.ForewordTitle)" }
52
- <<~HEAD.freeze
53
+ ret = toclevel_classes.map do |l|
54
+ "#{l}:not(:empty):not(.TermNum):not(.noTOC):not(.AbstractTitle):"\
55
+ "not(.IntroTitle):not(.ForewordTitle)"
56
+ end
57
+ <<~HEAD.freeze
53
58
  function toclevel() { return "#{ret.join(',')}";}
54
- HEAD
55
- end
59
+ HEAD
60
+ end
56
61
 
57
62
  def html_toc(docxml)
58
- idx = docxml.at("//div[@id = 'toc']") or return docxml
59
- toc = "<ul>"
60
- path = toclevel_classes.map do |l|
61
- "//main//#{l}[not(@class = 'TermNum')][not(@class = 'noTOC')][not(text())][not(@class = 'AbstractTitle')][not(@class = 'IntroTitle')][not(@class = 'ForewordTitle')]"
62
- end
63
- docxml.xpath(path.join(" | ")).each_with_index do |h, tocidx|
64
- h["id"] ||= "toc#{tocidx}"
65
- toc += html_toc_entry(h.name, h)
63
+ idx = docxml.at("//div[@id = 'toc']") or return docxml
64
+ toc = "<ul>"
65
+ path = toclevel_classes.map do |l|
66
+ "//main//#{l}[not(@class = 'TermNum')][not(@class = 'noTOC')]"\
67
+ "[not(text())][not(@class = 'AbstractTitle')]"\
68
+ "[not(@class = 'IntroTitle')][not(@class = 'ForewordTitle')]"
69
+ end
70
+ docxml.xpath(path.join(" | ")).each_with_index do |h, tocidx|
71
+ h["id"] ||= "toc#{tocidx}"
72
+ toc += html_toc_entry(h.name, h)
73
+ end
74
+ idx.children = "#{toc}</ul>"
75
+ docxml
66
76
  end
67
- idx.children = "#{toc}</ul>"
68
- docxml
69
- end
70
77
 
71
78
  def make_body(xml, docxml)
72
- body_attr = { lang: "EN-US", link: "blue", vlink: "#954F72", "xml:lang": "EN-US", class: "container" }
79
+ body_attr = { lang: "EN-US", link: "blue", vlink: "#954F72",
80
+ "xml:lang": "EN-US", class: "container" }
73
81
  xml.body **body_attr do |body|
74
82
  make_body1(body, docxml)
75
83
  make_body2(body, docxml)
@@ -117,56 +125,17 @@ module IsoDoc
117
125
  end
118
126
  end
119
127
 
120
- def bibliography(isoxml, out)
121
- f = isoxml.at(ns("//bibliography/clause | //bibliography/references")) || return
122
- page_break(out)
123
- isoxml.xpath(ns("//bibliography/clause | //bibliography/references")).each do |f|
124
- out.div do |div|
125
- div.h1 **{ class: "Section3" } do |h1|
126
- if @bibliographycount == 1 then h1 << "References"
127
- else
128
- f&.at(ns("./title"))&.children.each { |n| parse(n, h1) }
129
- end
130
- end
131
- biblio_list(f, div, false)
132
- end
133
- end
134
- end
135
-
136
- def keywords(_docxml, out)
137
- kw = @meta.get[:keywords]
138
- kw.empty? and return
139
- out.div **{ class: "Section3" } do |div|
140
- out.div do |div|
141
- clause_name(nil, "Keywords", div, class: "IntroTitle")
142
- div.p kw.sort.join("; ")
143
- end
144
- end
145
- end
146
-
147
128
  def termdef_parse(node, out)
148
- pref = node.at(ns("./preferred"))
149
129
  out.dl **{ class: "terms_dl" } do |dl|
150
130
  dl.dt do |dt|
151
- pref.children.each { |n| parse(n, dt) }
131
+ term_and_termref_parse(node, dt)
152
132
  end
153
- set_termdomain("")
154
133
  dl.dd do |dd|
155
- node.children.each { |n| parse(n, dd) unless n.name == "preferred" }
134
+ term_rest_parse(node, dd)
156
135
  end
157
136
  end
158
137
  end
159
138
 
160
- def term_cleanup(docxml)
161
- docxml.xpath("//table[@class = 'terms_dl']").each do |d|
162
- prev = d.previous_element
163
- next unless prev and prev.name == "table" and prev["class"] == "terms_dl"
164
- d.children.each { |n| prev.add_child(n.remove) }
165
- d.remove
166
- end
167
- docxml
168
- end
169
-
170
139
  include BaseConvert
171
140
  end
172
141
  end
@@ -116,18 +116,6 @@ module IsoDoc
116
116
  Date.parse(isodate).strftime("%m-%d-%Y")
117
117
  end
118
118
 
119
- def MMMddyyyy(isodate)
120
- return nil if isodate.nil?
121
- isodate += "-01" if /^\d\d\d\d-\d\d$/.match(isodate)
122
- Date.parse(isodate).strftime("%B %d, %Y")
123
- end
124
-
125
- def keywords(ixml, _out)
126
- keywords = []
127
- ixml.xpath(ns("//bibdata/keyword")).each { |kw| keywords << kw.text }
128
- set(:keywords, keywords)
129
- end
130
-
131
119
  def commentperiod(ixml, _out)
132
120
  from = ixml.at(ns("//bibdata/ext/commentperiod/from"))&.text
133
121
  to = ixml.at(ns("//bibdata/ext/commentperiod/to"))&.text
@@ -147,7 +135,8 @@ module IsoDoc
147
135
 
148
136
  def relations1(ixml, type)
149
137
  ret = []
150
- ixml.xpath(ns("//bibdata/relation[@type = '#{type}']")).each do |x|
138
+ ixml.xpath(ns("//bibdata/relation[@type = '#{type}'][not(xmlns:description)] | "\
139
+ "//bibdata/relation[description = '#{type}']")).each do |x|
151
140
  id = x&.at(ns(".//docidentifier"))&.text and ret << id
152
141
  end
153
142
  ret
@@ -0,0 +1,3936 @@
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:attribute-set 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="link-style">
2737
+
2738
+
2739
+ </xsl:attribute-set><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()">
2740
+ <xsl:value-of select="."/>
2741
+ </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']">
2742
+ <xsl:value-of select="$linebreak"/>
2743
+ </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() | *[local-name()='dt']//text() | *[local-name()='dd']//text()" priority="1">
2744
+ <xsl:call-template name="add-zero-spaces"/>
2745
+ </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']">
2746
+
2747
+ <xsl:variable name="simple-table">
2748
+ <!-- <xsl:copy> -->
2749
+ <xsl:call-template name="getSimpleTable"/>
2750
+ <!-- </xsl:copy> -->
2751
+ </xsl:variable>
2752
+
2753
+ <!-- DEBUG -->
2754
+ <!-- SourceTable=<xsl:copy-of select="current()"/>EndSourceTable -->
2755
+ <!-- Simpletable=<xsl:copy-of select="$simple-table"/>EndSimpltable -->
2756
+
2757
+ <!-- <xsl:variable name="namespace" select="substring-before(name(/*), '-')"/> -->
2758
+
2759
+ <!-- <xsl:if test="$namespace = 'iso'">
2760
+ <fo:block space-before="6pt">&#xA0;</fo:block>
2761
+ </xsl:if> -->
2762
+
2763
+ <xsl:choose>
2764
+ <xsl:when test="@unnumbered = 'true'"/>
2765
+ <xsl:otherwise>
2766
+
2767
+
2768
+
2769
+ <fo:block font-weight="bold" text-align="center" margin-bottom="6pt" keep-with-next="always">
2770
+
2771
+
2772
+
2773
+ <xsl:attribute name="font-family">Arial</xsl:attribute>
2774
+ <xsl:attribute name="font-size">9pt</xsl:attribute>
2775
+
2776
+
2777
+
2778
+
2779
+
2780
+ <xsl:text>Table </xsl:text>
2781
+ <xsl:choose>
2782
+ <xsl:when test="ancestor::*[local-name()='executivesummary']"> <!-- NIST -->
2783
+ <xsl:text>ES-</xsl:text><xsl:number format="1" count="*[local-name()='executivesummary']//*[local-name()='table'][not(@unnumbered) or @unnumbered != 'true']"/>
2784
+ </xsl:when>
2785
+ <xsl:when test="ancestor::*[local-name()='annex']">
2786
+
2787
+
2788
+
2789
+
2790
+
2791
+ <xsl:variable name="annex-id" select="ancestor::*[local-name()='annex']/@id"/>
2792
+ <xsl:number format="A-" count="*[local-name()='annex']"/>
2793
+ <xsl:number format="1" level="any" count="*[local-name()='table'][not(@unnumbered) or @unnumbered != 'true'][ancestor::*[local-name()='annex'][@id = $annex-id]]"/>
2794
+
2795
+
2796
+
2797
+
2798
+ </xsl:when>
2799
+ <xsl:otherwise>
2800
+
2801
+
2802
+ <xsl:number format="A." count="*[local-name()='annex']"/>
2803
+ <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']"/>
2804
+
2805
+ </xsl:otherwise>
2806
+ </xsl:choose>
2807
+ <xsl:if test="*[local-name()='name']">
2808
+
2809
+
2810
+
2811
+ <xsl:text> — </xsl:text>
2812
+
2813
+ <xsl:apply-templates select="*[local-name()='name']" mode="process"/>
2814
+ </xsl:if>
2815
+ </fo:block>
2816
+
2817
+
2818
+ </xsl:otherwise>
2819
+ </xsl:choose>
2820
+
2821
+ <xsl:variable name="cols-count" select="count(xalan:nodeset($simple-table)//tr[1]/td)"/>
2822
+
2823
+ <!-- <xsl:variable name="cols-count">
2824
+ <xsl:choose>
2825
+ <xsl:when test="*[local-name()='thead']">
2826
+ <xsl:call-template name="calculate-columns-numbers">
2827
+ <xsl:with-param name="table-row" select="*[local-name()='thead']/*[local-name()='tr'][1]"/>
2828
+ </xsl:call-template>
2829
+ </xsl:when>
2830
+ <xsl:otherwise>
2831
+ <xsl:call-template name="calculate-columns-numbers">
2832
+ <xsl:with-param name="table-row" select="*[local-name()='tbody']/*[local-name()='tr'][1]"/>
2833
+ </xsl:call-template>
2834
+ </xsl:otherwise>
2835
+ </xsl:choose>
2836
+ </xsl:variable> -->
2837
+ <!-- cols-count=<xsl:copy-of select="$cols-count"/> -->
2838
+ <!-- cols-count2=<xsl:copy-of select="$cols-count2"/> -->
2839
+
2840
+
2841
+
2842
+ <xsl:variable name="colwidths">
2843
+ <xsl:call-template name="calculate-column-widths">
2844
+ <xsl:with-param name="cols-count" select="$cols-count"/>
2845
+ <xsl:with-param name="table" select="$simple-table"/>
2846
+ </xsl:call-template>
2847
+ </xsl:variable>
2848
+
2849
+ <!-- <xsl:variable name="colwidths2">
2850
+ <xsl:call-template name="calculate-column-widths">
2851
+ <xsl:with-param name="cols-count" select="$cols-count"/>
2852
+ </xsl:call-template>
2853
+ </xsl:variable> -->
2854
+
2855
+ <!-- cols-count=<xsl:copy-of select="$cols-count"/>
2856
+ colwidthsNew=<xsl:copy-of select="$colwidths"/>
2857
+ colwidthsOld=<xsl:copy-of select="$colwidths2"/>z -->
2858
+
2859
+ <xsl:variable name="margin-left">
2860
+ <xsl:choose>
2861
+ <xsl:when test="sum(xalan:nodeset($colwidths)//column) &gt; 75">15</xsl:when>
2862
+ <xsl:otherwise>0</xsl:otherwise>
2863
+ </xsl:choose>
2864
+ </xsl:variable>
2865
+
2866
+ <fo:block-container margin-left="-{$margin-left}mm" margin-right="-{$margin-left}mm">
2867
+
2868
+ <xsl:attribute name="space-after">6pt</xsl:attribute>
2869
+
2870
+
2871
+
2872
+
2873
+
2874
+
2875
+
2876
+ <fo:table id="{@id}" table-layout="fixed" width="100%" margin-left="{$margin-left}mm" margin-right="{$margin-left}mm" table-omit-footer-at-break="true">
2877
+
2878
+
2879
+
2880
+
2881
+
2882
+
2883
+ <xsl:if test="ancestor::*[local-name()='annex'] or ancestor::*[local-name()='preface']">
2884
+ <xsl:attribute name="font-family">Times New Roman</xsl:attribute>
2885
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
2886
+ </xsl:if>
2887
+ <xsl:if test="not(ancestor::*[local-name()='annex'] or ancestor::*[local-name()='preface'])">
2888
+ <xsl:attribute name="font-family">Times New Roman</xsl:attribute>
2889
+ <xsl:attribute name="font-size">12pt</xsl:attribute>
2890
+ </xsl:if>
2891
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
2892
+
2893
+
2894
+
2895
+
2896
+
2897
+ <xsl:for-each select="xalan:nodeset($colwidths)//column">
2898
+ <xsl:choose>
2899
+ <xsl:when test=". = 1">
2900
+ <fo:table-column column-width="proportional-column-width(2)"/>
2901
+ </xsl:when>
2902
+ <xsl:otherwise>
2903
+ <fo:table-column column-width="proportional-column-width({.})"/>
2904
+ </xsl:otherwise>
2905
+ </xsl:choose>
2906
+ </xsl:for-each>
2907
+ <xsl:apply-templates/>
2908
+ </fo:table>
2909
+
2910
+
2911
+
2912
+ </fo:block-container>
2913
+ </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">
2914
+ <xsl:apply-templates/>
2915
+ </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">
2916
+ <xsl:param name="table-row"/>
2917
+ <xsl:variable name="columns-count" select="count($table-row/*)"/>
2918
+ <xsl:variable name="sum-colspans" select="sum($table-row/*/@colspan)"/>
2919
+ <xsl:variable name="columns-with-colspan" select="count($table-row/*[@colspan])"/>
2920
+ <xsl:value-of select="$columns-count + $sum-colspans - $columns-with-colspan"/>
2921
+ </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">
2922
+ <xsl:param name="table"/>
2923
+ <xsl:param name="cols-count"/>
2924
+ <xsl:param name="curr-col" select="1"/>
2925
+ <xsl:param name="width" select="0"/>
2926
+
2927
+ <xsl:if test="$curr-col &lt;= $cols-count">
2928
+ <xsl:variable name="widths">
2929
+ <xsl:choose>
2930
+ <xsl:when test="not($table)">
2931
+ <xsl:for-each select="*[local-name()='thead']//*[local-name()='tr']">
2932
+ <xsl:variable name="words">
2933
+ <xsl:call-template name="tokenize">
2934
+ <xsl:with-param name="text" select="translate(*[local-name()='th'][$curr-col],'- —:', ' ')"/>
2935
+ </xsl:call-template>
2936
+ </xsl:variable>
2937
+ <xsl:variable name="max_length">
2938
+ <xsl:call-template name="max_length">
2939
+ <xsl:with-param name="words" select="xalan:nodeset($words)"/>
2940
+ </xsl:call-template>
2941
+ </xsl:variable>
2942
+ <width>
2943
+ <xsl:value-of select="$max_length"/>
2944
+ </width>
2945
+ </xsl:for-each>
2946
+ <xsl:for-each select="*[local-name()='tbody']//*[local-name()='tr']">
2947
+ <xsl:variable name="words">
2948
+ <xsl:call-template name="tokenize">
2949
+ <xsl:with-param name="text" select="translate(*[local-name()='td'][$curr-col],'- —:', ' ')"/>
2950
+ </xsl:call-template>
2951
+ </xsl:variable>
2952
+ <xsl:variable name="max_length">
2953
+ <xsl:call-template name="max_length">
2954
+ <xsl:with-param name="words" select="xalan:nodeset($words)"/>
2955
+ </xsl:call-template>
2956
+ </xsl:variable>
2957
+ <width>
2958
+ <xsl:value-of select="$max_length"/>
2959
+ </width>
2960
+
2961
+ </xsl:for-each>
2962
+ </xsl:when>
2963
+ <xsl:otherwise>
2964
+ <xsl:for-each select="xalan:nodeset($table)//tr">
2965
+ <xsl:variable name="td_text">
2966
+ <xsl:apply-templates select="td[$curr-col]" mode="td_text"/>
2967
+ </xsl:variable>
2968
+ <xsl:variable name="words">
2969
+ <xsl:call-template name="tokenize">
2970
+ <!-- <xsl:with-param name="text" select="translate(td[$curr-col],'- —:', ' ')"/> -->
2971
+ <xsl:with-param name="text" select="translate(normalize-space($td_text),'- —:', ' ')"/>
2972
+ </xsl:call-template>
2973
+ </xsl:variable>
2974
+ <xsl:variable name="max_length">
2975
+ <xsl:call-template name="max_length">
2976
+ <xsl:with-param name="words" select="xalan:nodeset($words)"/>
2977
+ </xsl:call-template>
2978
+ </xsl:variable>
2979
+ <width>
2980
+ <xsl:variable name="divider">
2981
+ <xsl:choose>
2982
+ <xsl:when test="td[$curr-col]/@divide">
2983
+ <xsl:value-of select="td[$curr-col]/@divide"/>
2984
+ </xsl:when>
2985
+ <xsl:otherwise>1</xsl:otherwise>
2986
+ </xsl:choose>
2987
+ </xsl:variable>
2988
+ <xsl:value-of select="$max_length div $divider"/>
2989
+ </width>
2990
+
2991
+ </xsl:for-each>
2992
+
2993
+ </xsl:otherwise>
2994
+ </xsl:choose>
2995
+ </xsl:variable>
2996
+
2997
+
2998
+ <column>
2999
+ <xsl:for-each select="xalan:nodeset($widths)//width">
3000
+ <xsl:sort select="." data-type="number" order="descending"/>
3001
+ <xsl:if test="position()=1">
3002
+ <xsl:value-of select="."/>
3003
+ </xsl:if>
3004
+ </xsl:for-each>
3005
+ </column>
3006
+ <xsl:call-template name="calculate-column-widths">
3007
+ <xsl:with-param name="cols-count" select="$cols-count"/>
3008
+ <xsl:with-param name="curr-col" select="$curr-col +1"/>
3009
+ <xsl:with-param name="table" select="$table"/>
3010
+ </xsl:call-template>
3011
+ </xsl:if>
3012
+ </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()" mode="td_text">
3013
+ <xsl:variable name="zero-space">​</xsl:variable>
3014
+ <xsl:value-of select="translate(., $zero-space, ' ')"/><xsl:text> </xsl:text>
3015
+ </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">
3016
+ <!-- font-weight="bold" -->
3017
+ <fo:table-header>
3018
+ <xsl:apply-templates/>
3019
+ </fo:table-header>
3020
+ </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">
3021
+ <xsl:apply-templates/>
3022
+ </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="insertTableFooter">
3023
+ <xsl:variable name="isNoteOrFnExist" select="../*[local-name()='note'] or ..//*[local-name()='fn'][local-name(..) != 'name']"/>
3024
+ <xsl:if test="../*[local-name()='tfoot'] or $isNoteOrFnExist = 'true'">
3025
+
3026
+ <fo:table-footer>
3027
+
3028
+ <xsl:apply-templates select="../*[local-name()='tfoot']" mode="process"/>
3029
+
3030
+ <!-- if there are note(s) or fn(s) then create footer row -->
3031
+ <xsl:if test="$isNoteOrFnExist = 'true'">
3032
+
3033
+ <xsl:variable name="cols-count">
3034
+ <xsl:choose>
3035
+ <xsl:when test="../*[local-name()='thead']">
3036
+ <!-- <xsl:value-of select="count(../*[local-name()='thead']/*[local-name()='tr']/*[local-name()='th'])"/> -->
3037
+ <xsl:call-template name="calculate-columns-numbers">
3038
+ <xsl:with-param name="table-row" select="../*[local-name()='thead']/*[local-name()='tr'][1]"/>
3039
+ </xsl:call-template>
3040
+ </xsl:when>
3041
+ <xsl:otherwise>
3042
+ <!-- <xsl:value-of select="count(./*[local-name()='tr'][1]/*[local-name()='td'])"/> -->
3043
+ <xsl:call-template name="calculate-columns-numbers">
3044
+ <xsl:with-param name="table-row" select="./*[local-name()='tr'][1]"/>
3045
+ </xsl:call-template>
3046
+ </xsl:otherwise>
3047
+ </xsl:choose>
3048
+ </xsl:variable>
3049
+
3050
+ <fo:table-row>
3051
+ <fo:table-cell border="solid black 1pt" padding-left="1mm" padding-right="1mm" padding-top="1mm" number-columns-spanned="{$cols-count}">
3052
+
3053
+
3054
+
3055
+ <!-- fn will be processed inside 'note' processing -->
3056
+
3057
+
3058
+ <!-- except gb -->
3059
+
3060
+ <xsl:apply-templates select="../*[local-name()='note']" mode="process"/>
3061
+
3062
+
3063
+ <!-- horizontal row separator -->
3064
+
3065
+
3066
+ <!-- fn processing -->
3067
+ <xsl:call-template name="fn_display"/>
3068
+
3069
+ </fo:table-cell>
3070
+ </fo:table-row>
3071
+
3072
+ </xsl:if>
3073
+ </fo:table-footer>
3074
+
3075
+ </xsl:if>
3076
+ </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']">
3077
+
3078
+ <xsl:apply-templates select="../*[local-name()='thead']" mode="process"/>
3079
+
3080
+ <xsl:call-template name="insertTableFooter"/>
3081
+
3082
+ <fo:table-body>
3083
+ <xsl:apply-templates/>
3084
+ <!-- <xsl:apply-templates select="../*[local-name()='tfoot']" mode="process"/> -->
3085
+
3086
+ </fo:table-body>
3087
+
3088
+ </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']">
3089
+ <xsl:variable name="parent-name" select="local-name(..)"/>
3090
+ <!-- <xsl:variable name="namespace" select="substring-before(name(/*), '-')"/> -->
3091
+ <fo:table-row min-height="4mm">
3092
+ <xsl:if test="$parent-name = 'thead'">
3093
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
3094
+
3095
+ <xsl:attribute name="font-family">Arial</xsl:attribute>
3096
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
3097
+
3098
+
3099
+
3100
+
3101
+
3102
+ </xsl:if>
3103
+ <xsl:if test="$parent-name = 'tfoot'">
3104
+
3105
+
3106
+ </xsl:if>
3107
+
3108
+
3109
+ <xsl:apply-templates/>
3110
+ </fo:table-row>
3111
+ </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']">
3112
+ <fo:table-cell text-align="{@align}" font-weight="bold" border="solid black 1pt" padding-left="1mm" display-align="center">
3113
+
3114
+
3115
+
3116
+
3117
+ <xsl:attribute name="text-align">center</xsl:attribute>
3118
+ <xsl:attribute name="background-color">black</xsl:attribute>
3119
+ <xsl:attribute name="color">white</xsl:attribute>
3120
+
3121
+
3122
+
3123
+
3124
+ <xsl:if test="@colspan">
3125
+ <xsl:attribute name="number-columns-spanned">
3126
+ <xsl:value-of select="@colspan"/>
3127
+ </xsl:attribute>
3128
+ </xsl:if>
3129
+ <xsl:if test="@rowspan">
3130
+ <xsl:attribute name="number-rows-spanned">
3131
+ <xsl:value-of select="@rowspan"/>
3132
+ </xsl:attribute>
3133
+ </xsl:if>
3134
+ <fo:block>
3135
+ <xsl:apply-templates/>
3136
+ </fo:block>
3137
+ </fo:table-cell>
3138
+ </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']">
3139
+ <fo:table-cell text-align="{@align}" display-align="center" border="solid black 1pt" padding-left="1mm">
3140
+
3141
+
3142
+
3143
+
3144
+
3145
+
3146
+
3147
+
3148
+
3149
+ <xsl:if test="ancestor::*[local-name()='thead']">
3150
+ <xsl:attribute name="font-weight">normal</xsl:attribute>
3151
+ </xsl:if>
3152
+
3153
+ <xsl:if test="@colspan">
3154
+ <xsl:attribute name="number-columns-spanned">
3155
+ <xsl:value-of select="@colspan"/>
3156
+ </xsl:attribute>
3157
+ </xsl:if>
3158
+ <xsl:if test="@rowspan">
3159
+ <xsl:attribute name="number-rows-spanned">
3160
+ <xsl:value-of select="@rowspan"/>
3161
+ </xsl:attribute>
3162
+ </xsl:if>
3163
+ <fo:block>
3164
+ <xsl:apply-templates/>
3165
+ </fo:block>
3166
+ <!-- <xsl:choose>
3167
+ <xsl:when test="count(*) = 1 and *[local-name() = 'p']">
3168
+ <xsl:apply-templates />
3169
+ </xsl:when>
3170
+ <xsl:otherwise>
3171
+ <fo:block>
3172
+ <xsl:apply-templates />
3173
+ </fo:block>
3174
+ </xsl:otherwise>
3175
+ </xsl:choose> -->
3176
+
3177
+
3178
+ </fo:table-cell>
3179
+ </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">
3180
+
3181
+
3182
+ <fo:block font-size="10pt" margin-bottom="12pt">
3183
+
3184
+
3185
+
3186
+ <fo:inline padding-right="2mm">
3187
+
3188
+ <xsl:text>NOTE </xsl:text>
3189
+
3190
+
3191
+
3192
+ <xsl:number format="1 "/>
3193
+
3194
+ </fo:inline>
3195
+ <xsl:apply-templates mode="process"/>
3196
+ </fo:block>
3197
+
3198
+ </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">
3199
+ <xsl:apply-templates/>
3200
+ </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">
3201
+ <xsl:variable name="references">
3202
+ <xsl:for-each select="..//*[local-name()='fn'][local-name(..) != 'name']">
3203
+ <fn reference="{@reference}" id="{@reference}_{ancestor::*[@id][1]/@id}">
3204
+
3205
+
3206
+ <xsl:apply-templates/>
3207
+ </fn>
3208
+ </xsl:for-each>
3209
+ </xsl:variable>
3210
+ <xsl:for-each select="xalan:nodeset($references)//fn">
3211
+ <xsl:variable name="reference" select="@reference"/>
3212
+ <xsl:if test="not(preceding-sibling::*[@reference = $reference])"> <!-- only unique reference puts in note-->
3213
+ <fo:block margin-bottom="12pt">
3214
+
3215
+
3216
+
3217
+ <fo:inline font-size="80%" padding-right="5mm" id="{@id}">
3218
+
3219
+ <xsl:attribute name="vertical-align">super</xsl:attribute>
3220
+
3221
+
3222
+
3223
+
3224
+
3225
+
3226
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
3227
+
3228
+ <xsl:value-of select="@reference"/>
3229
+
3230
+ </fo:inline>
3231
+ <fo:inline>
3232
+
3233
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
3234
+
3235
+ <xsl:apply-templates/>
3236
+ </fo:inline>
3237
+ </fo:block>
3238
+ </xsl:if>
3239
+ </xsl:for-each>
3240
+ </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">
3241
+ <!-- <xsl:variable name="references">
3242
+ <xsl:for-each select="*[local-name()='name']//*[local-name()='fn']">
3243
+ <fn reference="{@reference}" id="{@reference}_{ancestor::*[@id][1]/@id}">
3244
+ <xsl:apply-templates />
3245
+ </fn>
3246
+ </xsl:for-each>
3247
+ </xsl:variable>
3248
+ $references=<xsl:copy-of select="$references"/> -->
3249
+ <xsl:for-each select="*[local-name()='name']//*[local-name()='fn']">
3250
+ <xsl:variable name="reference" select="@reference"/>
3251
+ <fo:block id="{@reference}_{ancestor::*[@id][1]/@id}"><xsl:value-of select="@reference"/></fo:block>
3252
+ <fo:block margin-bottom="12pt">
3253
+ <xsl:apply-templates/>
3254
+ </fo:block>
3255
+ </xsl:for-each>
3256
+ </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">
3257
+ <xsl:variable name="key_iso">
3258
+ <!-- and (not(@class) or @class !='pseudocode') -->
3259
+ </xsl:variable>
3260
+ <xsl:variable name="references">
3261
+ <xsl:for-each select=".//*[local-name()='fn']">
3262
+ <fn reference="{@reference}" id="{@reference}_{ancestor::*[@id][1]/@id}">
3263
+ <xsl:apply-templates/>
3264
+ </fn>
3265
+ </xsl:for-each>
3266
+ </xsl:variable>
3267
+ <xsl:if test="xalan:nodeset($references)//fn">
3268
+ <fo:block>
3269
+ <fo:table width="95%" table-layout="fixed">
3270
+ <xsl:if test="normalize-space($key_iso) = 'true'">
3271
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
3272
+
3273
+ </xsl:if>
3274
+ <fo:table-column column-width="15%"/>
3275
+ <fo:table-column column-width="85%"/>
3276
+ <fo:table-body>
3277
+ <xsl:for-each select="xalan:nodeset($references)//fn">
3278
+ <xsl:variable name="reference" select="@reference"/>
3279
+ <xsl:if test="not(preceding-sibling::*[@reference = $reference])"> <!-- only unique reference puts in note-->
3280
+ <fo:table-row>
3281
+ <fo:table-cell>
3282
+ <fo:block>
3283
+ <fo:inline font-size="80%" padding-right="5mm" vertical-align="super" id="{@id}">
3284
+
3285
+ <xsl:value-of select="@reference"/>
3286
+ </fo:inline>
3287
+ </fo:block>
3288
+ </fo:table-cell>
3289
+ <fo:table-cell>
3290
+ <fo:block text-align="justify" margin-bottom="12pt">
3291
+
3292
+ <xsl:if test="normalize-space($key_iso) = 'true'">
3293
+ <xsl:attribute name="margin-bottom">0</xsl:attribute>
3294
+ </xsl:if>
3295
+
3296
+ <xsl:apply-templates/>
3297
+ </fo:block>
3298
+ </fo:table-cell>
3299
+ </fo:table-row>
3300
+ </xsl:if>
3301
+ </xsl:for-each>
3302
+ </fo:table-body>
3303
+ </fo:table>
3304
+ </fo:block>
3305
+ </xsl:if>
3306
+
3307
+ </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']">
3308
+ <!-- <xsl:variable name="namespace" select="substring-before(name(/*), '-')"/> -->
3309
+ <fo:inline font-size="80%" keep-with-previous.within-line="always">
3310
+
3311
+
3312
+
3313
+ <xsl:attribute name="vertical-align">super</xsl:attribute>
3314
+ <xsl:attribute name="color">blue</xsl:attribute>
3315
+
3316
+
3317
+ <xsl:attribute name="text-decoration">underline</xsl:attribute>
3318
+
3319
+ <fo:basic-link internal-destination="{@reference}_{ancestor::*[@id][1]/@id}" fox:alt-text="{@reference}"> <!-- @reference | ancestor::*[local-name()='clause'][1]/@id-->
3320
+
3321
+ <xsl:value-of select="@reference"/>
3322
+ </fo:basic-link>
3323
+ </fo:inline>
3324
+ </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']">
3325
+ <fo:inline>
3326
+ <xsl:apply-templates/>
3327
+ </fo:inline>
3328
+ </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']">
3329
+ <xsl:variable name="parent" select="local-name(..)"/>
3330
+
3331
+ <xsl:variable name="key_iso">
3332
+ <!-- and (not(../@class) or ../@class !='pseudocode') -->
3333
+ </xsl:variable>
3334
+
3335
+ <xsl:choose>
3336
+ <xsl:when test="$parent = 'formula' and count(*[local-name()='dt']) = 1"> <!-- only one component -->
3337
+
3338
+
3339
+ <fo:block margin-bottom="12pt" text-align="left">
3340
+
3341
+ <xsl:text>where </xsl:text>
3342
+ <xsl:apply-templates select="*[local-name()='dt']/*"/>
3343
+ <xsl:text/>
3344
+ <xsl:apply-templates select="*[local-name()='dd']/*" mode="inline"/>
3345
+ </fo:block>
3346
+
3347
+ </xsl:when>
3348
+ <xsl:when test="$parent = 'formula'"> <!-- a few components -->
3349
+ <fo:block margin-bottom="12pt" text-align="left">
3350
+
3351
+
3352
+
3353
+
3354
+ <xsl:text>where</xsl:text>
3355
+ </fo:block>
3356
+ </xsl:when>
3357
+ <xsl:when test="$parent = 'figure' and (not(../@class) or ../@class !='pseudocode')">
3358
+ <fo:block font-weight="bold" text-align="left" margin-bottom="12pt">
3359
+
3360
+
3361
+
3362
+ <xsl:text>Key</xsl:text>
3363
+ </fo:block>
3364
+ </xsl:when>
3365
+ </xsl:choose>
3366
+
3367
+ <!-- a few components -->
3368
+ <xsl:if test="not($parent = 'formula' and count(*[local-name()='dt']) = 1)">
3369
+ <fo:block>
3370
+
3371
+
3372
+
3373
+ <xsl:if test="not(.//*[local-name()='dt']//*[local-name()='stem'])">
3374
+ <xsl:attribute name="margin-left">5mm</xsl:attribute>
3375
+ </xsl:if>
3376
+
3377
+ <fo:block>
3378
+
3379
+ <xsl:if test="not(.//*[local-name()='dt']//*[local-name()='stem'])">
3380
+ <xsl:attribute name="margin-left">-2.5mm</xsl:attribute>
3381
+ </xsl:if>
3382
+
3383
+
3384
+ <!-- create virtual html table for dl/[dt and dd] -->
3385
+ <xsl:variable name="html-table">
3386
+ <xsl:variable name="ns" select="substring-before(name(/*), '-')"/>
3387
+ <xsl:element name="{$ns}:table">
3388
+ <tbody>
3389
+ <xsl:apply-templates mode="dl"/>
3390
+ </tbody>
3391
+ </xsl:element>
3392
+ </xsl:variable>
3393
+ <!-- html-table<xsl:copy-of select="$html-table"/> -->
3394
+ <xsl:variable name="colwidths">
3395
+ <xsl:call-template name="calculate-column-widths">
3396
+ <xsl:with-param name="cols-count" select="2"/>
3397
+ <xsl:with-param name="table" select="$html-table"/>
3398
+ </xsl:call-template>
3399
+ </xsl:variable>
3400
+ <!-- colwidths=<xsl:value-of select="$colwidths"/> -->
3401
+
3402
+ <fo:table width="95%" table-layout="fixed">
3403
+
3404
+ <xsl:choose>
3405
+ <xsl:when test="normalize-space($key_iso) = 'true' and $parent = 'formula'">
3406
+ <!-- <xsl:attribute name="font-size">11pt</xsl:attribute> -->
3407
+ </xsl:when>
3408
+ <xsl:when test="normalize-space($key_iso) = 'true'">
3409
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
3410
+
3411
+ </xsl:when>
3412
+ </xsl:choose>
3413
+ <xsl:choose>
3414
+ <xsl:when test="ancestor::*[local-name()='dl']"><!-- second level, i.e. inlined table -->
3415
+ <fo:table-column column-width="50%"/>
3416
+ <fo:table-column column-width="50%"/>
3417
+ </xsl:when>
3418
+ <xsl:otherwise>
3419
+ <xsl:choose>
3420
+ <!-- <xsl:when test="xalan:nodeset($colwidths)/column[1] div xalan:nodeset($colwidths)/column[2] &gt; 1.7">
3421
+ <fo:table-column column-width="60%"/>
3422
+ <fo:table-column column-width="40%"/>
3423
+ </xsl:when> -->
3424
+ <xsl:when test="xalan:nodeset($colwidths)/column[1] div xalan:nodeset($colwidths)/column[2] &gt; 1.3">
3425
+ <fo:table-column column-width="50%"/>
3426
+ <fo:table-column column-width="50%"/>
3427
+ </xsl:when>
3428
+ <xsl:when test="xalan:nodeset($colwidths)/column[1] div xalan:nodeset($colwidths)/column[2] &gt; 0.5">
3429
+ <fo:table-column column-width="40%"/>
3430
+ <fo:table-column column-width="60%"/>
3431
+ </xsl:when>
3432
+ <xsl:otherwise>
3433
+ <xsl:for-each select="xalan:nodeset($colwidths)//column">
3434
+ <xsl:choose>
3435
+ <xsl:when test=". = 1">
3436
+ <fo:table-column column-width="proportional-column-width(2)"/>
3437
+ </xsl:when>
3438
+ <xsl:otherwise>
3439
+ <fo:table-column column-width="proportional-column-width({.})"/>
3440
+ </xsl:otherwise>
3441
+ </xsl:choose>
3442
+ </xsl:for-each>
3443
+ </xsl:otherwise>
3444
+ </xsl:choose>
3445
+ <!-- <fo:table-column column-width="15%"/>
3446
+ <fo:table-column column-width="85%"/> -->
3447
+ </xsl:otherwise>
3448
+ </xsl:choose>
3449
+ <fo:table-body>
3450
+ <xsl:apply-templates>
3451
+ <xsl:with-param name="key_iso" select="normalize-space($key_iso)"/>
3452
+ </xsl:apply-templates>
3453
+ </fo:table-body>
3454
+ </fo:table>
3455
+ </fo:block>
3456
+ </fo:block>
3457
+ </xsl:if>
3458
+ </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']">
3459
+ <xsl:param name="key_iso"/>
3460
+
3461
+ <!-- <tr>
3462
+ <td>NOTE</td>
3463
+ <td>
3464
+ <xsl:apply-templates />
3465
+ </td>
3466
+ </tr>
3467
+ -->
3468
+ <fo:table-row>
3469
+ <fo:table-cell>
3470
+ <fo:block margin-top="6pt">
3471
+ <xsl:if test="normalize-space($key_iso) = 'true'">
3472
+ <xsl:attribute name="margin-top">0</xsl:attribute>
3473
+ </xsl:if>
3474
+ NOTE
3475
+ </fo:block>
3476
+ </fo:table-cell>
3477
+ <fo:table-cell>
3478
+ <fo:block>
3479
+ <xsl:apply-templates/>
3480
+ </fo:block>
3481
+ </fo:table-cell>
3482
+ </fo:table-row>
3483
+ </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">
3484
+ <tr>
3485
+ <td>
3486
+ <xsl:apply-templates/>
3487
+ </td>
3488
+ <td>
3489
+
3490
+ <xsl:if test="local-name(*[1]) != 'stem'">
3491
+ <xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]" mode="process"/>
3492
+ </xsl:if>
3493
+
3494
+
3495
+ </td>
3496
+ </tr>
3497
+
3498
+ <xsl:if test="local-name(*[1]) = 'stem'">
3499
+ <tr>
3500
+ <td>
3501
+ <xsl:text> </xsl:text>
3502
+ </td>
3503
+ <td>
3504
+ <xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]" mode="dl_process"/>
3505
+ </td>
3506
+ </tr>
3507
+ </xsl:if>
3508
+
3509
+ </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']">
3510
+ <xsl:param name="key_iso"/>
3511
+
3512
+ <fo:table-row>
3513
+ <fo:table-cell>
3514
+ <fo:block margin-top="6pt">
3515
+
3516
+
3517
+ <xsl:if test="normalize-space($key_iso) = 'true'">
3518
+ <xsl:attribute name="margin-top">0</xsl:attribute>
3519
+
3520
+ </xsl:if>
3521
+
3522
+ <xsl:attribute name="margin-top">0</xsl:attribute>
3523
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
3524
+
3525
+
3526
+ <xsl:apply-templates/>
3527
+
3528
+ </fo:block>
3529
+ </fo:table-cell>
3530
+ <fo:table-cell>
3531
+ <fo:block>
3532
+
3533
+
3534
+ <xsl:if test="local-name(*[1]) != 'stem'">
3535
+ <xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]" mode="process"/>
3536
+ </xsl:if>
3537
+
3538
+
3539
+ </fo:block>
3540
+ </fo:table-cell>
3541
+ </fo:table-row>
3542
+
3543
+ <xsl:if test="local-name(*[1]) = 'stem'">
3544
+ <fo:table-row>
3545
+ <fo:table-cell>
3546
+ <fo:block margin-top="6pt">
3547
+ <xsl:if test="normalize-space($key_iso) = 'true'">
3548
+ <xsl:attribute name="margin-top">0</xsl:attribute>
3549
+ </xsl:if>
3550
+ <xsl:text> </xsl:text>
3551
+ </fo:block>
3552
+ </fo:table-cell>
3553
+ <fo:table-cell>
3554
+ <fo:block>
3555
+ <xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]" mode="process"/>
3556
+ </fo:block>
3557
+ </fo:table-cell>
3558
+ </fo:table-row>
3559
+ </xsl:if>
3560
+
3561
+ </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">
3562
+ <xsl:apply-templates/>
3563
+ </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">
3564
+ <xsl:apply-templates/>
3565
+ </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">
3566
+ <fo:inline><xsl:text> </xsl:text><xsl:apply-templates/></fo:inline>
3567
+ </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']">
3568
+ <fo:inline font-style="italic">
3569
+ <xsl:apply-templates/>
3570
+ </fo:inline>
3571
+ </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']">
3572
+ <fo:inline font-weight="bold">
3573
+ <xsl:apply-templates/>
3574
+ </fo:inline>
3575
+ </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']">
3576
+ <fo:inline font-size="80%" vertical-align="super">
3577
+ <xsl:apply-templates/>
3578
+ </fo:inline>
3579
+ </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']">
3580
+ <fo:inline font-size="80%" vertical-align="sub">
3581
+ <xsl:apply-templates/>
3582
+ </fo:inline>
3583
+ </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']">
3584
+ <fo:inline font-family="Courier" font-size="10pt">
3585
+ <xsl:apply-templates/>
3586
+ </fo:inline>
3587
+ </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']">
3588
+ <fo:inline font-size="10pt" color="red" text-decoration="line-through">
3589
+ <xsl:apply-templates/>
3590
+ </fo:inline>
3591
+ </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']]">
3592
+ <xsl:variable name="text" select="normalize-space(.)"/>
3593
+ <fo:inline font-size="75%">
3594
+ <xsl:if test="string-length($text) &gt; 0">
3595
+ <xsl:call-template name="recursiveSmallCaps">
3596
+ <xsl:with-param name="text" select="$text"/>
3597
+ </xsl:call-template>
3598
+ </xsl:if>
3599
+ </fo:inline>
3600
+ </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">
3601
+ <xsl:param name="text"/>
3602
+ <xsl:variable name="char" select="substring($text,1,1)"/>
3603
+ <xsl:variable name="upperCase" select="translate($char, $lower, $upper)"/>
3604
+ <xsl:choose>
3605
+ <xsl:when test="$char=$upperCase">
3606
+ <fo:inline font-size="{100 div 0.75}%">
3607
+ <xsl:value-of select="$upperCase"/>
3608
+ </fo:inline>
3609
+ </xsl:when>
3610
+ <xsl:otherwise>
3611
+ <xsl:value-of select="$upperCase"/>
3612
+ </xsl:otherwise>
3613
+ </xsl:choose>
3614
+ <xsl:if test="string-length($text) &gt; 1">
3615
+ <xsl:call-template name="recursiveSmallCaps">
3616
+ <xsl:with-param name="text" select="substring($text,2)"/>
3617
+ </xsl:call-template>
3618
+ </xsl:if>
3619
+ </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">
3620
+ <xsl:param name="text"/>
3621
+ <xsl:param name="separator" select="' '"/>
3622
+ <xsl:choose>
3623
+ <xsl:when test="not(contains($text, $separator))">
3624
+ <word>
3625
+ <xsl:variable name="str_no_en_chars" select="normalize-space(translate($text, $en_chars, ''))"/>
3626
+ <xsl:variable name="len_str_no_en_chars" select="string-length($str_no_en_chars)"/>
3627
+ <xsl:variable name="len_str_tmp" select="string-length(normalize-space($text))"/>
3628
+ <xsl:variable name="len_str">
3629
+ <xsl:choose>
3630
+ <xsl:when test="normalize-space(translate($text, $upper, '')) = ''"> <!-- english word in CAPITAL letters -->
3631
+ <xsl:value-of select="$len_str_tmp * 1.5"/>
3632
+ </xsl:when>
3633
+ <xsl:otherwise>
3634
+ <xsl:value-of select="$len_str_tmp"/>
3635
+ </xsl:otherwise>
3636
+ </xsl:choose>
3637
+ </xsl:variable>
3638
+
3639
+ <!-- <xsl:if test="$len_str_no_en_chars div $len_str &gt; 0.8">
3640
+ <xsl:message>
3641
+ div=<xsl:value-of select="$len_str_no_en_chars div $len_str"/>
3642
+ len_str=<xsl:value-of select="$len_str"/>
3643
+ len_str_no_en_chars=<xsl:value-of select="$len_str_no_en_chars"/>
3644
+ </xsl:message>
3645
+ </xsl:if> -->
3646
+ <!-- <len_str_no_en_chars><xsl:value-of select="$len_str_no_en_chars"/></len_str_no_en_chars>
3647
+ <len_str><xsl:value-of select="$len_str"/></len_str> -->
3648
+ <xsl:choose>
3649
+ <xsl:when test="$len_str_no_en_chars div $len_str &gt; 0.8"> <!-- means non-english string -->
3650
+ <xsl:value-of select="$len_str - $len_str_no_en_chars"/>
3651
+ </xsl:when>
3652
+ <xsl:otherwise>
3653
+ <xsl:value-of select="$len_str"/>
3654
+ </xsl:otherwise>
3655
+ </xsl:choose>
3656
+ </word>
3657
+ </xsl:when>
3658
+ <xsl:otherwise>
3659
+ <word>
3660
+ <xsl:value-of select="string-length(normalize-space(substring-before($text, $separator)))"/>
3661
+ </word>
3662
+ <xsl:call-template name="tokenize">
3663
+ <xsl:with-param name="text" select="substring-after($text, $separator)"/>
3664
+ </xsl:call-template>
3665
+ </xsl:otherwise>
3666
+ </xsl:choose>
3667
+ </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">
3668
+ <xsl:param name="words"/>
3669
+ <xsl:for-each select="$words//word">
3670
+ <xsl:sort select="." data-type="number" order="descending"/>
3671
+ <xsl:if test="position()=1">
3672
+ <xsl:value-of select="."/>
3673
+ </xsl:if>
3674
+ </xsl:for-each>
3675
+ </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">
3676
+ <xsl:param name="text" select="."/>
3677
+ <xsl:variable name="zero-space-after-chars">-</xsl:variable>
3678
+ <xsl:variable name="zero-space-after-dot">.</xsl:variable>
3679
+ <xsl:variable name="zero-space-after-colon">:</xsl:variable>
3680
+ <xsl:variable name="zero-space-after-equal">=</xsl:variable>
3681
+ <xsl:variable name="zero-space-after-underscore">_</xsl:variable>
3682
+ <xsl:variable name="zero-space">​</xsl:variable>
3683
+ <xsl:choose>
3684
+ <xsl:when test="contains($text, $zero-space-after-chars)">
3685
+ <xsl:value-of select="substring-before($text, $zero-space-after-chars)"/>
3686
+ <xsl:value-of select="$zero-space-after-chars"/>
3687
+ <xsl:value-of select="$zero-space"/>
3688
+ <xsl:call-template name="add-zero-spaces">
3689
+ <xsl:with-param name="text" select="substring-after($text, $zero-space-after-chars)"/>
3690
+ </xsl:call-template>
3691
+ </xsl:when>
3692
+ <xsl:when test="contains($text, $zero-space-after-dot)">
3693
+ <xsl:value-of select="substring-before($text, $zero-space-after-dot)"/>
3694
+ <xsl:value-of select="$zero-space-after-dot"/>
3695
+ <xsl:value-of select="$zero-space"/>
3696
+ <xsl:call-template name="add-zero-spaces">
3697
+ <xsl:with-param name="text" select="substring-after($text, $zero-space-after-dot)"/>
3698
+ </xsl:call-template>
3699
+ </xsl:when>
3700
+ <xsl:when test="contains($text, $zero-space-after-colon)">
3701
+ <xsl:value-of select="substring-before($text, $zero-space-after-colon)"/>
3702
+ <xsl:value-of select="$zero-space-after-colon"/>
3703
+ <xsl:value-of select="$zero-space"/>
3704
+ <xsl:call-template name="add-zero-spaces">
3705
+ <xsl:with-param name="text" select="substring-after($text, $zero-space-after-colon)"/>
3706
+ </xsl:call-template>
3707
+ </xsl:when>
3708
+ <xsl:when test="contains($text, $zero-space-after-equal)">
3709
+ <xsl:value-of select="substring-before($text, $zero-space-after-equal)"/>
3710
+ <xsl:value-of select="$zero-space-after-equal"/>
3711
+ <xsl:value-of select="$zero-space"/>
3712
+ <xsl:call-template name="add-zero-spaces">
3713
+ <xsl:with-param name="text" select="substring-after($text, $zero-space-after-equal)"/>
3714
+ </xsl:call-template>
3715
+ </xsl:when>
3716
+ <xsl:when test="contains($text, $zero-space-after-underscore)">
3717
+ <xsl:value-of select="substring-before($text, $zero-space-after-underscore)"/>
3718
+ <xsl:value-of select="$zero-space-after-underscore"/>
3719
+ <xsl:value-of select="$zero-space"/>
3720
+ <xsl:call-template name="add-zero-spaces">
3721
+ <xsl:with-param name="text" select="substring-after($text, $zero-space-after-underscore)"/>
3722
+ </xsl:call-template>
3723
+ </xsl:when>
3724
+ <xsl:otherwise>
3725
+ <xsl:value-of select="$text"/>
3726
+ </xsl:otherwise>
3727
+ </xsl:choose>
3728
+ </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">
3729
+ <xsl:param name="text" select="."/>
3730
+ <xsl:variable name="zero-space-after-equals">==========</xsl:variable>
3731
+ <xsl:variable name="zero-space-after-equal">=</xsl:variable>
3732
+ <xsl:variable name="zero-space">​</xsl:variable>
3733
+ <xsl:choose>
3734
+ <xsl:when test="contains($text, $zero-space-after-equals)">
3735
+ <xsl:value-of select="substring-before($text, $zero-space-after-equals)"/>
3736
+ <xsl:value-of select="$zero-space-after-equals"/>
3737
+ <xsl:value-of select="$zero-space"/>
3738
+ <xsl:call-template name="add-zero-spaces-equal">
3739
+ <xsl:with-param name="text" select="substring-after($text, $zero-space-after-equals)"/>
3740
+ </xsl:call-template>
3741
+ </xsl:when>
3742
+ <xsl:when test="contains($text, $zero-space-after-equal)">
3743
+ <xsl:value-of select="substring-before($text, $zero-space-after-equal)"/>
3744
+ <xsl:value-of select="$zero-space-after-equal"/>
3745
+ <xsl:value-of select="$zero-space"/>
3746
+ <xsl:call-template name="add-zero-spaces-equal">
3747
+ <xsl:with-param name="text" select="substring-after($text, $zero-space-after-equal)"/>
3748
+ </xsl:call-template>
3749
+ </xsl:when>
3750
+ <xsl:otherwise>
3751
+ <xsl:value-of select="$text"/>
3752
+ </xsl:otherwise>
3753
+ </xsl:choose>
3754
+ </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">
3755
+ <xsl:variable name="simple-table">
3756
+
3757
+ <!-- Step 1. colspan processing -->
3758
+ <xsl:variable name="simple-table-colspan">
3759
+ <tbody>
3760
+ <xsl:apply-templates mode="simple-table-colspan"/>
3761
+ </tbody>
3762
+ </xsl:variable>
3763
+
3764
+ <!-- Step 2. rowspan processing -->
3765
+ <xsl:variable name="simple-table-rowspan">
3766
+ <xsl:apply-templates select="xalan:nodeset($simple-table-colspan)" mode="simple-table-rowspan"/>
3767
+ </xsl:variable>
3768
+
3769
+ <xsl:copy-of select="xalan:nodeset($simple-table-rowspan)"/>
3770
+
3771
+ <!-- <xsl:choose>
3772
+ <xsl:when test="current()//*[local-name()='th'][@colspan] or current()//*[local-name()='td'][@colspan] ">
3773
+
3774
+ </xsl:when>
3775
+ <xsl:otherwise>
3776
+ <xsl:copy-of select="current()"/>
3777
+ </xsl:otherwise>
3778
+ </xsl:choose> -->
3779
+ </xsl:variable>
3780
+ <xsl:copy-of select="$simple-table"/>
3781
+ </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">
3782
+ <xsl:apply-templates mode="simple-table-colspan"/>
3783
+ </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">
3784
+ <xsl:choose>
3785
+ <xsl:when test="@colspan">
3786
+ <xsl:variable name="td">
3787
+ <xsl:element name="td">
3788
+ <xsl:attribute name="divide"><xsl:value-of select="@colspan"/></xsl:attribute>
3789
+ <xsl:apply-templates select="@*" mode="simple-table-colspan"/>
3790
+ <xsl:apply-templates mode="simple-table-colspan"/>
3791
+ </xsl:element>
3792
+ </xsl:variable>
3793
+ <xsl:call-template name="repeatNode">
3794
+ <xsl:with-param name="count" select="@colspan"/>
3795
+ <xsl:with-param name="node" select="$td"/>
3796
+ </xsl:call-template>
3797
+ </xsl:when>
3798
+ <xsl:otherwise>
3799
+ <xsl:element name="td">
3800
+ <xsl:apply-templates select="@*" mode="simple-table-colspan"/>
3801
+ <xsl:apply-templates mode="simple-table-colspan"/>
3802
+ </xsl:element>
3803
+ </xsl:otherwise>
3804
+ </xsl:choose>
3805
+ </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">
3806
+ <xsl:element name="tr">
3807
+ <xsl:apply-templates select="@*" mode="simple-table-colspan"/>
3808
+ <xsl:apply-templates mode="simple-table-colspan"/>
3809
+ </xsl:element>
3810
+ </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">
3811
+ <xsl:copy>
3812
+ <xsl:apply-templates select="@*|node()" mode="simple-table-colspan"/>
3813
+ </xsl:copy>
3814
+ </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">
3815
+ <xsl:param name="count"/>
3816
+ <xsl:param name="node"/>
3817
+
3818
+ <xsl:if test="$count &gt; 0">
3819
+ <xsl:call-template name="repeatNode">
3820
+ <xsl:with-param name="count" select="$count - 1"/>
3821
+ <xsl:with-param name="node" select="$node"/>
3822
+ </xsl:call-template>
3823
+ <xsl:copy-of select="$node"/>
3824
+ </xsl:if>
3825
+ </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">
3826
+ <xsl:copy>
3827
+ <xsl:apply-templates select="@*|node()" mode="simple-table-rowspan"/>
3828
+ </xsl:copy>
3829
+ </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">
3830
+ <xsl:copy>
3831
+ <xsl:copy-of select="tr[1]"/>
3832
+ <xsl:apply-templates select="tr[2]" mode="simple-table-rowspan">
3833
+ <xsl:with-param name="previousRow" select="tr[1]"/>
3834
+ </xsl:apply-templates>
3835
+ </xsl:copy>
3836
+ </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">
3837
+ <xsl:param name="previousRow"/>
3838
+ <xsl:variable name="currentRow" select="."/>
3839
+
3840
+ <xsl:variable name="normalizedTDs">
3841
+ <xsl:for-each select="xalan:nodeset($previousRow)//td">
3842
+ <xsl:choose>
3843
+ <xsl:when test="@rowspan &gt; 1">
3844
+ <xsl:copy>
3845
+ <xsl:attribute name="rowspan">
3846
+ <xsl:value-of select="@rowspan - 1"/>
3847
+ </xsl:attribute>
3848
+ <xsl:copy-of select="@*[not(name() = 'rowspan')]"/>
3849
+ <xsl:copy-of select="node()"/>
3850
+ </xsl:copy>
3851
+ </xsl:when>
3852
+ <xsl:otherwise>
3853
+ <xsl:copy-of select="$currentRow/td[1 + count(current()/preceding-sibling::td[not(@rowspan) or (@rowspan = 1)])]"/>
3854
+ </xsl:otherwise>
3855
+ </xsl:choose>
3856
+ </xsl:for-each>
3857
+ </xsl:variable>
3858
+
3859
+ <xsl:variable name="newRow">
3860
+ <xsl:copy>
3861
+ <xsl:copy-of select="$currentRow/@*"/>
3862
+ <xsl:copy-of select="xalan:nodeset($normalizedTDs)"/>
3863
+ </xsl:copy>
3864
+ </xsl:variable>
3865
+ <xsl:copy-of select="$newRow"/>
3866
+
3867
+ <xsl:apply-templates select="following-sibling::tr[1]" mode="simple-table-rowspan">
3868
+ <xsl:with-param name="previousRow" select="$newRow"/>
3869
+ </xsl:apply-templates>
3870
+ </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">
3871
+ <xsl:variable name="language" select="//*[local-name()='bibdata']//*[local-name()='language']"/>
3872
+ <xsl:choose>
3873
+ <xsl:when test="$language = 'English'">en</xsl:when>
3874
+ <xsl:otherwise><xsl:value-of select="$language"/></xsl:otherwise>
3875
+ </xsl:choose>
3876
+ </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">
3877
+ <xsl:param name="str"/>
3878
+ <xsl:variable name="str2" select="translate($str, '-', ' ')"/>
3879
+ <xsl:choose>
3880
+ <xsl:when test="contains($str2, ' ')">
3881
+ <xsl:variable name="substr" select="substring-before($str2, ' ')"/>
3882
+ <xsl:value-of select="translate(substring($substr, 1, 1), $lower, $upper)"/>
3883
+ <xsl:value-of select="substring($substr, 2)"/>
3884
+ <xsl:text> </xsl:text>
3885
+ <xsl:call-template name="capitalizeWords">
3886
+ <xsl:with-param name="str" select="substring-after($str2, ' ')"/>
3887
+ </xsl:call-template>
3888
+ </xsl:when>
3889
+ <xsl:otherwise>
3890
+ <xsl:value-of select="translate(substring($str2, 1, 1), $lower, $upper)"/>
3891
+ <xsl:value-of select="substring($str2, 2)"/>
3892
+ </xsl:otherwise>
3893
+ </xsl:choose>
3894
+ </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="mathml:math">
3895
+ <fo:inline font-family="STIX2Math">
3896
+ <fo:instream-foreign-object fox:alt-text="Math">
3897
+ <xsl:copy-of select="."/>
3898
+ </fo:instream-foreign-object>
3899
+ </fo:inline>
3900
+ </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()='localityStack']">
3901
+ <xsl:for-each select="*[local-name()='locality']">
3902
+ <xsl:if test="position() =1"><xsl:text>, </xsl:text></xsl:if>
3903
+ <xsl:apply-templates select="."/>
3904
+ <xsl:if test="position() != last()"><xsl:text>; </xsl:text></xsl:if>
3905
+ </xsl:for-each>
3906
+ </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()='link']" name="link">
3907
+ <xsl:variable name="target">
3908
+ <xsl:choose>
3909
+ <xsl:when test="starts-with(normalize-space(@target), 'mailto:')">
3910
+ <xsl:value-of select="normalize-space(substring-after(@target, 'mailto:'))"/>
3911
+ </xsl:when>
3912
+ <xsl:otherwise>
3913
+ <xsl:value-of select="normalize-space(@target)"/>
3914
+ </xsl:otherwise>
3915
+ </xsl:choose>
3916
+ </xsl:variable>
3917
+ <fo:inline xsl:use-attribute-sets="link-style">
3918
+ <xsl:choose>
3919
+ <xsl:when test="$target = ''">
3920
+ <xsl:apply-templates/>
3921
+ </xsl:when>
3922
+ <xsl:otherwise>
3923
+ <fo:basic-link external-destination="{@target}" fox:alt-text="{@target}">
3924
+ <xsl:choose>
3925
+ <xsl:when test="normalize-space(.) = ''">
3926
+ <xsl:value-of select="$target"/>
3927
+ </xsl:when>
3928
+ <xsl:otherwise>
3929
+ <xsl:apply-templates/>
3930
+ </xsl:otherwise>
3931
+ </xsl:choose>
3932
+ </fo:basic-link>
3933
+ </xsl:otherwise>
3934
+ </xsl:choose>
3935
+ </fo:inline>
3936
+ </xsl:template></xsl:stylesheet>