sts 0.5.2 → 0.5.4

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 (446) hide show
  1. checksums.yaml +4 -4
  2. data/.gitmodules +3 -0
  3. data/.rubocop.yml +3 -0
  4. data/.rubocop_todo.yml +17 -3
  5. data/CLAUDE.md +72 -0
  6. data/GAPS.guidelines.iso-sts-ed2.1/01-maintenance.md +19 -0
  7. data/GAPS.guidelines.iso-sts-ed2.1/03-general.md +75 -0
  8. data/GAPS.guidelines.iso-sts-ed2.1/04-structure.md +75 -0
  9. data/GAPS.guidelines.iso-sts-ed2.1/05-content.md +63 -0
  10. data/GAPS.guidelines.iso-sts-ed2.1/06-tables.md +53 -0
  11. data/GAPS.guidelines.iso-sts-ed2.1/07-formulae.md +41 -0
  12. data/GAPS.guidelines.iso-sts-ed2.1/08-figures.md +45 -0
  13. data/GAPS.guidelines.iso-sts-ed2.1/09-terms.md +56 -0
  14. data/GAPS.guidelines.iso-sts-ed2.1/10-references.md +56 -0
  15. data/GAPS.guidelines.iso-sts-ed2.1/annex-a-multilingual.md +79 -0
  16. data/GAPS.guidelines.niso-sts-v1.0/01-introduction-scope.md +27 -0
  17. data/GAPS.guidelines.niso-sts-v1.0/02-document-structure.md +100 -0
  18. data/GAPS.guidelines.niso-sts-v1.0/03-front-matter.md +149 -0
  19. data/GAPS.guidelines.niso-sts-v1.0/04-body-content.md +209 -0
  20. data/GAPS.guidelines.niso-sts-v1.0/05-tables-figures.md +152 -0
  21. data/GAPS.guidelines.niso-sts-v1.0/06-math-formulae.md +128 -0
  22. data/GAPS.guidelines.niso-sts-v1.0/07-references.md +113 -0
  23. data/GAPS.guidelines.niso-sts-v1.0/08-terminology.md +127 -0
  24. data/GAPS.guidelines.niso-sts-v1.0/09-metadata.md +113 -0
  25. data/GAPS.guidelines.niso-sts-v1.0/10-iso-iec-variant.md +141 -0
  26. data/GAPS.guidelines.niso-sts-v1.0/SUMMARY.md +96 -0
  27. data/GAPS.guidelines.schema-xref.md +101 -0
  28. data/Gemfile +2 -1
  29. data/TODO.sts-refactor/00-overview.md +172 -0
  30. data/TODO.sts-refactor/01-mathml-delegation.md +153 -0
  31. data/TODO.sts-refactor/02-type-resolution.md +122 -0
  32. data/TODO.sts-refactor/03-namespace-coupling.md +158 -0
  33. data/TODO.sts-refactor/04-register-versioning.md +180 -0
  34. data/TODO.sts-refactor/05-missing-elements.md +195 -0
  35. data/TODO.sts-refactor/06-missing-attributes.md +152 -0
  36. data/TODO.sts-refactor/07-incomplete-models.md +180 -0
  37. data/TODO.sts-refactor/08-isoiec-profile.md +169 -0
  38. data/TODO.sts-refactor/09-autoload-cleanup.md +88 -0
  39. data/TODO.sts-refactor/10-test-coverage.md +164 -0
  40. data/TODO.sts-refactor/11-duplicate-models.md +168 -0
  41. data/lib/sts/iso_sts/annex_type.rb +2 -0
  42. data/lib/sts/iso_sts/app.rb +26 -1
  43. data/lib/sts/iso_sts/app_group.rb +1 -0
  44. data/lib/sts/iso_sts/array.rb +1 -0
  45. data/lib/sts/iso_sts/back.rb +1 -0
  46. data/lib/sts/iso_sts/body.rb +4 -0
  47. data/lib/sts/iso_sts/bold.rb +23 -11
  48. data/lib/sts/iso_sts/break.rb +3 -0
  49. data/lib/sts/iso_sts/caption.rb +1 -0
  50. data/lib/sts/iso_sts/comm_ref.rb +2 -0
  51. data/lib/sts/iso_sts/content_language.rb +22 -0
  52. data/lib/sts/iso_sts/copyright_holder.rb +4 -2
  53. data/lib/sts/iso_sts/copyright_statement.rb +4 -2
  54. data/lib/sts/iso_sts/copyright_year.rb +3 -0
  55. data/lib/sts/iso_sts/def.rb +1 -0
  56. data/lib/sts/iso_sts/def_item.rb +1 -0
  57. data/lib/sts/iso_sts/def_list.rb +1 -0
  58. data/lib/sts/iso_sts/disp_formula.rb +5 -1
  59. data/lib/sts/iso_sts/doc_ref.rb +2 -0
  60. data/lib/sts/iso_sts/document_identification.rb +3 -0
  61. data/lib/sts/iso_sts/edition.rb +2 -0
  62. data/lib/sts/iso_sts/ext_link.rb +1 -1
  63. data/lib/sts/iso_sts/fig.rb +1 -0
  64. data/lib/sts/iso_sts/fn.rb +1 -0
  65. data/lib/sts/iso_sts/fn_group.rb +1 -0
  66. data/lib/sts/iso_sts/front.rb +5 -0
  67. data/lib/sts/iso_sts/graphic.rb +5 -0
  68. data/lib/sts/iso_sts/inline_formula.rb +1 -1
  69. data/lib/sts/iso_sts/iso_meta.rb +4 -3
  70. data/lib/sts/iso_sts/italic.rb +23 -11
  71. data/lib/sts/iso_sts/label.rb +7 -5
  72. data/lib/sts/iso_sts/language.rb +2 -0
  73. data/lib/sts/iso_sts/list.rb +1 -0
  74. data/lib/sts/iso_sts/list_item.rb +7 -4
  75. data/lib/sts/iso_sts/mathml2/math.rb +20 -18
  76. data/lib/sts/iso_sts/meta_date.rb +20 -0
  77. data/lib/sts/iso_sts/mixed_citation.rb +35 -11
  78. data/lib/sts/iso_sts/monospace.rb +26 -0
  79. data/lib/sts/iso_sts/named_content.rb +44 -0
  80. data/lib/sts/iso_sts/nat_meta.rb +5 -4
  81. data/lib/sts/iso_sts/non_normative_example.rb +5 -0
  82. data/lib/sts/iso_sts/non_normative_note.rb +1 -0
  83. data/lib/sts/iso_sts/page_count.rb +2 -0
  84. data/lib/sts/iso_sts/paragraph.rb +34 -22
  85. data/lib/sts/iso_sts/permissions.rb +3 -0
  86. data/lib/sts/iso_sts/preformat.rb +8 -5
  87. data/lib/sts/iso_sts/ref.rb +1 -0
  88. data/lib/sts/iso_sts/ref_list.rb +1 -0
  89. data/lib/sts/iso_sts/reg_meta.rb +5 -4
  90. data/lib/sts/iso_sts/release_date.rb +2 -0
  91. data/lib/sts/iso_sts/sc.rb +26 -0
  92. data/lib/sts/iso_sts/sec.rb +12 -2
  93. data/lib/sts/iso_sts/secretariat.rb +2 -0
  94. data/lib/sts/iso_sts/standard.rb +6 -0
  95. data/lib/sts/iso_sts/standard_cross_reference.rb +5 -2
  96. data/lib/sts/iso_sts/standard_identification.rb +3 -0
  97. data/lib/sts/iso_sts/standard_ref.rb +16 -0
  98. data/lib/sts/iso_sts/std.rb +7 -5
  99. data/lib/sts/iso_sts/std_ref.rb +2 -0
  100. data/lib/sts/iso_sts/strike.rb +26 -0
  101. data/lib/sts/iso_sts/styled_content.rb +19 -15
  102. data/lib/sts/iso_sts/sub.rb +2 -0
  103. data/lib/sts/iso_sts/sup.rb +2 -0
  104. data/lib/sts/iso_sts/table.rb +1 -0
  105. data/lib/sts/iso_sts/table_wrap.rb +1 -0
  106. data/lib/sts/iso_sts/table_wrap_foot.rb +3 -0
  107. data/lib/sts/iso_sts/td.rb +32 -14
  108. data/lib/sts/iso_sts/term.rb +6 -6
  109. data/lib/sts/iso_sts/term_sec.rb +1 -0
  110. data/lib/sts/iso_sts/th.rb +32 -14
  111. data/lib/sts/iso_sts/title.rb +17 -7
  112. data/lib/sts/iso_sts/title_compl.rb +2 -0
  113. data/lib/sts/iso_sts/title_full.rb +2 -0
  114. data/lib/sts/iso_sts/title_intro.rb +2 -0
  115. data/lib/sts/iso_sts/title_main.rb +2 -0
  116. data/lib/sts/iso_sts/title_wrap.rb +1 -0
  117. data/lib/sts/iso_sts/tr.rb +1 -0
  118. data/lib/sts/iso_sts/underline.rb +26 -0
  119. data/lib/sts/iso_sts/uri.rb +32 -0
  120. data/lib/sts/iso_sts/xref.rb +3 -3
  121. data/lib/sts/iso_sts.rb +11 -0
  122. data/lib/sts/mathml.rb +21 -0
  123. data/lib/sts/namespaces.rb +3 -0
  124. data/lib/sts/niso_sts/abstract.rb +3 -0
  125. data/lib/sts/niso_sts/access_date.rb +2 -0
  126. data/lib/sts/niso_sts/accrediting_organization.rb +2 -0
  127. data/lib/sts/niso_sts/ack.rb +1 -1
  128. data/lib/sts/niso_sts/addr_line.rb +2 -0
  129. data/lib/sts/niso_sts/address.rb +3 -0
  130. data/lib/sts/niso_sts/adoption.rb +1 -1
  131. data/lib/sts/niso_sts/adoption_front.rb +1 -0
  132. data/lib/sts/niso_sts/aff_alternatives.rb +3 -0
  133. data/lib/sts/niso_sts/alt_text.rb +2 -0
  134. data/lib/sts/niso_sts/alt_title.rb +2 -0
  135. data/lib/sts/niso_sts/alternatives.rb +3 -4
  136. data/lib/sts/niso_sts/annotation.rb +1 -3
  137. data/lib/sts/niso_sts/anonymous.rb +3 -0
  138. data/lib/sts/niso_sts/app.rb +16 -1
  139. data/lib/sts/niso_sts/app_group.rb +5 -0
  140. data/lib/sts/niso_sts/article_title.rb +2 -0
  141. data/lib/sts/niso_sts/attrib.rb +2 -0
  142. data/lib/sts/niso_sts/author_comment.rb +1 -3
  143. data/lib/sts/niso_sts/author_notes.rb +1 -1
  144. data/lib/sts/niso_sts/authorization.rb +2 -0
  145. data/lib/sts/niso_sts/award_group.rb +23 -4
  146. data/lib/sts/niso_sts/award_id.rb +6 -0
  147. data/lib/sts/niso_sts/back.rb +25 -6
  148. data/lib/sts/niso_sts/bio.rb +1 -3
  149. data/lib/sts/niso_sts/body.rb +38 -0
  150. data/lib/sts/niso_sts/boxed_text.rb +41 -3
  151. data/lib/sts/niso_sts/break.rb +14 -0
  152. data/lib/sts/niso_sts/caption.rb +15 -1
  153. data/lib/sts/niso_sts/chapter_title.rb +2 -0
  154. data/lib/sts/niso_sts/chem_struct.rb +2 -0
  155. data/lib/sts/niso_sts/chem_struct_wrap.rb +1 -0
  156. data/lib/sts/niso_sts/citation_alternatives.rb +3 -0
  157. data/lib/sts/niso_sts/city.rb +2 -0
  158. data/lib/sts/niso_sts/code.rb +111 -0
  159. data/lib/sts/niso_sts/collab.rb +8 -0
  160. data/lib/sts/niso_sts/collab_alternatives.rb +3 -0
  161. data/lib/sts/niso_sts/comm_ref_group.rb +3 -0
  162. data/lib/sts/niso_sts/comment.rb +2 -0
  163. data/lib/sts/niso_sts/compound_subject.rb +29 -0
  164. data/lib/sts/niso_sts/compound_subject_part.rb +39 -0
  165. data/lib/sts/niso_sts/conf_acronym.rb +2 -0
  166. data/lib/sts/niso_sts/conf_date.rb +2 -0
  167. data/lib/sts/niso_sts/conf_loc.rb +2 -0
  168. data/lib/sts/niso_sts/conf_name.rb +2 -0
  169. data/lib/sts/niso_sts/conf_num.rb +2 -0
  170. data/lib/sts/niso_sts/conf_sponsor.rb +2 -0
  171. data/lib/sts/niso_sts/conf_theme.rb +2 -0
  172. data/lib/sts/niso_sts/conference.rb +3 -0
  173. data/lib/sts/niso_sts/content_language.rb +2 -0
  174. data/lib/sts/niso_sts/contrib.rb +1 -0
  175. data/lib/sts/niso_sts/contrib_group.rb +1 -0
  176. data/lib/sts/niso_sts/contrib_id.rb +2 -0
  177. data/lib/sts/niso_sts/copyright_holder.rb +2 -0
  178. data/lib/sts/niso_sts/copyright_statement.rb +2 -0
  179. data/lib/sts/niso_sts/copyright_year.rb +2 -0
  180. data/lib/sts/niso_sts/country.rb +2 -0
  181. data/lib/sts/niso_sts/counts.rb +3 -0
  182. data/lib/sts/niso_sts/custom_meta.rb +3 -0
  183. data/lib/sts/niso_sts/custom_meta_group.rb +3 -0
  184. data/lib/sts/niso_sts/data_title.rb +29 -0
  185. data/lib/sts/niso_sts/date.rb +3 -0
  186. data/lib/sts/niso_sts/date_in_citation.rb +2 -0
  187. data/lib/sts/niso_sts/day.rb +2 -0
  188. data/lib/sts/niso_sts/def.rb +3 -0
  189. data/lib/sts/niso_sts/def_head.rb +18 -0
  190. data/lib/sts/niso_sts/def_item.rb +13 -0
  191. data/lib/sts/niso_sts/def_list.rb +25 -3
  192. data/lib/sts/niso_sts/degrees.rb +2 -0
  193. data/lib/sts/niso_sts/disp_formula_group.rb +1 -4
  194. data/lib/sts/niso_sts/disp_quote.rb +3 -1
  195. data/lib/sts/niso_sts/display_formula.rb +47 -2
  196. data/lib/sts/niso_sts/doc_number.rb +2 -0
  197. data/lib/sts/niso_sts/doc_type.rb +2 -0
  198. data/lib/sts/niso_sts/document_identification.rb +1 -0
  199. data/lib/sts/niso_sts/editing_instruction.rb +9 -5
  200. data/lib/sts/niso_sts/edition.rb +2 -0
  201. data/lib/sts/niso_sts/element_citation.rb +1 -1
  202. data/lib/sts/niso_sts/elocation_id.rb +2 -0
  203. data/lib/sts/niso_sts/email.rb +2 -0
  204. data/lib/sts/niso_sts/equation_count.rb +2 -0
  205. data/lib/sts/niso_sts/era.rb +2 -0
  206. data/lib/sts/niso_sts/ext_link.rb +32 -2
  207. data/lib/sts/niso_sts/fax.rb +2 -0
  208. data/lib/sts/niso_sts/fig_count.rb +2 -0
  209. data/lib/sts/niso_sts/fig_group.rb +1 -0
  210. data/lib/sts/niso_sts/figure.rb +14 -1
  211. data/lib/sts/niso_sts/floats_group.rb +3 -4
  212. data/lib/sts/niso_sts/fn.rb +2 -1
  213. data/lib/sts/niso_sts/fn_group.rb +3 -0
  214. data/lib/sts/niso_sts/fpage.rb +2 -0
  215. data/lib/sts/niso_sts/front.rb +16 -0
  216. data/lib/sts/niso_sts/funding_group.rb +1 -0
  217. data/lib/sts/niso_sts/funding_source.rb +2 -0
  218. data/lib/sts/niso_sts/given_names.rb +2 -0
  219. data/lib/sts/niso_sts/glossary.rb +1 -1
  220. data/lib/sts/niso_sts/gov.rb +2 -0
  221. data/lib/sts/niso_sts/graphic.rb +6 -0
  222. data/lib/sts/niso_sts/hr.rb +3 -0
  223. data/lib/sts/niso_sts/ics.rb +5 -0
  224. data/lib/sts/niso_sts/ics_desc.rb +2 -0
  225. data/lib/sts/niso_sts/ics_wrap.rb +9 -0
  226. data/lib/sts/niso_sts/index.rb +32 -0
  227. data/lib/sts/niso_sts/index_div.rb +30 -0
  228. data/lib/sts/niso_sts/index_entry.rb +32 -0
  229. data/lib/sts/niso_sts/index_term.rb +1 -0
  230. data/lib/sts/niso_sts/index_title_group.rb +22 -0
  231. data/lib/sts/niso_sts/inline_formula.rb +38 -2
  232. data/lib/sts/niso_sts/inline_media.rb +50 -0
  233. data/lib/sts/niso_sts/institution.rb +2 -0
  234. data/lib/sts/niso_sts/institution_id.rb +2 -0
  235. data/lib/sts/niso_sts/institution_wrap.rb +3 -0
  236. data/lib/sts/niso_sts/intro.rb +2 -0
  237. data/lib/sts/niso_sts/is_proof.rb +2 -0
  238. data/lib/sts/niso_sts/isbn.rb +2 -0
  239. data/lib/sts/niso_sts/issn.rb +2 -0
  240. data/lib/sts/niso_sts/issn_l.rb +2 -0
  241. data/lib/sts/niso_sts/issue.rb +2 -0
  242. data/lib/sts/niso_sts/kwd_group.rb +9 -0
  243. data/lib/sts/niso_sts/label.rb +7 -2
  244. data/lib/sts/niso_sts/legend.rb +39 -0
  245. data/lib/sts/niso_sts/license.rb +2 -0
  246. data/lib/sts/niso_sts/license_p.rb +2 -0
  247. data/lib/sts/niso_sts/list.rb +9 -2
  248. data/lib/sts/niso_sts/list_item.rb +9 -4
  249. data/lib/sts/niso_sts/long_desc.rb +2 -0
  250. data/lib/sts/niso_sts/lpage.rb +2 -0
  251. data/lib/sts/niso_sts/main.rb +2 -0
  252. data/lib/sts/niso_sts/media.rb +1 -0
  253. data/lib/sts/niso_sts/meta_date.rb +2 -0
  254. data/lib/sts/niso_sts/meta_note.rb +1 -1
  255. data/lib/sts/niso_sts/metadata_iso.rb +1 -1
  256. data/lib/sts/niso_sts/metadata_std.rb +16 -8
  257. data/lib/sts/niso_sts/milestone_end.rb +1 -3
  258. data/lib/sts/niso_sts/milestone_start.rb +1 -3
  259. data/lib/sts/niso_sts/mixed_citation.rb +22 -0
  260. data/lib/sts/niso_sts/mml_content.rb +0 -2
  261. data/lib/sts/niso_sts/monospace.rb +9 -0
  262. data/lib/sts/niso_sts/month.rb +2 -0
  263. data/lib/sts/niso_sts/name.rb +3 -0
  264. data/lib/sts/niso_sts/name_alternatives.rb +5 -0
  265. data/lib/sts/niso_sts/named_content.rb +51 -1
  266. data/lib/sts/niso_sts/nat_meta.rb +3 -0
  267. data/lib/sts/niso_sts/nested_kwd.rb +3 -0
  268. data/lib/sts/niso_sts/nlm_citation.rb +1 -1
  269. data/lib/sts/niso_sts/non_normative_example.rb +15 -2
  270. data/lib/sts/niso_sts/non_normative_note.rb +14 -2
  271. data/lib/sts/niso_sts/normative_example.rb +1 -1
  272. data/lib/sts/niso_sts/normative_note.rb +3 -1
  273. data/lib/sts/niso_sts/note.rb +1 -1
  274. data/lib/sts/niso_sts/notes.rb +1 -1
  275. data/lib/sts/niso_sts/notes_group.rb +1 -0
  276. data/lib/sts/niso_sts/object_id.rb +4 -0
  277. data/lib/sts/niso_sts/on_behalf_of.rb +2 -0
  278. data/lib/sts/niso_sts/open_access.rb +3 -4
  279. data/lib/sts/niso_sts/originator.rb +2 -0
  280. data/lib/sts/niso_sts/page_count.rb +2 -0
  281. data/lib/sts/niso_sts/page_range.rb +2 -0
  282. data/lib/sts/niso_sts/paragraph.rb +39 -7
  283. data/lib/sts/niso_sts/part_number.rb +2 -0
  284. data/lib/sts/niso_sts/part_of_speech.rb +2 -0
  285. data/lib/sts/niso_sts/patent.rb +2 -0
  286. data/lib/sts/niso_sts/permissions.rb +7 -1
  287. data/lib/sts/niso_sts/phone.rb +2 -0
  288. data/lib/sts/niso_sts/postal_code.rb +2 -0
  289. data/lib/sts/niso_sts/prefix.rb +2 -0
  290. data/lib/sts/niso_sts/preformat.rb +15 -0
  291. data/lib/sts/niso_sts/price.rb +2 -0
  292. data/lib/sts/niso_sts/principal_award_recipient.rb +2 -0
  293. data/lib/sts/niso_sts/principal_investigator.rb +2 -0
  294. data/lib/sts/niso_sts/private_char.rb +3 -3
  295. data/lib/sts/niso_sts/processing_meta.rb +54 -0
  296. data/lib/sts/niso_sts/product.rb +2 -0
  297. data/lib/sts/niso_sts/proj_id.rb +2 -0
  298. data/lib/sts/niso_sts/pub_date.rb +4 -0
  299. data/lib/sts/niso_sts/pub_id.rb +2 -0
  300. data/lib/sts/niso_sts/publisher.rb +3 -0
  301. data/lib/sts/niso_sts/publisher_loc.rb +2 -0
  302. data/lib/sts/niso_sts/publisher_name.rb +2 -0
  303. data/lib/sts/niso_sts/ref_count.rb +2 -0
  304. data/lib/sts/niso_sts/reference.rb +1 -0
  305. data/lib/sts/niso_sts/reference_list.rb +6 -1
  306. data/lib/sts/niso_sts/reference_standard.rb +4 -2
  307. data/lib/sts/niso_sts/reg_meta.rb +3 -0
  308. data/lib/sts/niso_sts/related_term.rb +2 -0
  309. data/lib/sts/niso_sts/release_date.rb +11 -6
  310. data/lib/sts/niso_sts/release_version.rb +2 -0
  311. data/lib/sts/niso_sts/release_version_id.rb +2 -0
  312. data/lib/sts/niso_sts/role.rb +35 -0
  313. data/lib/sts/niso_sts/ruby.rb +1 -0
  314. data/lib/sts/niso_sts/sdo.rb +2 -0
  315. data/lib/sts/niso_sts/season.rb +2 -0
  316. data/lib/sts/niso_sts/sec_meta.rb +26 -0
  317. data/lib/sts/niso_sts/secretariat.rb +2 -0
  318. data/lib/sts/niso_sts/section.rb +47 -4
  319. data/lib/sts/niso_sts/see_also_entry.rb +26 -0
  320. data/lib/sts/niso_sts/see_entry.rb +26 -0
  321. data/lib/sts/niso_sts/self_uri.rb +2 -0
  322. data/lib/sts/niso_sts/series.rb +2 -0
  323. data/lib/sts/niso_sts/series_text.rb +2 -0
  324. data/lib/sts/niso_sts/series_title.rb +2 -0
  325. data/lib/sts/niso_sts/sig.rb +2 -0
  326. data/lib/sts/niso_sts/size.rb +2 -0
  327. data/lib/sts/niso_sts/source.rb +29 -0
  328. data/lib/sts/niso_sts/speaker.rb +2 -0
  329. data/lib/sts/niso_sts/speech.rb +1 -1
  330. data/lib/sts/niso_sts/standard.rb +3 -0
  331. data/lib/sts/niso_sts/standard_identification.rb +3 -1
  332. data/lib/sts/niso_sts/state.rb +2 -0
  333. data/lib/sts/niso_sts/statement.rb +1 -1
  334. data/lib/sts/niso_sts/std_doc_meta.rb +50 -11
  335. data/lib/sts/niso_sts/std_id.rb +2 -0
  336. data/lib/sts/niso_sts/std_id_group.rb +3 -0
  337. data/lib/sts/niso_sts/std_org.rb +1 -0
  338. data/lib/sts/niso_sts/std_org_abbrev.rb +2 -0
  339. data/lib/sts/niso_sts/std_org_group.rb +3 -0
  340. data/lib/sts/niso_sts/std_org_name.rb +2 -0
  341. data/lib/sts/niso_sts/std_organization.rb +2 -0
  342. data/lib/sts/niso_sts/string_conf.rb +2 -0
  343. data/lib/sts/niso_sts/string_date.rb +2 -0
  344. data/lib/sts/niso_sts/string_name.rb +2 -0
  345. data/lib/sts/niso_sts/styled_content.rb +39 -0
  346. data/lib/sts/niso_sts/sub.rb +11 -0
  347. data/lib/sts/niso_sts/subj_group.rb +11 -0
  348. data/lib/sts/niso_sts/subtitle.rb +2 -0
  349. data/lib/sts/niso_sts/suffix.rb +2 -0
  350. data/lib/sts/niso_sts/sup.rb +13 -0
  351. data/lib/sts/niso_sts/suppl_number.rb +2 -0
  352. data/lib/sts/niso_sts/suppl_type.rb +2 -0
  353. data/lib/sts/niso_sts/suppl_version.rb +2 -0
  354. data/lib/sts/niso_sts/supplementary_material.rb +1 -0
  355. data/lib/sts/niso_sts/surname.rb +2 -0
  356. data/lib/sts/niso_sts/table_count.rb +2 -0
  357. data/lib/sts/niso_sts/table_wrap_group.rb +32 -0
  358. data/lib/sts/niso_sts/term_display.rb +22 -0
  359. data/lib/sts/niso_sts/term_display_string.rb +22 -0
  360. data/lib/sts/niso_sts/term_head.rb +2 -0
  361. data/lib/sts/niso_sts/term_section.rb +3 -3
  362. data/lib/sts/niso_sts/term_source.rb +2 -0
  363. data/lib/sts/niso_sts/tex_math.rb +2 -0
  364. data/lib/sts/niso_sts/textual_form.rb +2 -0
  365. data/lib/sts/niso_sts/time_stamp.rb +2 -0
  366. data/lib/sts/niso_sts/title.rb +26 -0
  367. data/lib/sts/niso_sts/title_wrap.rb +2 -0
  368. data/lib/sts/niso_sts/toc.rb +32 -0
  369. data/lib/sts/niso_sts/toc_div.rb +30 -0
  370. data/lib/sts/niso_sts/toc_entry.rb +30 -0
  371. data/lib/sts/niso_sts/toc_title_group.rb +22 -0
  372. data/lib/sts/niso_sts/trans_abstract.rb +1 -0
  373. data/lib/sts/niso_sts/trans_source.rb +2 -0
  374. data/lib/sts/niso_sts/trans_title.rb +2 -0
  375. data/lib/sts/niso_sts/trans_title_group.rb +3 -0
  376. data/lib/sts/niso_sts/underline.rb +5 -0
  377. data/lib/sts/niso_sts/uri.rb +4 -0
  378. data/lib/sts/niso_sts/urn.rb +2 -0
  379. data/lib/sts/niso_sts/verse_group.rb +1 -1
  380. data/lib/sts/niso_sts/verse_line.rb +2 -0
  381. data/lib/sts/niso_sts/version.rb +2 -0
  382. data/lib/sts/niso_sts/volume.rb +2 -0
  383. data/lib/sts/niso_sts/volume_id.rb +2 -0
  384. data/lib/sts/niso_sts/volume_issue_group.rb +3 -4
  385. data/lib/sts/niso_sts/volume_series.rb +2 -0
  386. data/lib/sts/niso_sts/word_count.rb +2 -0
  387. data/lib/sts/niso_sts/year.rb +2 -0
  388. data/lib/sts/niso_sts.rb +35 -10
  389. data/lib/sts/profiles/iso_iec/constraints.rb +43 -0
  390. data/lib/sts/profiles/iso_iec/validator.rb +73 -0
  391. data/lib/sts/profiles/iso_iec.rb +10 -0
  392. data/lib/sts/profiles.rb +7 -0
  393. data/lib/sts/tbx_iso_tml/bold.rb +30 -1
  394. data/lib/sts/tbx_iso_tml/caption.rb +3 -0
  395. data/lib/sts/tbx_iso_tml/col.rb +10 -0
  396. data/lib/sts/tbx_iso_tml/cross_reference.rb +2 -0
  397. data/lib/sts/tbx_iso_tml/definition.rb +18 -2
  398. data/lib/sts/tbx_iso_tml/entailed_term.rb +2 -0
  399. data/lib/sts/tbx_iso_tml/example.rb +9 -3
  400. data/lib/sts/tbx_iso_tml/external_graphic.rb +2 -0
  401. data/lib/sts/tbx_iso_tml/external_source.rb +2 -0
  402. data/lib/sts/tbx_iso_tml/fn.rb +3 -2
  403. data/lib/sts/tbx_iso_tml/fn_group.rb +3 -0
  404. data/lib/sts/tbx_iso_tml/geographical_usage.rb +3 -0
  405. data/lib/sts/tbx_iso_tml/grammatical_gender.rb +2 -0
  406. data/lib/sts/tbx_iso_tml/grammatical_number.rb +2 -0
  407. data/lib/sts/tbx_iso_tml/italic.rb +27 -1
  408. data/lib/sts/tbx_iso_tml/lang_set.rb +2 -0
  409. data/lib/sts/tbx_iso_tml/mfenced.rb +2 -0
  410. data/lib/sts/tbx_iso_tml/mfrac.rb +2 -2
  411. data/lib/sts/tbx_iso_tml/mi.rb +3 -2
  412. data/lib/sts/tbx_iso_tml/mrow.rb +2 -2
  413. data/lib/sts/tbx_iso_tml/mspace.rb +2 -0
  414. data/lib/sts/tbx_iso_tml/mstyle.rb +2 -2
  415. data/lib/sts/tbx_iso_tml/msub.rb +2 -0
  416. data/lib/sts/tbx_iso_tml/msup.rb +4 -1
  417. data/lib/sts/tbx_iso_tml/munder.rb +3 -0
  418. data/lib/sts/tbx_iso_tml/munderover.rb +2 -0
  419. data/lib/sts/tbx_iso_tml/normative_authorization.rb +2 -0
  420. data/lib/sts/tbx_iso_tml/note.rb +11 -7
  421. data/lib/sts/tbx_iso_tml/part_of_speech.rb +2 -0
  422. data/lib/sts/tbx_iso_tml/pronunciation.rb +3 -0
  423. data/lib/sts/tbx_iso_tml/see.rb +2 -0
  424. data/lib/sts/tbx_iso_tml/semantics.rb +2 -0
  425. data/lib/sts/tbx_iso_tml/source.rb +6 -0
  426. data/lib/sts/tbx_iso_tml/subject_field.rb +2 -0
  427. data/lib/sts/tbx_iso_tml/sup.rb +3 -2
  428. data/lib/sts/tbx_iso_tml/table.rb +1 -0
  429. data/lib/sts/tbx_iso_tml/table_wrap.rb +3 -1
  430. data/lib/sts/tbx_iso_tml/table_wrap_foot.rb +3 -0
  431. data/lib/sts/tbx_iso_tml/tbody.rb +9 -1
  432. data/lib/sts/tbx_iso_tml/td.rb +122 -17
  433. data/lib/sts/tbx_iso_tml/term.rb +9 -5
  434. data/lib/sts/tbx_iso_tml/term_type.rb +2 -0
  435. data/lib/sts/tbx_iso_tml/tfoot.rb +5 -1
  436. data/lib/sts/tbx_iso_tml/th.rb +133 -18
  437. data/lib/sts/tbx_iso_tml/thead.rb +9 -1
  438. data/lib/sts/tbx_iso_tml/tr.rb +16 -0
  439. data/lib/sts/tbx_iso_tml/xref.rb +2 -2
  440. data/lib/sts/version.rb +1 -1
  441. data/lib/sts.rb +1 -2
  442. data/reference-docs/Guidelines for coding ed.2.1.pdf +0 -0
  443. data/reference-docs/NISO-STS-1-2-compare-1-0.pdf +0 -0
  444. data/reference-docs/NISOSTS-guidelines-v1.0.pdf +0 -0
  445. metadata +76 -3
  446. data/lib/sts/niso_sts/mathml.rb +0 -69
@@ -0,0 +1,73 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sts
4
+ module Profiles
5
+ module IsoIec
6
+ class Validator
7
+ def validate(document)
8
+ errors = []
9
+ errors.concat(validate_structure(document))
10
+ errors.concat(validate_metadata(document))
11
+ errors
12
+ end
13
+
14
+ private
15
+
16
+ def validate_structure(doc)
17
+ errors = []
18
+ errors << "ISO/IEC profile requires <front>" unless doc.front
19
+ errors << "ISO/IEC profile requires <body>" unless doc.body
20
+ errors
21
+ end
22
+
23
+ def validate_metadata(doc)
24
+ return [] unless doc.front
25
+
26
+ front = doc.front
27
+ meta = front.std_meta || front.std_doc_meta || front.reg_meta
28
+ meta ? validate_std_ident(meta) : []
29
+ end
30
+
31
+ def validate_std_ident(meta)
32
+ ident = meta.std_ident
33
+ return [] unless ident
34
+
35
+ errors = validate_ident_fields(ident)
36
+ errors.concat(validate_ident_values(ident))
37
+ errors
38
+ end
39
+
40
+ def validate_ident_fields(ident)
41
+ errors = []
42
+ errors << "<std-ident> is missing <originator>" \
43
+ if ident.originator.to_s.empty?
44
+ errors << "<std-ident> is missing <doc-type>" \
45
+ if ident.doc_type.to_s.empty?
46
+ errors << "<std-ident> is missing <doc-number>" \
47
+ if ident.doc_number.to_s.empty?
48
+ errors
49
+ end
50
+
51
+ def validate_ident_values(ident)
52
+ validate_originator(ident) + validate_doc_type(ident)
53
+ end
54
+
55
+ def validate_originator(ident)
56
+ val = ident.originator.to_s
57
+ return [] if val.empty? || Constraints::ORIGINATORS.include?(val)
58
+
59
+ ["<originator> '#{val}' is not " \
60
+ "a recognized ISO/IEC originator"]
61
+ end
62
+
63
+ def validate_doc_type(ident)
64
+ val = ident.doc_type.to_s
65
+ return [] if val.empty? || Constraints::DOCUMENT_TYPES.include?(val)
66
+
67
+ ["<doc-type> '#{val}' is not " \
68
+ "a recognized ISO/IEC document type"]
69
+ end
70
+ end
71
+ end
72
+ end
73
+ end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sts
4
+ module Profiles
5
+ module IsoIec
6
+ autoload :Constraints, "#{__dir__}/iso_iec/constraints"
7
+ autoload :Validator, "#{__dir__}/iso_iec/validator"
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sts
4
+ module Profiles
5
+ autoload :IsoIec, "#{__dir__}/profiles/iso_iec"
6
+ end
7
+ end
@@ -3,12 +3,41 @@
3
3
  module Sts
4
4
  module TbxIsoTml
5
5
  class Bold < Lutaml::Model::Serializable
6
- attribute :value, :string
6
+ attribute :id, :string
7
+ attribute :value, :string, collection: true
8
+ attribute :italic, ::Sts::TbxIsoTml::Italic, collection: true
9
+ attribute :sub, ::Sts::NisoSts::Sub, collection: true
10
+ attribute :sup, ::Sts::NisoSts::Sup, collection: true
11
+ attribute :monospace, ::Sts::NisoSts::Monospace, collection: true
12
+ attribute :sc, ::Sts::NisoSts::Sc, collection: true
13
+ attribute :std_ref, ::Sts::NisoSts::StandardRef, collection: true
14
+ attribute :underline, ::Sts::NisoSts::Underline, collection: true
15
+ attribute :strike, ::Sts::NisoSts::Strike, collection: true
16
+ attribute :xref, ::Sts::TbxIsoTml::Xref, collection: true
17
+ attribute :ext_link, ::Sts::NisoSts::ExtLink, collection: true
18
+ attribute :fn, ::Sts::NisoSts::Fn, collection: true
19
+ attribute :styled_content, ::Sts::NisoSts::StyledContent, collection: true
20
+ attribute :bold, ::Sts::TbxIsoTml::Bold, collection: true
7
21
 
8
22
  xml do
9
23
  element "bold"
24
+ map_attribute "id", to: :id
25
+ mixed_content
10
26
 
11
27
  map_content to: :value
28
+ map_element "italic", to: :italic
29
+ map_element "sub", to: :sub
30
+ map_element "sup", to: :sup
31
+ map_element "monospace", to: :monospace
32
+ map_element "sc", to: :sc
33
+ map_element "std-ref", to: :std_ref
34
+ map_element "underline", to: :underline
35
+ map_element "strike", to: :strike
36
+ map_element "xref", to: :xref
37
+ map_element "ext-link", to: :ext_link
38
+ map_element "fn", to: :fn
39
+ map_element "styled-content", to: :styled_content
40
+ map_element "bold", to: :bold
12
41
  end
13
42
  end
14
43
  end
@@ -3,11 +3,14 @@
3
3
  module Sts
4
4
  module TbxIsoTml
5
5
  class Caption < Lutaml::Model::Serializable
6
+ attribute :id, :string
6
7
  attribute :p, :string
7
8
 
8
9
  xml do
9
10
  element "caption"
10
11
 
12
+ map_attribute "id", to: :id
13
+
11
14
  map_element "p", to: :p
12
15
  end
13
16
  end
@@ -3,7 +3,12 @@
3
3
  module Sts
4
4
  module TbxIsoTml
5
5
  class Col < Lutaml::Model::Serializable
6
+ attribute :id, :string
7
+ attribute :content_type, :string
8
+ attribute :style, :string
6
9
  attribute :width, :string
10
+ attribute :align, :string
11
+ attribute :valign, :string
7
12
  attribute :char, :string
8
13
  attribute :charoff, :string
9
14
  attribute :span, :string
@@ -11,7 +16,12 @@ module Sts
11
16
  xml do
12
17
  element "col"
13
18
 
19
+ map_attribute "id", to: :id
20
+ map_attribute "content-type", to: :content_type
21
+ map_attribute "style", to: :style
14
22
  map_attribute "width", to: :width
23
+ map_attribute "align", to: :align
24
+ map_attribute "valign", to: :valign
15
25
  map_attribute "char", to: :char, value_map: { to: { empty: :empty } }
16
26
  map_attribute "charoff", to: :charoff
17
27
  map_attribute "span", to: :span
@@ -3,9 +3,11 @@
3
3
  module Sts
4
4
  module TbxIsoTml
5
5
  class CrossReference < Lutaml::Model::Serializable
6
+ attribute :id, :string
6
7
  attribute :value, :string, collection: true
7
8
  xml do
8
9
  element "crossReference"
10
+ map_attribute "id", to: :id
9
11
  mixed_content
10
12
  namespace ::Sts::Namespaces::TbxNamespace
11
13
 
@@ -3,17 +3,26 @@
3
3
  module Sts
4
4
  module TbxIsoTml
5
5
  class Definition < Lutaml::Model::Serializable
6
+ attribute :id, :string
6
7
  attribute :entailed_term, ::Sts::TbxIsoTml::EntailedTerm, collection: true
7
8
  attribute :note, ::Sts::TbxIsoTml::Note
8
9
  attribute :value, :string, collection: true
9
- attribute :italic, ::Sts::TbxIsoTml::Italic
10
+ attribute :italic, ::Sts::TbxIsoTml::Italic, collection: true
10
11
  attribute :math, ::Sts::TbxIsoTml::Math
11
- attribute :sub, :string
12
+ attribute :sub, ::Sts::NisoSts::Sub, collection: true
12
13
  attribute :list, ::Sts::NisoSts::List, collection: true
13
14
  attribute :std, ::Sts::NisoSts::ReferenceStandard, collection: true
15
+ attribute :xref, ::Sts::TbxIsoTml::Xref, collection: true
16
+ attribute :inline_formula, ::Sts::NisoSts::InlineFormula, collection: true
17
+ attribute :bold, ::Sts::TbxIsoTml::Bold, collection: true
18
+ attribute :sup, ::Sts::NisoSts::Sup, collection: true
19
+ attribute :monospace, ::Sts::NisoSts::Monospace, collection: true
20
+ attribute :ext_link, ::Sts::NisoSts::ExtLink, collection: true
21
+ attribute :styled_content, ::Sts::NisoSts::StyledContent, collection: true
14
22
 
15
23
  xml do
16
24
  element "definition"
25
+ map_attribute "id", to: :id
17
26
  mixed_content
18
27
  namespace ::Sts::Namespaces::TbxNamespace
19
28
 
@@ -22,9 +31,16 @@ module Sts
22
31
  map_element "note", to: :note
23
32
  map_element "italic", to: :italic
24
33
  map_element "sub", to: :sub
34
+ map_element "sup", to: :sup
25
35
  map_element "list", to: :list
26
36
  map_element "std", to: :std
27
37
  map_element "math", to: :math
38
+ map_element "xref", to: :xref
39
+ map_element "inline-formula", to: :inline_formula
40
+ map_element "bold", to: :bold
41
+ map_element "monospace", to: :monospace
42
+ map_element "ext-link", to: :ext_link
43
+ map_element "styled-content", to: :styled_content
28
44
  end
29
45
  end
30
46
  end
@@ -3,6 +3,7 @@
3
3
  module Sts
4
4
  module TbxIsoTml
5
5
  class EntailedTerm < Lutaml::Model::Serializable
6
+ attribute :id, :string
6
7
  attribute :target, :string
7
8
  attribute :xtarget, :string
8
9
  attribute :lang, Lutaml::Xml::W3c::XmlLangType
@@ -12,6 +13,7 @@ module Sts
12
13
  element "entailedTerm"
13
14
  namespace ::Sts::Namespaces::TbxNamespace
14
15
 
16
+ map_attribute "id", to: :id
15
17
  map_attribute "target", to: :target
16
18
  map_attribute "xtarget", to: :xtarget
17
19
  map_attribute "lang", to: :lang
@@ -1,14 +1,16 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "lutaml/model"
4
-
5
3
  module Sts
6
4
  module TbxIsoTml
7
5
  class Example < Lutaml::Model::Serializable
8
6
  attribute :id, :string
9
7
  attribute :value, :string, collection: true
10
8
  attribute :entailed_term, ::Sts::TbxIsoTml::EntailedTerm, collection: true
11
- attribute :inline_formula, ::Sts::NisoSts::InlineFormula
9
+ attribute :inline_formula, ::Sts::NisoSts::InlineFormula, collection: true
10
+ attribute :xref, ::Sts::TbxIsoTml::Xref, collection: true
11
+ attribute :std, ::Sts::NisoSts::ReferenceStandard, collection: true
12
+ attribute :italic, ::Sts::TbxIsoTml::Italic, collection: true
13
+ attribute :bold, ::Sts::TbxIsoTml::Bold, collection: true
12
14
 
13
15
  xml do
14
16
  element "example"
@@ -21,6 +23,10 @@ module Sts
21
23
 
22
24
  map_element "entailedTerm", to: :entailed_term
23
25
  map_element "inline-formula", to: :inline_formula
26
+ map_element "xref", to: :xref
27
+ map_element "std", to: :std
28
+ map_element "italic", to: :italic
29
+ map_element "bold", to: :bold
24
30
  end
25
31
  end
26
32
  end
@@ -3,12 +3,14 @@
3
3
  module Sts
4
4
  module TbxIsoTml
5
5
  class ExternalGraphic < Lutaml::Model::Serializable
6
+ attribute :id, :string
6
7
  attribute :target, :string
7
8
 
8
9
  xml do
9
10
  element "xGraphic"
10
11
  namespace ::Sts::Namespaces::TbxNamespace
11
12
 
13
+ map_attribute "id", to: :id
12
14
  map_attribute "xtarget", to: :target
13
15
  end
14
16
  end
@@ -3,6 +3,7 @@
3
3
  module Sts
4
4
  module TbxIsoTml
5
5
  class ExternalSource < Lutaml::Model::Serializable
6
+ attribute :id, :string
6
7
  attribute :target, :string
7
8
  attribute :value, :string
8
9
 
@@ -10,6 +11,7 @@ module Sts
10
11
  element "xSource"
11
12
  namespace ::Sts::Namespaces::TbxNamespace
12
13
 
14
+ map_attribute "id", to: :id
13
15
  map_attribute "xtarget", to: :target
14
16
  map_content to: :value
15
17
  end
@@ -4,11 +4,12 @@ module Sts
4
4
  module TbxIsoTml
5
5
  class Fn < Lutaml::Model::Serializable
6
6
  attribute :id, :string
7
- attribute :label, :string
8
- attribute :p, ::Sts::NisoSts::Paragraph
7
+ attribute :label, ::Sts::NisoSts::Label
8
+ attribute :p, ::Sts::NisoSts::Paragraph, collection: true
9
9
 
10
10
  xml do
11
11
  element "fn"
12
+ ordered
12
13
 
13
14
  map_attribute "id", to: :id
14
15
  map_element "label", to: :label
@@ -3,11 +3,14 @@
3
3
  module Sts
4
4
  module TbxIsoTml
5
5
  class FnGroup < Lutaml::Model::Serializable
6
+ attribute :id, :string
6
7
  attribute :fn, ::Sts::TbxIsoTml::Fn, collection: true
7
8
 
8
9
  xml do
9
10
  element "fn-group"
10
11
 
12
+ map_attribute "id", to: :id
13
+
11
14
  map_element "fn", to: :fn
12
15
  end
13
16
  end
@@ -3,10 +3,13 @@
3
3
  module Sts
4
4
  module TbxIsoTml
5
5
  class GeographicalUsage < Lutaml::Model::Serializable
6
+ attribute :id, :string
6
7
  attribute :value, :string
7
8
 
8
9
  xml do
9
10
  element "geographicalUsage"
11
+
12
+ map_attribute "id", to: :id
10
13
  namespace ::Sts::Namespaces::TbxNamespace
11
14
 
12
15
  map_content to: :value
@@ -3,6 +3,7 @@
3
3
  module Sts
4
4
  module TbxIsoTml
5
5
  class GrammaticalGender < Lutaml::Model::Serializable
6
+ attribute :id, :string
6
7
  attribute :value, :string,
7
8
  values: %w[masculine feminine neuter]
8
9
 
@@ -10,6 +11,7 @@ module Sts
10
11
  element "grammaticalGender"
11
12
  namespace ::Sts::Namespaces::TbxNamespace
12
13
 
14
+ map_attribute "id", to: :id
13
15
  map_attribute "value", to: :value
14
16
  end
15
17
  end
@@ -3,6 +3,7 @@
3
3
  module Sts
4
4
  module TbxIsoTml
5
5
  class GrammaticalNumber < Lutaml::Model::Serializable
6
+ attribute :id, :string
6
7
  attribute :value, :string,
7
8
  values: %w[singular plural]
8
9
 
@@ -10,6 +11,7 @@ module Sts
10
11
  element "grammaticalNumber"
11
12
  namespace ::Sts::Namespaces::TbxNamespace
12
13
 
14
+ map_attribute "id", to: :id
13
15
  map_attribute "value", to: :value
14
16
  end
15
17
  end
@@ -3,15 +3,41 @@
3
3
  module Sts
4
4
  module TbxIsoTml
5
5
  class Italic < Lutaml::Model::Serializable
6
+ attribute :id, :string
6
7
  attribute :value, :string, collection: true
7
- attribute :sub, :string
8
+ attribute :bold, ::Sts::TbxIsoTml::Bold, collection: true
9
+ attribute :sub, ::Sts::NisoSts::Sub, collection: true
10
+ attribute :sup, ::Sts::NisoSts::Sup, collection: true
11
+ attribute :monospace, ::Sts::NisoSts::Monospace, collection: true
12
+ attribute :sc, ::Sts::NisoSts::Sc, collection: true
13
+ attribute :std_ref, ::Sts::NisoSts::StandardRef, collection: true
14
+ attribute :underline, ::Sts::NisoSts::Underline, collection: true
15
+ attribute :strike, ::Sts::NisoSts::Strike, collection: true
16
+ attribute :xref, ::Sts::TbxIsoTml::Xref, collection: true
17
+ attribute :ext_link, ::Sts::NisoSts::ExtLink, collection: true
18
+ attribute :fn, ::Sts::NisoSts::Fn, collection: true
19
+ attribute :styled_content, ::Sts::NisoSts::StyledContent, collection: true
20
+ attribute :italic, ::Sts::TbxIsoTml::Italic, collection: true
8
21
 
9
22
  xml do
10
23
  element "italic"
24
+ map_attribute "id", to: :id
11
25
  mixed_content
12
26
 
13
27
  map_content to: :value
28
+ map_element "bold", to: :bold
14
29
  map_element "sub", to: :sub
30
+ map_element "sup", to: :sup
31
+ map_element "monospace", to: :monospace
32
+ map_element "sc", to: :sc
33
+ map_element "std-ref", to: :std_ref
34
+ map_element "underline", to: :underline
35
+ map_element "strike", to: :strike
36
+ map_element "xref", to: :xref
37
+ map_element "ext-link", to: :ext_link
38
+ map_element "fn", to: :fn
39
+ map_element "styled-content", to: :styled_content
40
+ map_element "italic", to: :italic
15
41
  end
16
42
  end
17
43
  end
@@ -3,6 +3,7 @@
3
3
  module Sts
4
4
  module TbxIsoTml
5
5
  class LangSet < Lutaml::Model::Serializable
6
+ attribute :id, :string
6
7
  attribute :lang, Lutaml::Xml::W3c::XmlLangType
7
8
  attribute :definition, ::Sts::TbxIsoTml::Definition, collection: true
8
9
  attribute :note, ::Sts::TbxIsoTml::Note, collection: true
@@ -18,6 +19,7 @@ module Sts
18
19
 
19
20
  xml do
20
21
  element "langSet"
22
+ map_attribute "id", to: :id
21
23
  mixed_content
22
24
  namespace ::Sts::Namespaces::TbxNamespace
23
25
 
@@ -3,6 +3,7 @@
3
3
  module Sts
4
4
  module TbxIsoTml
5
5
  class Mfenced < Lutaml::Model::Serializable
6
+ attribute :id, :string
6
7
  attribute :separators, :string
7
8
  attribute :open, :string
8
9
  attribute :close, :string
@@ -17,6 +18,7 @@ module Sts
17
18
 
18
19
  xml do
19
20
  element "mfenced"
21
+ map_attribute "id", to: :id
20
22
  mixed_content
21
23
  namespace ::Sts::Namespaces::MathmlNamespace
22
24
 
@@ -1,10 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "lutaml/model"
4
-
5
3
  module Sts
6
4
  module TbxIsoTml
7
5
  class Mfrac < Lutaml::Model::Serializable
6
+ attribute :id, :string
8
7
  attribute :mrow, ::Sts::TbxIsoTml::Mrow, collection: true
9
8
  attribute :mstyle, ::Sts::TbxIsoTml::Mstyle, collection: true
10
9
  attribute :bevelled, :string
@@ -14,6 +13,7 @@ module Sts
14
13
 
15
14
  xml do
16
15
  element "mfrac"
16
+ map_attribute "id", to: :id
17
17
  mixed_content
18
18
  namespace ::Sts::Namespaces::MathmlNamespace
19
19
 
@@ -1,14 +1,15 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "lutaml/model"
4
-
5
3
  module Sts
6
4
  module TbxIsoTml
7
5
  class Mi < Lutaml::Model::Serializable
6
+ attribute :id, :string
8
7
  attribute :content, :string
9
8
 
10
9
  xml do
11
10
  element "mi"
11
+
12
+ map_attribute "id", to: :id
12
13
  namespace ::Sts::Namespaces::MathmlNamespace
13
14
 
14
15
  map_content to: :content
@@ -1,10 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "lutaml/model"
4
-
5
3
  module Sts
6
4
  module TbxIsoTml
7
5
  class Mrow < Lutaml::Model::Serializable
6
+ attribute :id, :string
8
7
  attribute :content, :string, collection: true
9
8
  attribute :mo, :string, collection: true
10
9
  attribute :mi, :string, collection: true
@@ -20,6 +19,7 @@ module Sts
20
19
 
21
20
  xml do
22
21
  element "mrow"
22
+ map_attribute "id", to: :id
23
23
  mixed_content
24
24
  namespace ::Sts::Namespaces::MathmlNamespace
25
25
 
@@ -3,12 +3,14 @@
3
3
  module Sts
4
4
  module TbxIsoTml
5
5
  class Mspace < Lutaml::Model::Serializable
6
+ attribute :id, :string
6
7
  attribute :width, :string
7
8
 
8
9
  xml do
9
10
  element "mspace"
10
11
  namespace ::Sts::Namespaces::MathmlNamespace
11
12
 
13
+ map_attribute "id", to: :id
12
14
  map_attribute "width", to: :width
13
15
  end
14
16
  end
@@ -1,10 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "lutaml/model"
4
-
5
3
  module Sts
6
4
  module TbxIsoTml
7
5
  class Mstyle < Lutaml::Model::Serializable
6
+ attribute :id, :string
8
7
  attribute :mathvariant, :string
9
8
  attribute :mstyle, ::Sts::TbxIsoTml::Mstyle
10
9
  attribute :mspace, ::Sts::TbxIsoTml::Mspace, collection: true
@@ -14,6 +13,7 @@ module Sts
14
13
 
15
14
  xml do
16
15
  element "mstyle"
16
+ map_attribute "id", to: :id
17
17
  mixed_content
18
18
  namespace ::Sts::Namespaces::MathmlNamespace
19
19
 
@@ -3,6 +3,7 @@
3
3
  module Sts
4
4
  module TbxIsoTml
5
5
  class Msub < Lutaml::Model::Serializable
6
+ attribute :id, :string
6
7
  attribute :mstyle, ::Sts::TbxIsoTml::Mstyle, collection: true
7
8
  attribute :mrow, ::Sts::TbxIsoTml::Mrow
8
9
  attribute :mspace, ::Sts::TbxIsoTml::Mspace
@@ -13,6 +14,7 @@ module Sts
13
14
 
14
15
  xml do
15
16
  element "msub"
17
+ map_attribute "id", to: :id
16
18
  mixed_content
17
19
  namespace ::Sts::Namespaces::MathmlNamespace
18
20
 
@@ -3,13 +3,16 @@
3
3
  module Sts
4
4
  module TbxIsoTml
5
5
  class Msup < Lutaml::Model::Serializable
6
+ attribute :id, :string
6
7
  attribute :mstyle, ::Sts::TbxIsoTml::Mstyle
7
- attribute :mrow, ::Sts::TbxIsoTml::Mrow
8
+ attribute :mrow, ::Sts::TbxIsoTml::Mrow, collection: true
8
9
  attribute :mi, :string
9
10
  attribute :mn, :string, collection: true
10
11
 
11
12
  xml do
12
13
  element "msup"
14
+ map_attribute "id", to: :id
15
+ ordered
13
16
  namespace ::Sts::Namespaces::MathmlNamespace
14
17
 
15
18
  map_element "mstyle", to: :mstyle
@@ -3,10 +3,13 @@
3
3
  module Sts
4
4
  module TbxIsoTml
5
5
  class Munder < Lutaml::Model::Serializable
6
+ attribute :id, :string
6
7
  attribute :mrow, ::Sts::TbxIsoTml::Mrow, collection: true
7
8
 
8
9
  xml do
9
10
  element "munder"
11
+
12
+ map_attribute "id", to: :id
10
13
  namespace ::Sts::Namespaces::MathmlNamespace
11
14
 
12
15
  map_element "mrow", to: :mrow
@@ -3,12 +3,14 @@
3
3
  module Sts
4
4
  module TbxIsoTml
5
5
  class Munderover < Lutaml::Model::Serializable
6
+ attribute :id, :string
6
7
  attribute :mo, :string
7
8
  attribute :mi, :string
8
9
  attribute :mrow, ::Sts::TbxIsoTml::Mrow, collection: true
9
10
 
10
11
  xml do
11
12
  element "munderover"
13
+ map_attribute "id", to: :id
12
14
  mixed_content
13
15
  namespace ::Sts::Namespaces::MathmlNamespace
14
16
 
@@ -3,6 +3,7 @@
3
3
  module Sts
4
4
  module TbxIsoTml
5
5
  class NormativeAuthorization < Lutaml::Model::Serializable
6
+ attribute :id, :string
6
7
  attribute :value, :string,
7
8
  values: %w[admittedTerm preferredTerm deprecatedTerm]
8
9
 
@@ -10,6 +11,7 @@ module Sts
10
11
  element "normativeAuthorization"
11
12
  namespace ::Sts::Namespaces::TbxNamespace
12
13
 
14
+ map_attribute "id", to: :id
13
15
  map_attribute "value", to: :value
14
16
  end
15
17
  end