metanorma-ogc 2.3.3 → 2.3.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -203,13 +203,13 @@ module IsoDoc
203
203
  display_order_xpath(docxml, "//indexsect", i)
204
204
  end
205
205
 
206
- def norm_ref_entry_code(_ordinal, _idents, _ids, _standard, _datefn)
206
+ def norm_ref_entry_code(_ordinal, _idents, _ids, _standard, _datefn, _bib)
207
207
  ""
208
208
  end
209
209
 
210
210
  # if ids is just a number, only use that ([1] Non-Standard)
211
211
  # else, use both ordinal, as prefix, and ids
212
- def biblio_ref_entry_code(ordinal, ids, _id, standard, datefn)
212
+ def biblio_ref_entry_code(ordinal, ids, _id, standard, datefn, _bib)
213
213
  standard and return "[#{ordinal}]<tab/>"
214
214
  ret = (ids[:ordinal] || ids[:metanorma] || "[#{ordinal}]")
215
215
  prefix_bracketed_ref("#{ret}#{datefn}")
@@ -3,7 +3,7 @@ module IsoDoc
3
3
  module BaseConvert
4
4
  def intro_clause(elem, out)
5
5
  out.div **{ class: "Section3", id: elem["id"] } do |div|
6
- clause_name(nil, elem&.at(ns("./title")), div, class: "IntroTitle")
6
+ clause_name(elem, elem&.at(ns("./title")), div, class: "IntroTitle")
7
7
  elem.elements.each { |e| parse(e, div) unless e.name == "title" }
8
8
  end
9
9
  end
@@ -48,7 +48,7 @@ module IsoDoc
48
48
  f = isoxml.at(ns("//preface/abstract")) || return
49
49
  page_break(out)
50
50
  out.div **attr_code(id: f["id"]) do |s|
51
- clause_name(nil, f&.at(ns("./title")), s, class: "AbstractTitle")
51
+ clause_name(f, f&.at(ns("./title")), s, class: "AbstractTitle")
52
52
  f.elements.each { |e| parse(e, s) unless e.name == "title" }
53
53
  end
54
54
  end
@@ -57,7 +57,7 @@ module IsoDoc
57
57
  f = isoxml.at(ns("//foreword")) || return
58
58
  page_break(out)
59
59
  out.div **attr_code(id: f["id"]) do |s|
60
- clause_name(nil, f&.at(ns("./title")), s, class: "ForewordTitle")
60
+ clause_name(f, f&.at(ns("./title")), s, class: "ForewordTitle")
61
61
  f.elements.each { |e| parse(e, s) unless e.name == "title" }
62
62
  end
63
63
  end
@@ -70,7 +70,7 @@ module IsoDoc
70
70
  def conformance(isoxml, out, num)
71
71
  f = isoxml.at(ns("//clause[@type = 'conformance']")) or return num
72
72
  out.div **attr_code(id: f["id"]) do |div|
73
- clause_name(nil, f&.at(ns("./title")), div, nil)
73
+ clause_name(f, f&.at(ns("./title")), div, nil)
74
74
  f.elements.each { |e| parse(e, div) unless e.name == "title" }
75
75
  end
76
76
  num
@@ -522,7 +522,6 @@
522
522
  <value>tip</value>
523
523
  <value>important</value>
524
524
  <value>caution</value>
525
- <value>statement</value>
526
525
  </choice>
527
526
  </define>
528
527
  <define name="figure">
@@ -216,6 +216,9 @@
216
216
  <optional>
217
217
  <ref name="fullname"/>
218
218
  </optional>
219
+ <zeroOrMore>
220
+ <ref name="credential"/>
221
+ </zeroOrMore>
219
222
  <zeroOrMore>
220
223
  <ref name="affiliation"/>
221
224
  </zeroOrMore>
@@ -232,6 +235,11 @@
232
235
  <ref name="FullNameType"/>
233
236
  </element>
234
237
  </define>
238
+ <define name="credential">
239
+ <element name="credential">
240
+ <text/>
241
+ </element>
242
+ </define>
235
243
  <define name="FullNameType">
236
244
  <choice>
237
245
  <group>
@@ -305,7 +313,9 @@
305
313
  <zeroOrMore>
306
314
  <ref name="affiliationdescription"/>
307
315
  </zeroOrMore>
308
- <ref name="organization"/>
316
+ <optional>
317
+ <ref name="organization"/>
318
+ </optional>
309
319
  </element>
310
320
  </define>
311
321
  <define name="affiliationname">
@@ -16,7 +16,7 @@ module Metanorma
16
16
  csv_split(HTMLEntities.new
17
17
  .decode(node.attr("submitting-organizations")), ";")&.each do |org|
18
18
  xml.contributor do |c|
19
- c.role **{ type: "author" }
19
+ c.role type: "author"
20
20
  c.organization do |a|
21
21
  a.name org
22
22
  end
@@ -39,12 +39,12 @@ module Metanorma
39
39
  def personal_role(node, contrib, suffix)
40
40
  type = node.attr("role#{suffix}")&.downcase || "editor"
41
41
  if type == "contributor"
42
- contrib.role **{ type: "author" } do |r|
42
+ contrib.role type: "author" do |r|
43
43
  r.description do |d|
44
44
  d << type
45
45
  end
46
46
  end
47
- else contrib.role **{ type: type }
47
+ else contrib.role type: type
48
48
  end
49
49
  end
50
50
 
@@ -52,7 +52,7 @@ module Metanorma
52
52
  return unless node.attr("editor")
53
53
 
54
54
  xml.contributor do |c|
55
- c.role **{ type: "editor" }
55
+ c.role type: "editor"
56
56
  c.person do |p|
57
57
  p.name do |n|
58
58
  n.completename node.attr("editor")
@@ -114,14 +114,13 @@ module Metanorma
114
114
  end
115
115
 
116
116
  def metadata_id(node, xml)
117
- e = externalid(node) and xml.docidentifier e, **{ type: "ogc-external" }
117
+ e = externalid(node) and xml.docidentifier e, type: "ogc-external"
118
118
  node.attr("referenceurlid") and
119
- xml.docidentifier externalurl(node), **{ type: "ogc-external" }
119
+ xml.docidentifier externalurl(node), type: "ogc-external"
120
120
  docnumber = node.attr("docnumber") || node.attr("docreference")
121
- if docnumber
122
- xml.docidentifier docnumber, **{ type: "ogc-internal" }
123
- xml.docnumber docnumber
124
- end
121
+ id = node.attr("docidentifier") || docnumber
122
+ xml.docidentifier id, type: "ogc-internal"
123
+ docnumber and xml.docnumber docnumber
125
124
  end
126
125
 
127
126
  def externalurl(node)
@@ -153,7 +152,7 @@ module Metanorma
153
152
 
154
153
  def ogc_date(node, xml, ogcname, metanormaname)
155
154
  if node.attr(ogcname)
156
- xml.date **{ type: metanormaname } do |d|
155
+ xml.date type: metanormaname do |d|
157
156
  d.on node.attr(ogcname)
158
157
  end
159
158
  end