metanorma-document 0.2.6 → 0.2.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (202) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop_todo.yml +321 -45
  3. data/Gemfile +2 -0
  4. data/lib/metanorma/basic_document/ancillary_blocks/figure_block.rb +3 -1
  5. data/lib/metanorma/basic_document/blocks/basic_block.rb +5 -1
  6. data/lib/metanorma/basic_document/blocks/note_block.rb +5 -0
  7. data/lib/metanorma/basic_document/blocks.rb +3 -24
  8. data/lib/metanorma/basic_document/lists/list.rb +2 -1
  9. data/lib/metanorma/basic_document/lists/list_item.rb +17 -0
  10. data/lib/metanorma/basic_document/lists.rb +1 -0
  11. data/lib/metanorma/basic_document/paragraphs/paragraph_with_footnote.rb +3 -1
  12. data/lib/metanorma/basic_document/reference_elements/callout.rb +1 -1
  13. data/lib/metanorma/basic_document/reference_elements/footnote.rb +1 -1
  14. data/lib/metanorma/basic_document/text_elements/mathml.rb +1 -1
  15. data/lib/metanorma/bipm_document/root.rb +10 -50
  16. data/lib/metanorma/bipm_document.rb +0 -2
  17. data/lib/metanorma/bsi_document/metadata/bsi_bib_data_extension_type.rb +10 -0
  18. data/lib/metanorma/bsi_document/metadata/bsi_bibliographic_item.rb +15 -0
  19. data/lib/metanorma/bsi_document/metadata.rb +12 -0
  20. data/lib/metanorma/bsi_document/root.rb +29 -0
  21. data/lib/metanorma/bsi_document/sections/bsi_annex_section.rb +25 -0
  22. data/lib/metanorma/bsi_document/sections/bsi_clause_section.rb +25 -0
  23. data/lib/metanorma/bsi_document/sections/bsi_sections.rb +27 -0
  24. data/lib/metanorma/bsi_document/sections.rb +11 -0
  25. data/lib/metanorma/bsi_document.rb +11 -0
  26. data/lib/metanorma/cc_document/root.rb +10 -50
  27. data/lib/metanorma/cc_document.rb +0 -2
  28. data/lib/metanorma/collection.rb +0 -2
  29. data/lib/metanorma/document/components/ancillary_blocks/example_block.rb +3 -3
  30. data/lib/metanorma/document/components/ancillary_blocks/figure_block.rb +2 -0
  31. data/lib/metanorma/document/components/ancillary_blocks/sourcecode_block.rb +2 -0
  32. data/lib/metanorma/document/components/blocks/passthrough.rb +21 -0
  33. data/lib/metanorma/document/components/blocks/requirement_model.rb +159 -0
  34. data/lib/metanorma/document/components/blocks.rb +10 -0
  35. data/lib/metanorma/document/components/contrib_metadata/contribution_element_metadata.rb +3 -1
  36. data/lib/metanorma/document/components/id_elements/image.rb +2 -0
  37. data/lib/metanorma/document/components/inline/xref_element.rb +8 -0
  38. data/lib/metanorma/document/components/lists/definition_list.rb +6 -0
  39. data/lib/metanorma/document/components/lists/list_item.rb +1 -1
  40. data/lib/metanorma/document/components/lists/ordered_list.rb +6 -0
  41. data/lib/metanorma/document/components/lists/unordered_list.rb +8 -0
  42. data/lib/metanorma/document/components/multi_paragraph/admonition_block.rb +8 -0
  43. data/lib/metanorma/document/components/multi_paragraph/review_block.rb +3 -0
  44. data/lib/metanorma/document/components/paragraphs/paragraph_block.rb +6 -2
  45. data/lib/metanorma/document/components/reference_elements/source_element.rb +57 -0
  46. data/lib/metanorma/document/components/reference_elements.rb +6 -0
  47. data/lib/metanorma/document/components/sections/references_section.rb +1 -1
  48. data/lib/metanorma/document/components/tables/table_block.rb +10 -0
  49. data/lib/metanorma/document/components/tables/table_cell.rb +2 -1
  50. data/lib/metanorma/document/data_types.rb +0 -4
  51. data/lib/metanorma/document/elements/add.rb +18 -0
  52. data/lib/metanorma/document/elements/del.rb +18 -0
  53. data/lib/metanorma/document/elements.rb +10 -0
  54. data/lib/metanorma/document/relaton/address.rb +16 -0
  55. data/lib/metanorma/document/root.rb +1 -3
  56. data/lib/metanorma/document/version.rb +1 -1
  57. data/lib/metanorma/document.rb +11 -2
  58. data/lib/metanorma/gb_document/metadata/gb_bib_data_extension_type.rb +10 -0
  59. data/lib/metanorma/gb_document/metadata/gb_bibliographic_item.rb +15 -0
  60. data/lib/metanorma/gb_document/metadata.rb +12 -0
  61. data/lib/metanorma/gb_document/root.rb +29 -0
  62. data/lib/metanorma/gb_document.rb +10 -0
  63. data/lib/metanorma/generic_document/root.rb +31 -0
  64. data/lib/metanorma/generic_document.rb +7 -0
  65. data/lib/metanorma/html/base_renderer.rb +198 -111
  66. data/lib/metanorma/html/bipm_renderer.rb +16 -8
  67. data/lib/metanorma/html/cc_renderer.rb +0 -1
  68. data/lib/metanorma/html/component/base.rb +5 -1
  69. data/lib/metanorma/html/component/footnote_collector.rb +3 -3
  70. data/lib/metanorma/html/component/index_section.rb +27 -9
  71. data/lib/metanorma/html/component/index_term_collector.rb +8 -3
  72. data/lib/metanorma/html/component.rb +2 -1
  73. data/lib/metanorma/html/drops/figure_drop.rb +14 -5
  74. data/lib/metanorma/html/drops/formula_drop.rb +7 -2
  75. data/lib/metanorma/html/drops/sourcecode_drop.rb +6 -2
  76. data/lib/metanorma/html/drops.rb +2 -1
  77. data/lib/metanorma/html/generator.rb +33 -16
  78. data/lib/metanorma/html/iec_renderer.rb +0 -1
  79. data/lib/metanorma/html/ieee_renderer.rb +0 -1
  80. data/lib/metanorma/html/ietf_renderer.rb +0 -1
  81. data/lib/metanorma/html/iho_renderer.rb +1 -2
  82. data/lib/metanorma/html/iso_renderer.rb +68 -23
  83. data/lib/metanorma/html/itu_renderer.rb +0 -1
  84. data/lib/metanorma/html/ogc_renderer.rb +0 -1
  85. data/lib/metanorma/html/oiml_renderer.rb +0 -1
  86. data/lib/metanorma/html/pdfa_renderer.rb +0 -1
  87. data/lib/metanorma/html/ribose_renderer.rb +0 -1
  88. data/lib/metanorma/html/standard_renderer.rb +61 -28
  89. data/lib/metanorma/html/theme.rb +2 -2
  90. data/lib/metanorma/html.rb +48 -1
  91. data/lib/metanorma/iec_document/root.rb +8 -47
  92. data/lib/metanorma/iec_document.rb +2 -3
  93. data/lib/metanorma/ieee_document/root.rb +14 -50
  94. data/lib/metanorma/ieee_document/sections/ieee_sections.rb +31 -0
  95. data/lib/metanorma/ieee_document/sections.rb +9 -0
  96. data/lib/metanorma/ieee_document.rb +3 -3
  97. data/lib/metanorma/ietf_document/metadata/ietf_bib_data_extension_type.rb +0 -2
  98. data/lib/metanorma/ietf_document/metadata/ietf_bibliographic_item.rb +0 -2
  99. data/lib/metanorma/ietf_document/root.rb +14 -50
  100. data/lib/metanorma/ietf_document/sections/ietf_annex_section.rb +26 -0
  101. data/lib/metanorma/ietf_document/sections/ietf_clause_section.rb +26 -0
  102. data/lib/metanorma/ietf_document/sections/ietf_content_section.rb +25 -0
  103. data/lib/metanorma/ietf_document/sections/ietf_sections.rb +35 -0
  104. data/lib/metanorma/ietf_document/sections.rb +4 -23
  105. data/lib/metanorma/ietf_document.rb +4 -3
  106. data/lib/metanorma/iho_document/metadata/iho_bib_data_extension_type.rb +0 -2
  107. data/lib/metanorma/iho_document/root.rb +10 -50
  108. data/lib/metanorma/iho_document.rb +0 -3
  109. data/lib/metanorma/iso_document/annotation_container.rb +1 -10
  110. data/lib/metanorma/iso_document/boilerplate.rb +1 -11
  111. data/lib/metanorma/iso_document/metadata/iso_bibliographic_item.rb +2 -2
  112. data/lib/metanorma/iso_document/metadata/iso_localized_title.rb +4 -3
  113. data/lib/metanorma/iso_document/metadata/metanorma_extension.rb +1 -12
  114. data/lib/metanorma/iso_document/root.rb +7 -73
  115. data/lib/metanorma/iso_document/sections/colophon.rb +1 -16
  116. data/lib/metanorma/iso_document/sections/iso_annex_section.rb +11 -133
  117. data/lib/metanorma/iso_document/sections/iso_clause_section.rb +9 -166
  118. data/lib/metanorma/iso_document/sections/iso_foreword_section.rb +15 -89
  119. data/lib/metanorma/iso_document/sections/iso_preface.rb +15 -21
  120. data/lib/metanorma/iso_document/sections/iso_sections.rb +19 -29
  121. data/lib/metanorma/iso_document/sections/iso_terms_section.rb +6 -9
  122. data/lib/metanorma/iso_document/terms/term_expression.rb +2 -47
  123. data/lib/metanorma/iso_document/terms/term_origin.rb +2 -24
  124. data/lib/metanorma/iso_document/terms/term_source.rb +4 -32
  125. data/lib/metanorma/iso_document.rb +2 -2
  126. data/lib/metanorma/itu_document/root.rb +10 -50
  127. data/lib/metanorma/itu_document.rb +0 -2
  128. data/lib/metanorma/jis_document/metadata/jis_bib_data_extension_type.rb +10 -0
  129. data/lib/metanorma/jis_document/metadata/jis_bibliographic_item.rb +15 -0
  130. data/lib/metanorma/jis_document/metadata.rb +12 -0
  131. data/lib/metanorma/jis_document/root.rb +29 -0
  132. data/lib/metanorma/jis_document/sections/jis_annex_section.rb +20 -0
  133. data/lib/metanorma/jis_document/sections.rb +9 -0
  134. data/lib/metanorma/jis_document.rb +11 -0
  135. data/lib/metanorma/m3d_document/metadata/m3d_bib_data_extension_type.rb +10 -0
  136. data/lib/metanorma/m3d_document/metadata/m3d_bibliographic_item.rb +15 -0
  137. data/lib/metanorma/m3d_document/metadata.rb +12 -0
  138. data/lib/metanorma/m3d_document/root.rb +29 -0
  139. data/lib/metanorma/m3d_document.rb +10 -0
  140. data/lib/metanorma/nist_document/metadata/nist_bib_data_extension_type.rb +10 -0
  141. data/lib/metanorma/nist_document/metadata/nist_bibliographic_item.rb +15 -0
  142. data/lib/metanorma/nist_document/metadata.rb +12 -0
  143. data/lib/metanorma/nist_document/root.rb +29 -0
  144. data/lib/metanorma/nist_document/sections/errata.rb +16 -0
  145. data/lib/metanorma/nist_document/sections/errata_clause.rb +20 -0
  146. data/lib/metanorma/nist_document/sections/errata_row.rb +22 -0
  147. data/lib/metanorma/nist_document/sections/nist_preface.rb +30 -0
  148. data/lib/metanorma/nist_document/sections.rb +12 -0
  149. data/lib/metanorma/nist_document.rb +11 -0
  150. data/lib/metanorma/ogc_document/root.rb +10 -50
  151. data/lib/metanorma/ogc_document.rb +0 -2
  152. data/lib/metanorma/oiml_document/root.rb +8 -47
  153. data/lib/metanorma/oiml_document.rb +2 -3
  154. data/lib/metanorma/plateau_document/metadata/plateau_bibliographic_item.rb +13 -0
  155. data/lib/metanorma/plateau_document/metadata.rb +10 -0
  156. data/lib/metanorma/plateau_document/root.rb +29 -0
  157. data/lib/metanorma/plateau_document.rb +10 -0
  158. data/lib/metanorma/registers/setup.rb +162 -0
  159. data/lib/metanorma/registers.rb +7 -0
  160. data/lib/metanorma/ribose_document/root.rb +10 -52
  161. data/lib/metanorma/ribose_document.rb +0 -2
  162. data/lib/metanorma/standard_document/annotation_container.rb +14 -0
  163. data/lib/metanorma/standard_document/block_attributes.rb +226 -0
  164. data/lib/metanorma/standard_document/blocks/passthrough.rb +1 -18
  165. data/lib/metanorma/standard_document/blocks/requirement_model.rb +18 -163
  166. data/lib/metanorma/standard_document/boilerplate.rb +14 -0
  167. data/lib/metanorma/standard_document/elements/add.rb +1 -17
  168. data/lib/metanorma/standard_document/elements/del.rb +1 -17
  169. data/lib/metanorma/standard_document/metadata/metanorma_extension.rb +16 -0
  170. data/lib/metanorma/standard_document/metadata.rb +2 -0
  171. data/lib/metanorma/standard_document/refs/reference_to_term.rb +2 -1
  172. data/lib/metanorma/standard_document/root_attributes.rb +78 -0
  173. data/lib/metanorma/standard_document/sections/abstract.rb +1 -3
  174. data/lib/metanorma/standard_document/sections/acknowledgements.rb +1 -3
  175. data/lib/metanorma/standard_document/sections/annex_section.rb +81 -16
  176. data/lib/metanorma/standard_document/sections/bibliography_section.rb +1 -2
  177. data/lib/metanorma/standard_document/sections/clause_section.rb +102 -10
  178. data/lib/metanorma/standard_document/sections/colophon.rb +16 -0
  179. data/lib/metanorma/standard_document/sections/definition_section.rb +45 -42
  180. data/lib/metanorma/standard_document/sections/floating_section_title.rb +23 -0
  181. data/lib/metanorma/standard_document/sections/foreword.rb +1 -3
  182. data/lib/metanorma/standard_document/sections/introduction.rb +1 -4
  183. data/lib/metanorma/standard_document/sections/misc_container.rb +5 -2
  184. data/lib/metanorma/standard_document/sections/preface.rb +36 -0
  185. data/lib/metanorma/standard_document/sections/sections.rb +40 -0
  186. data/lib/metanorma/standard_document/sections/standard_content_section.rb +42 -9
  187. data/lib/metanorma/standard_document/sections/terms_section.rb +52 -10
  188. data/lib/metanorma/standard_document/sections.rb +6 -2
  189. data/lib/metanorma/standard_document/terms/designation.rb +1 -1
  190. data/lib/metanorma/standard_document/terms/term_expression.rb +51 -0
  191. data/lib/metanorma/standard_document/terms.rb +1 -0
  192. data/lib/metanorma/standard_document.rb +7 -2
  193. data/lib/metanorma/un_document/metadata/un_bib_data_extension_type.rb +10 -0
  194. data/lib/metanorma/un_document/metadata/un_bibliographic_item.rb +15 -0
  195. data/lib/metanorma/un_document/metadata.rb +12 -0
  196. data/lib/metanorma/un_document/root.rb +29 -0
  197. data/lib/metanorma/un_document/sections/un_preface.rb +23 -0
  198. data/lib/metanorma/un_document/sections/un_sections.rb +24 -0
  199. data/lib/metanorma/un_document/sections.rb +10 -0
  200. data/lib/metanorma/un_document.rb +11 -0
  201. metadata +77 -3
  202. data/lib/metanorma/html/whitespace_patch.rb +0 -47
@@ -3,39 +3,33 @@
3
3
  module Metanorma
4
4
  module IsoDocument
5
5
  module Sections
6
- # Prefatory clauses appearing in an ISO/IEC document.
7
- class IsoPreface < Lutaml::Model::Serializable
8
- # Abstract.
6
+ # Prefatory clauses in an ISO/IEC document.
7
+ # Extends StandardDocument::Preface with ISO-specific section types:
8
+ # abstract → IsoAbstractSection
9
+ # foreword → IsoForewordSection
10
+ # introduction → IsoClauseSection
11
+ # ISO preface mandates foreword; isodoc preface is permissive.
12
+ class IsoPreface < Metanorma::StandardDocument::Sections::Preface
13
+ # Override: ISO uses specific section types
9
14
  attribute :abstract, IsoAbstractSection
10
-
11
- # Foreword.
12
15
  attribute :foreword, IsoForewordSection
13
-
14
- # Introduction.
15
16
  attribute :introduction, IsoClauseSection
16
17
 
17
- # TOC and other special clauses in preface.
18
+ # Generic clauses in preface use IsoClauseSection
18
19
  attribute :clause, IsoClauseSection, collection: true
19
20
 
20
- # Acknowledgements section.
21
+ # Acknowledgements and executivesummary use IsoClauseSection
21
22
  attribute :acknowledgements, IsoClauseSection
22
-
23
- # Executive summary section.
24
23
  attribute :executivesummary, IsoClauseSection
25
24
 
26
- attribute :semx_id, :string
27
- attribute :displayorder, :integer
28
-
29
25
  xml do
30
26
  element "preface"
31
- map_element "abstract", to: :abstract
32
- map_element "foreword", to: :foreword
33
- map_element "introduction", to: :introduction
27
+ ordered
28
+
29
+ Metanorma::StandardDocument::SectionXmlMapping.apply_preface_elements(self)
34
30
  map_element "clause", to: :clause
35
- map_element "acknowledgements", to: :acknowledgements
36
- map_element "executivesummary", to: :executivesummary
37
- map_attribute "semx-id", to: :semx_id
38
- map_attribute "displayorder", to: :displayorder
31
+
32
+ Metanorma::StandardDocument::SectionXmlMapping.apply_preface_attributes(self)
39
33
  end
40
34
  end
41
35
  end
@@ -4,56 +4,46 @@ module Metanorma
4
4
  module IsoDocument
5
5
  module Sections
6
6
  # Main body of ISO/IEC document.
7
- class IsoSections < Lutaml::Model::Serializable
8
- # Notes applicable to the entire document (e.g. footnotes on title).
7
+ # Extends StandardDocument::Sections with ISO strict ordering:
8
+ # (note | admonition)*, clause, (term-clause | terms)?, definitions?,
9
+ # (clause | term-clause | terms)+
10
+ class IsoSections < Metanorma::StandardDocument::Sections::Sections
11
+ # Notes applicable to the entire document (appearing before clauses)
9
12
  attribute :note,
10
13
  Metanorma::Document::Components::Blocks::NoteBlock,
11
14
  collection: true
12
15
 
13
- # Admonitions applicable to the entire document (appearing before the initial clause).
16
+ # Admonitions applicable to the entire document
14
17
  attribute :admonition,
15
18
  Metanorma::Document::Components::MultiParagraph::AdmonitionBlock,
16
19
  collection: true
17
20
 
18
- # Terms & Definitions clause.
19
- attribute :terms,
20
- IsoTermsSection
21
+ # Override: ISO terms is singular (zero or one), uses IsoTermsSection
22
+ attribute :terms, IsoTermsSection
21
23
 
22
- # Symbols & Abbreviated Terms clause.
24
+ # Override: ISO definitions is singular (zero or one)
23
25
  attribute :definitions,
24
26
  Metanorma::StandardDocument::Sections::DefinitionSection
25
27
 
26
- # Normal Clauses.
27
- attribute :clause,
28
- IsoClauseSection,
29
- collection: true
30
-
31
- # References section (can appear inside <sections> in presentation XML).
32
- attribute :references,
33
- Metanorma::StandardDocument::Sections::StandardReferencesSection,
34
- collection: true
28
+ # Override: ISO clauses use IsoClauseSection
29
+ attribute :clause, IsoClauseSection, collection: true
35
30
 
36
- # Initial paragraphs (document title repeated at start of sections in some flavours).
31
+ # Initial paragraphs (document title repeated at start of sections)
37
32
  attribute :p,
38
33
  Metanorma::Document::Components::Paragraphs::ParagraphBlock,
39
34
  collection: true
40
35
 
41
- # Presentation-specific attributes
42
- attribute :semx_id, :string
43
- attribute :displayorder, :integer
44
-
45
36
  xml do
46
37
  element "sections"
47
38
  ordered
48
- map_element "note", to: :note
49
- map_element "admonition", to: :admonition
50
- map_element "terms", to: :terms
51
- map_element "definitions", to: :definitions
52
- map_element "clause", to: :clause
53
- map_element "references", to: :references
39
+
40
+ map_element "note", to: :note
41
+ map_element "admonition", to: :admonition
42
+
43
+ Metanorma::StandardDocument::SectionXmlMapping.apply_sections_elements(self)
54
44
  map_element "p", to: :p
55
- map_attribute "semx-id", to: :semx_id
56
- map_attribute "displayorder", to: :displayorder
45
+
46
+ Metanorma::StandardDocument::SectionXmlMapping.apply_sections_attributes(self)
57
47
  end
58
48
  end
59
49
  end
@@ -12,6 +12,9 @@ module Metanorma
12
12
  attribute :number, :string
13
13
  attribute :obligation, :string
14
14
  attribute :inline_header, :string
15
+ attribute :unnumbered, :string
16
+ attribute :toc, :string
17
+ attribute :class_attr, :string
15
18
  attribute :title, Metanorma::Document::Components::Inline::TitleWithAnnotationElement
16
19
  attribute :p, RawParagraph, collection: true
17
20
  attribute :ul, Metanorma::Document::Components::Lists::UnorderedList,
@@ -58,12 +61,9 @@ module Metanorma
58
61
 
59
62
  xml do
60
63
  element "terms"
61
- map_attribute "id", to: :id
62
- map_attribute "anchor", to: :anchor
63
- map_attribute "type", to: :type
64
- map_attribute "number", to: :number
65
- map_attribute "obligation", to: :obligation
66
- map_attribute "inline-header", to: :inline_header
64
+
65
+ Metanorma::StandardDocument::SectionXmlMapping.apply_content_section_attributes(self)
66
+
67
67
  map_element "title", to: :title
68
68
  map_element "fmt-title", to: :fmt_title
69
69
  map_element "fmt-xref-label", to: :fmt_xref_label
@@ -78,9 +78,6 @@ module Metanorma
78
78
  map_element "clause", to: :clause
79
79
  map_element "fmt-annotation-start", to: :fmt_annotation_start
80
80
  map_element "fmt-annotation-end", to: :fmt_annotation_end
81
- map_attribute "semx-id", to: :semx_id
82
- map_attribute "autonum", to: :autonum
83
- map_attribute "displayorder", to: :displayorder
84
81
  end
85
82
  end
86
83
  end
@@ -3,53 +3,8 @@
3
3
  module Metanorma
4
4
  module IsoDocument
5
5
  module Terms
6
- # Name element inside a term expression.
7
- # Has id and semx-id attributes in presentation XML.
8
- # Contains mixed content with inline elements like strike, em, etc.
9
- class TermNameElement < Lutaml::Model::Serializable
10
- attribute :id, :string
11
- attribute :semx_id, :string
12
- attribute :lang, :string
13
- attribute :text, :string, collection: true
14
- attribute :strike, Metanorma::Document::Components::TextElements::StrikeElement,
15
- collection: true
16
- attribute :em, Metanorma::Document::Components::Inline::EmRawElement,
17
- collection: true
18
- attribute :strong, Metanorma::Document::Components::Inline::StrongRawElement,
19
- collection: true
20
- attribute :sup, Metanorma::Document::Components::Inline::SupElement,
21
- collection: true
22
- attribute :sub, Metanorma::Document::Components::Inline::SubElement,
23
- collection: true
24
-
25
- xml do
26
- element "name"
27
- map_attribute "id", to: :id
28
- map_attribute "semx-id", to: :semx_id
29
- map_attribute "lang", to: :lang
30
- mixed_content
31
- map_content to: :text
32
- map_element "strike", to: :strike
33
- map_element "em", to: :em
34
- map_element "strong", to: :strong
35
- map_element "sup", to: :sup
36
- map_element "sub", to: :sub
37
- end
38
- end
39
-
40
- # Expression of a term designation.
41
- class TermExpression < Lutaml::Model::Serializable
42
- attribute :name, TermNameElement, collection: true
43
- attribute :usage, :string
44
- attribute :abbreviation_type, :string
45
-
46
- xml do
47
- element "expression"
48
- map_element "name", to: :name
49
- map_element "usage", to: :usage
50
- map_element "abbreviation-type", to: :abbreviation_type
51
- end
52
- end
6
+ TermNameElement = Metanorma::StandardDocument::Terms::TermNameElement
7
+ TermExpression = Metanorma::StandardDocument::Terms::TermExpression
53
8
  end
54
9
  end
55
10
  end
@@ -1,26 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module Metanorma
4
- module IsoDocument
5
- module Terms
6
- # Origin reference in a term source.
7
- class TermOrigin < Lutaml::Model::Serializable
8
- attribute :bibitemid, :string
9
- attribute :type, :string
10
- attribute :citeas, :string
11
- attribute :locality_stack, Metanorma::Document::Relaton::LocalityStack,
12
- collection: true
13
- attribute :display_text, Metanorma::Document::Components::Inline::DisplayTextElement
14
-
15
- xml do
16
- element "origin"
17
- map_attribute "bibitemid", to: :bibitemid
18
- map_attribute "type", to: :type
19
- map_attribute "citeas", to: :citeas
20
- map_element "localityStack", to: :locality_stack
21
- map_element "display-text", to: :display_text
22
- end
23
- end
24
- end
25
- end
26
- end
3
+ Metanorma::IsoDocument::Terms::TermOrigin =
4
+ Metanorma::Document::Components::ReferenceElements::SourceOrigin
@@ -1,40 +1,12 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ Metanorma::IsoDocument::Terms::TermSource =
4
+ Metanorma::Document::Components::ReferenceElements::SourceElement
5
+
3
6
  module Metanorma
4
7
  module IsoDocument
5
8
  module Terms
6
- # Modification element in term source, containing paragraphs.
7
- class TermModification < Lutaml::Model::Serializable
8
- attribute :id, :string
9
- attribute :p, RawParagraph, collection: true
10
-
11
- xml do
12
- element "modification"
13
- map_attribute "id", to: :id
14
- map_element "p", to: :p
15
- end
16
- end
17
-
18
- # Source of a term definition, with optional modification info.
19
- class TermSource < Lutaml::Model::Serializable
20
- attribute :id, :string
21
- attribute :status, :string
22
- attribute :type, :string
23
- attribute :origin, TermOrigin
24
- attribute :modification, TermModification
25
-
26
- xml do
27
- element "source"
28
- map_attribute "id", to: :id
29
- map_attribute "status", to: :status
30
- map_attribute "type", to: :type
31
- map_element "origin", to: :origin
32
- map_element "modification", to: :modification
33
- end
34
- end
35
-
36
- # Same structure as TermSource but mapped to the <termsource> element.
37
- class TermsourceElement < TermSource
9
+ class TermsourceElement < Metanorma::Document::Components::ReferenceElements::SourceElement
38
10
  xml do
39
11
  element "termsource"
40
12
  map_attribute "id", to: :id
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "metanorma/standard_document"
4
-
5
3
  module Metanorma
6
4
  module IsoDocument
7
5
  autoload :AnnotationContainer, "metanorma/iso_document/annotation_container"
@@ -14,3 +12,5 @@ module Metanorma
14
12
  autoload :Terms, "metanorma/iso_document/terms"
15
13
  end
16
14
  end
15
+
16
+ Metanorma::Registers::Setup.setup_iso_register
@@ -1,64 +1,24 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "metanorma/standard_document"
4
- require "metanorma/iso_document"
5
-
6
3
  module Metanorma
7
4
  module ItuDocument
8
- class Root < Metanorma::StandardDocument::Root
9
- attribute :version, :string
10
- attribute :type, :string
11
- attribute :schema_version, :string
12
- attribute :flavor, :string
5
+ class Root < Lutaml::Model::Serializable
6
+ include Metanorma::StandardDocument::RootAttributes
13
7
 
14
8
  attribute :bibdata, Metadata::ItuBibliographicItem
15
-
16
- attribute :term_sources,
17
- Metanorma::Document::Components::ReferenceElements::Citation,
9
+ attribute :preface,
10
+ Metanorma::StandardDocument::Sections::Preface
11
+ attribute :sections,
12
+ Metanorma::StandardDocument::Sections::Sections
13
+ attribute :annex,
14
+ Metanorma::StandardDocument::Sections::AnnexSection,
18
15
  collection: true
19
16
 
20
- attribute :preface, Metanorma::IsoDocument::Sections::IsoPreface
21
- attribute :sections, Metanorma::IsoDocument::Sections::IsoSections
22
- attribute :annex, Metanorma::IsoDocument::Sections::IsoAnnexSection,
23
- collection: true
24
- attribute :bibliography,
25
- Metanorma::StandardDocument::Sections::BibliographySection
26
- attribute :boilerplate, Metanorma::IsoDocument::Boilerplate
27
- attribute :metanorma_extension,
28
- Metanorma::IsoDocument::Metadata::MetanormaExtension
29
- attribute :annotation_container, Metanorma::IsoDocument::AnnotationContainer
30
- attribute :indexsect,
31
- Metanorma::Document::Components::Sections::BasicSection
32
- attribute :autonum, :string
33
- attribute :fmt_xref_label, :string
34
- attribute :localized_strings,
35
- Metanorma::Document::Components::Inline::LocalizedStringsElement
36
- attribute :fmt_footnote_container,
37
- Metanorma::Document::Components::Inline::FmtFootnoteContainerElement
38
- attribute :colophon, Metanorma::IsoDocument::Sections::Colophon
39
-
40
17
  xml do
41
18
  element "metanorma"
42
19
  namespace Metanorma::StandardDocument::Namespace
43
- map_attribute "type", to: :type
44
- map_attribute "version", to: :version
45
- map_attribute "schema-version", to: :schema_version
46
- map_attribute "flavor", to: :flavor
47
- map_element "bibdata", to: :bibdata
48
- map_element "termdocsource", to: :term_sources
49
- map_element "metanorma-extension", to: :metanorma_extension
50
- map_element "boilerplate", to: :boilerplate
51
- map_element "preface", to: :preface
52
- map_element "sections", to: :sections
53
- map_element "annex", to: :annex
54
- map_element "bibliography", to: :bibliography
55
- map_element "annotation-container", to: :annotation_container
56
- map_element "indexsect", to: :indexsect
57
- map_element "localized-strings", to: :localized_strings
58
- map_element "fmt-footnote-container", to: :fmt_footnote_container
59
- map_element "colophon", to: :colophon
60
- map_attribute "autonum", to: :autonum
61
- map_attribute "fmt-xref-label", to: :fmt_xref_label
20
+
21
+ Metanorma::StandardDocument::RootXmlMapping.apply(self)
62
22
  end
63
23
  end
64
24
  end
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "metanorma/standard_document"
4
-
5
3
  module Metanorma
6
4
  module ItuDocument
7
5
  autoload :Metadata, "metanorma/itu_document/metadata"
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Metanorma
4
+ module JisDocument
5
+ module Metadata
6
+ class JisBibDataExtensionType < Metanorma::IsoDocument::Metadata::IsoBibDataExtensionType
7
+ end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Metanorma
4
+ module JisDocument
5
+ module Metadata
6
+ class JisBibliographicItem < Metanorma::IsoDocument::Metadata::IsoBibliographicItem
7
+ attribute :ext, JisBibDataExtensionType
8
+
9
+ xml do
10
+ element "bibdata"
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Metanorma
4
+ module JisDocument
5
+ module Metadata
6
+ autoload :JisBibDataExtensionType,
7
+ "#{__dir__}/metadata/jis_bib_data_extension_type"
8
+ autoload :JisBibliographicItem,
9
+ "#{__dir__}/metadata/jis_bibliographic_item"
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Metanorma
4
+ module JisDocument
5
+ class Root < Lutaml::Model::Serializable
6
+ include Metanorma::StandardDocument::RootAttributes
7
+
8
+ def self.lutaml_default_register
9
+ :jis_document
10
+ end
11
+
12
+ attribute :bibdata, Metadata::JisBibliographicItem
13
+ attribute :preface,
14
+ Metanorma::IsoDocument::Sections::IsoPreface
15
+ attribute :sections,
16
+ Metanorma::IsoDocument::Sections::IsoSections
17
+ attribute :annex,
18
+ JisDocument::Sections::JisAnnexSection,
19
+ collection: true
20
+
21
+ xml do
22
+ element "metanorma"
23
+ namespace Metanorma::StandardDocument::Namespace
24
+
25
+ Metanorma::StandardDocument::RootXmlMapping.apply(self)
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Metanorma
4
+ module JisDocument
5
+ module Sections
6
+ class JisAnnexSection < Metanorma::IsoDocument::Sections::IsoAnnexSection
7
+ attribute :commentary, :string
8
+
9
+ xml do
10
+ element "annex"
11
+ ordered
12
+
13
+ Metanorma::StandardDocument::SectionXmlMapping.apply_annex_attributes(self)
14
+ map_attribute "commentary", to: :commentary
15
+ Metanorma::StandardDocument::SectionXmlMapping.apply_annex_elements(self)
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Metanorma
4
+ module JisDocument
5
+ module Sections
6
+ autoload :JisAnnexSection, "#{__dir__}/sections/jis_annex_section"
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Metanorma
4
+ module JisDocument
5
+ autoload :Metadata, "metanorma/jis_document/metadata"
6
+ autoload :Root, "metanorma/jis_document/root"
7
+ autoload :Sections, "metanorma/jis_document/sections"
8
+ end
9
+ end
10
+
11
+ Metanorma::Registers::Setup.setup_jis_register
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Metanorma
4
+ module M3dDocument
5
+ module Metadata
6
+ class M3dBibDataExtensionType < Metanorma::IsoDocument::Metadata::IsoBibDataExtensionType
7
+ end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Metanorma
4
+ module M3dDocument
5
+ module Metadata
6
+ class M3dBibliographicItem < Metanorma::IsoDocument::Metadata::IsoBibliographicItem
7
+ attribute :ext, M3dBibDataExtensionType
8
+
9
+ xml do
10
+ element "bibdata"
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Metanorma
4
+ module M3dDocument
5
+ module Metadata
6
+ autoload :M3dBibDataExtensionType,
7
+ "#{__dir__}/metadata/m3d_bib_data_extension_type"
8
+ autoload :M3dBibliographicItem,
9
+ "#{__dir__}/metadata/m3d_bibliographic_item"
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Metanorma
4
+ module M3dDocument
5
+ class Root < Lutaml::Model::Serializable
6
+ include Metanorma::StandardDocument::RootAttributes
7
+
8
+ def self.lutaml_default_register
9
+ :m3d_document
10
+ end
11
+
12
+ attribute :bibdata, Metadata::M3dBibliographicItem
13
+ attribute :preface,
14
+ Metanorma::StandardDocument::Sections::Preface
15
+ attribute :sections,
16
+ Metanorma::StandardDocument::Sections::Sections
17
+ attribute :annex,
18
+ Metanorma::StandardDocument::Sections::AnnexSection,
19
+ collection: true
20
+
21
+ xml do
22
+ element "metanorma"
23
+ namespace Metanorma::StandardDocument::Namespace
24
+
25
+ Metanorma::StandardDocument::RootXmlMapping.apply(self)
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Metanorma
4
+ module M3dDocument
5
+ autoload :Metadata, "metanorma/m3d_document/metadata"
6
+ autoload :Root, "metanorma/m3d_document/root"
7
+ end
8
+ end
9
+
10
+ Metanorma::Registers::Setup.setup_m3d_register
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Metanorma
4
+ module NistDocument
5
+ module Metadata
6
+ class NistBibDataExtensionType < Metanorma::IsoDocument::Metadata::IsoBibDataExtensionType
7
+ end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Metanorma
4
+ module NistDocument
5
+ module Metadata
6
+ class NistBibliographicItem < Metanorma::IsoDocument::Metadata::IsoBibliographicItem
7
+ attribute :ext, NistBibDataExtensionType
8
+
9
+ xml do
10
+ element "bibdata"
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Metanorma
4
+ module NistDocument
5
+ module Metadata
6
+ autoload :NistBibDataExtensionType,
7
+ "#{__dir__}/metadata/nist_bib_data_extension_type"
8
+ autoload :NistBibliographicItem,
9
+ "#{__dir__}/metadata/nist_bibliographic_item"
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Metanorma
4
+ module NistDocument
5
+ class Root < Lutaml::Model::Serializable
6
+ include Metanorma::StandardDocument::RootAttributes
7
+
8
+ def self.lutaml_default_register
9
+ :nist_document
10
+ end
11
+
12
+ attribute :bibdata, Metadata::NistBibliographicItem
13
+ attribute :preface,
14
+ NistDocument::Sections::NistPreface
15
+ attribute :sections,
16
+ Metanorma::StandardDocument::Sections::Sections
17
+ attribute :annex,
18
+ Metanorma::StandardDocument::Sections::AnnexSection,
19
+ collection: true
20
+
21
+ xml do
22
+ element "metanorma"
23
+ namespace Metanorma::StandardDocument::Namespace
24
+
25
+ Metanorma::StandardDocument::RootXmlMapping.apply(self)
26
+ end
27
+ end
28
+ end
29
+ end