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
@@ -3,9 +3,11 @@
3
3
  module Sts
4
4
  module IsoSts
5
5
  class Edition < Lutaml::Model::Serializable
6
+ attribute :id, :string
6
7
  attribute :content, :string, collection: true
7
8
  xml do
8
9
  element "edition"
10
+ map_attribute "id", to: :id
9
11
  mixed_content
10
12
 
11
13
  map_content to: :content
@@ -11,7 +11,7 @@ module Sts
11
11
  attribute :content, :string
12
12
  attribute :bold, ::Sts::IsoSts::Bold
13
13
  attribute :italic, ::Sts::IsoSts::Italic
14
- attribute :named_content, ::Sts::NisoSts::NamedContent
14
+ attribute :named_content, ::Sts::IsoSts::NamedContent
15
15
 
16
16
  xml do
17
17
  element "ext-link"
@@ -28,6 +28,7 @@ module Sts
28
28
 
29
29
  xml do
30
30
  element "fig"
31
+ ordered
31
32
 
32
33
  map_attribute "id", to: :id
33
34
  map_attribute "position", to: :position
@@ -15,6 +15,7 @@ module Sts
15
15
 
16
16
  xml do
17
17
  element "fn"
18
+ ordered
18
19
 
19
20
  map_attribute "id", to: :id
20
21
  map_attribute "fn-type", to: :fn_type
@@ -14,6 +14,7 @@ module Sts
14
14
 
15
15
  xml do
16
16
  element "fn-group"
17
+ ordered
17
18
 
18
19
  map_attribute "id", to: :id
19
20
  map_attribute "content-type", to: :content_type
@@ -3,6 +3,8 @@
3
3
  module Sts
4
4
  module IsoSts
5
5
  class Front < Lutaml::Model::Serializable
6
+ attribute :id, :string
7
+ attribute :std_meta, ::Sts::NisoSts::MetadataStd
6
8
  attribute :iso_meta, ::Sts::IsoSts::IsoMeta
7
9
  attribute :reg_meta, ::Sts::IsoSts::RegMeta, collection: true
8
10
  attribute :nat_meta, ::Sts::IsoSts::NatMeta, collection: true
@@ -10,7 +12,10 @@ module Sts
10
12
 
11
13
  xml do
12
14
  element "front"
15
+ map_attribute "id", to: :id
16
+ ordered
13
17
 
18
+ map_element "std-meta", to: :std_meta
14
19
  map_element "iso-meta", to: :iso_meta
15
20
  map_element "reg-meta", to: :reg_meta
16
21
  map_element "nat-meta", to: :nat_meta
@@ -12,6 +12,8 @@ module Sts
12
12
  attribute :mimetype, :string
13
13
  attribute :mime_subtype, :string
14
14
  attribute :xlink_href, :string
15
+ attribute :xlink_type, :string
16
+ attribute :graphic_type, :string
15
17
  attribute :label, ::Sts::IsoSts::Label
16
18
  attribute :caption, ::Sts::IsoSts::Caption
17
19
  attribute :alt_text, ::Sts::NisoSts::AltText
@@ -19,6 +21,7 @@ module Sts
19
21
 
20
22
  xml do
21
23
  element "graphic"
24
+ ordered
22
25
 
23
26
  map_attribute "id", to: :id
24
27
  map_attribute "position", to: :position
@@ -29,6 +32,8 @@ module Sts
29
32
  map_attribute "mimetype", to: :mimetype
30
33
  map_attribute "mime-subtype", to: :mime_subtype
31
34
  map_attribute "xlink:href", to: :xlink_href
35
+ map_attribute "xlink:type", to: :xlink_type
36
+ map_attribute "type", to: :graphic_type
32
37
 
33
38
  map_element "label", to: :label
34
39
  map_element "caption", to: :caption
@@ -7,7 +7,7 @@ module Sts
7
7
  attribute :content_type, :string
8
8
  attribute :specific_use, :string
9
9
  attribute :xml_lang, :string
10
- attribute :math, ::Sts::IsoSts::Mathml2::Math
10
+ attribute :math, Mml::V3::Math
11
11
  attribute :bold, ::Sts::IsoSts::Bold
12
12
  attribute :italic, ::Sts::IsoSts::Italic
13
13
  attribute :inline_formula, ::Sts::IsoSts::InlineFormula
@@ -7,11 +7,11 @@ module Sts
7
7
  attribute :title_wrap, ::Sts::IsoSts::TitleWrap, collection: true
8
8
  attribute :doc_ident, ::Sts::IsoSts::DocumentIdentification
9
9
  attribute :std_ident, ::Sts::IsoSts::StandardIdentification
10
- attribute :content_language, ::Sts::NisoSts::ContentLanguage,
10
+ attribute :content_language, ::Sts::IsoSts::ContentLanguage,
11
11
  collection: true
12
12
  attribute :std_ref, ::Sts::IsoSts::StdRef, collection: true
13
13
  attribute :doc_ref, ::Sts::IsoSts::DocRef
14
- attribute :release_date, ::Sts::IsoSts::ReleaseDate
14
+ attribute :release_date, ::Sts::IsoSts::ReleaseDate, collection: true
15
15
  attribute :comm_ref, ::Sts::IsoSts::CommRef
16
16
  attribute :secretariat, ::Sts::IsoSts::Secretariat, collection: true
17
17
  attribute :ics, ::Sts::NisoSts::Ics, collection: true
@@ -21,12 +21,13 @@ module Sts
21
21
  collection: true
22
22
  attribute :custom_meta_group, ::Sts::NisoSts::CustomMetaGroup,
23
23
  collection: true
24
- attribute :meta_date, ::Sts::NisoSts::MetaDate, collection: true
24
+ attribute :meta_date, ::Sts::IsoSts::MetaDate, collection: true
25
25
  attribute :pub_date, ::Sts::NisoSts::PubDate
26
26
  attribute :is_proof, ::Sts::NisoSts::IsProof
27
27
 
28
28
  xml do
29
29
  element "iso-meta"
30
+ ordered
30
31
 
31
32
  map_attribute "id", to: :id
32
33
 
@@ -6,17 +6,23 @@ module Sts
6
6
  attribute :id, :string
7
7
  attribute :specific_use, :string
8
8
  attribute :content, :string, collection: true
9
- attribute :bold, ::Sts::IsoSts::Bold
10
- attribute :italic, ::Sts::IsoSts::Italic
11
- attribute :sub, ::Sts::NisoSts::Sub
12
- attribute :sup, ::Sts::NisoSts::Sup
13
- attribute :xref, ::Sts::TbxIsoTml::Xref
14
- attribute :ext_link, ::Sts::NisoSts::ExtLink
15
- attribute :uri, ::Sts::NisoSts::Uri
16
- attribute :inline_formula, ::Sts::IsoSts::InlineFormula
17
- attribute :named_content, ::Sts::NisoSts::NamedContent
18
- attribute :styled_content, ::Sts::IsoSts::StyledContent
19
- attribute :break, ::Sts::IsoSts::Break
9
+ attribute :bold, ::Sts::IsoSts::Bold, collection: true
10
+ attribute :italic, ::Sts::IsoSts::Italic, collection: true
11
+ attribute :sub, ::Sts::IsoSts::Sub, collection: true
12
+ attribute :sup, ::Sts::IsoSts::Sup, collection: true
13
+ attribute :xref, ::Sts::TbxIsoTml::Xref, collection: true
14
+ attribute :ext_link, ::Sts::IsoSts::ExtLink, collection: true
15
+ attribute :uri, ::Sts::IsoSts::Uri, collection: true
16
+ attribute :inline_formula, ::Sts::IsoSts::InlineFormula, collection: true
17
+ attribute :named_content, ::Sts::IsoSts::NamedContent, collection: true
18
+ attribute :styled_content, ::Sts::IsoSts::StyledContent, collection: true
19
+ attribute :break, ::Sts::IsoSts::Break, collection: true
20
+ attribute :std_ref, ::Sts::IsoSts::StdRef, collection: true
21
+ attribute :monospace, ::Sts::IsoSts::Monospace, collection: true
22
+ attribute :sc, ::Sts::IsoSts::Sc, collection: true
23
+ attribute :strike, ::Sts::IsoSts::Strike, collection: true
24
+ attribute :underline, ::Sts::IsoSts::Underline, collection: true
25
+ attribute :fn, ::Sts::TbxIsoTml::Fn, collection: true
20
26
 
21
27
  xml do
22
28
  element "italic"
@@ -38,6 +44,12 @@ module Sts
38
44
  map_element "named-content", to: :named_content
39
45
  map_element "styled-content", to: :styled_content
40
46
  map_element "break", to: :break
47
+ map_element "std-ref", to: :std_ref
48
+ map_element "monospace", to: :monospace
49
+ map_element "sc", to: :sc
50
+ map_element "strike", to: :strike
51
+ map_element "underline", to: :underline
52
+ map_element "fn", to: :fn
41
53
  end
42
54
  end
43
55
  end
@@ -3,20 +3,22 @@
3
3
  module Sts
4
4
  module IsoSts
5
5
  class Label < Lutaml::Model::Serializable
6
+ attribute :id, :string
6
7
  attribute :content, :string, collection: true
7
8
  attribute :bold, ::Sts::IsoSts::Bold
8
9
  attribute :italic, ::Sts::IsoSts::Italic
9
- attribute :sub, ::Sts::NisoSts::Sub
10
- attribute :sup, ::Sts::NisoSts::Sup
10
+ attribute :sub, ::Sts::IsoSts::Sub
11
+ attribute :sup, ::Sts::IsoSts::Sup
11
12
  attribute :inline_formula, ::Sts::IsoSts::InlineFormula
12
13
  attribute :break, ::Sts::IsoSts::Break
13
14
  attribute :styled_content, ::Sts::IsoSts::StyledContent
14
- attribute :ext_link, ::Sts::NisoSts::ExtLink
15
- attribute :uri, ::Sts::NisoSts::Uri
16
- attribute :named_content, ::Sts::NisoSts::NamedContent
15
+ attribute :ext_link, ::Sts::IsoSts::ExtLink
16
+ attribute :uri, ::Sts::IsoSts::Uri
17
+ attribute :named_content, ::Sts::IsoSts::NamedContent
17
18
 
18
19
  xml do
19
20
  element "label"
21
+ map_attribute "id", to: :id
20
22
  mixed_content
21
23
 
22
24
  map_content to: :content
@@ -3,12 +3,14 @@
3
3
  module Sts
4
4
  module IsoSts
5
5
  class Language < Lutaml::Model::Serializable
6
+ attribute :id, :string
6
7
  attribute :content, :string, collection: true
7
8
  attribute :lang, :string
8
9
  attribute :specific_use, :string
9
10
 
10
11
  xml do
11
12
  element "language"
13
+ map_attribute "id", to: :id
12
14
  mixed_content
13
15
 
14
16
  map_content to: :content
@@ -17,6 +17,7 @@ module Sts
17
17
 
18
18
  xml do
19
19
  element "list"
20
+ ordered
20
21
 
21
22
  map_attribute "id", to: :id
22
23
  map_attribute "list-type", to: :list_type
@@ -8,13 +8,16 @@ module Sts
8
8
  attribute :xml_lang, :string
9
9
  attribute :label, ::Sts::IsoSts::Label
10
10
  attribute :paragraph, ::Sts::IsoSts::Paragraph, collection: true
11
- attribute :non_normative_note, ::Sts::IsoSts::NonNormativeNote
12
- attribute :non_normative_example, ::Sts::IsoSts::NonNormativeExample
13
- attribute :def_list, ::Sts::IsoSts::DefList
14
- attribute :list, ::Sts::IsoSts::List
11
+ attribute :non_normative_note, ::Sts::IsoSts::NonNormativeNote,
12
+ collection: true
13
+ attribute :non_normative_example, ::Sts::IsoSts::NonNormativeExample,
14
+ collection: true
15
+ attribute :def_list, ::Sts::IsoSts::DefList, collection: true
16
+ attribute :list, ::Sts::IsoSts::List, collection: true
15
17
 
16
18
  xml do
17
19
  element "list-item"
20
+ ordered
18
21
 
19
22
  map_attribute "id", to: :id
20
23
  map_attribute "specific-use", to: :specific_use
@@ -18,22 +18,16 @@ module Sts
18
18
  map_content to: :content
19
19
  end
20
20
 
21
+ MATH_NS = "http://www.w3.org/1998/Math/MathML"
22
+
21
23
  def to_xml(*)
22
- if content
23
- Nokogiri::XML(content, &:strict).root.to_xml
24
- elsif @original_xml
25
- @original_xml
26
- else
27
- %{<math xmlns="#{::Sts::Namespaces::MathmlNamespace.uri}"/>}
28
- end
24
+ @original_xml || %{<math xmlns="#{MATH_NS}"/>}
29
25
  end
30
26
 
31
- MATH_XPATH = ".//*[local-name()='math']"
32
- MATH_NS_XPATH = ".//math[@xmlns='http://www.w3.org/1998/Math/MathML']"
33
- MATH_ML_XPATH = ".//mml:math"
34
-
35
27
  def self.from_xml(input)
36
- doc = Nokogiri::XML(input, &:strict)
28
+ input_str = input.respond_to?(:read) ? input.read : input.to_s
29
+
30
+ doc = parse_with_namespace(input_str)
37
31
  math_element = find_math_element(doc)
38
32
  return new if math_element.nil?
39
33
 
@@ -45,13 +39,21 @@ module Sts
45
39
  math
46
40
  end
47
41
 
42
+ def self.parse_with_namespace(xml_str)
43
+ # Detect namespace-prefixed math elements and wrap to resolve prefixes
44
+ if xml_str.include?("<mml:") || xml_str.match?(/<\w+:math[\s>]/)
45
+ wrapped = "<wrapper xmlns:mml=\"#{MATH_NS}\">#{xml_str}</wrapper>"
46
+ Nokogiri::XML(wrapped)
47
+ else
48
+ Nokogiri::XML(xml_str)
49
+ end
50
+ end
51
+ private_class_method :parse_with_namespace
52
+
48
53
  def self.find_math_element(doc)
49
- doc.at_xpath(MATH_NS_XPATH) ||
50
- doc.at_xpath(
51
- MATH_ML_XPATH,
52
- "mml" => "http://www.w3.org/1998/Math/MathML",
53
- ) ||
54
- doc.at_xpath(MATH_XPATH)
54
+ doc.at_xpath("//math[@xmlns='#{MATH_NS}']") ||
55
+ doc.at_xpath(".//mml:math", "mml" => MATH_NS) ||
56
+ doc.at_xpath(".//*[local-name()='math']")
55
57
  end
56
58
  private_class_method :find_math_element
57
59
 
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sts
4
+ module IsoSts
5
+ class MetaDate < Lutaml::Model::Serializable
6
+ attribute :id, :string
7
+ attribute :content, :string
8
+ attribute :type, :string
9
+
10
+ xml do
11
+ element "meta-date"
12
+
13
+ map_content to: :content
14
+
15
+ map_attribute "id", to: :id
16
+ map_attribute :type, to: :type
17
+ end
18
+ end
19
+ end
20
+ end
@@ -10,18 +10,30 @@ module Sts
10
10
  attribute :specific_use, :string
11
11
  attribute :xml_lang, :string
12
12
  attribute :content, :string, collection: true
13
- attribute :bold, ::Sts::IsoSts::Bold
14
- attribute :italic, ::Sts::IsoSts::Italic
15
- attribute :sub, ::Sts::NisoSts::Sub
16
- attribute :sup, ::Sts::NisoSts::Sup
17
- attribute :std, ::Sts::IsoSts::Std
18
- attribute :ext_link, ::Sts::NisoSts::ExtLink
19
- attribute :uri, ::Sts::NisoSts::Uri, collection: true
20
- attribute :named_content, ::Sts::NisoSts::NamedContent
21
- attribute :styled_content, ::Sts::IsoSts::StyledContent
22
- attribute :fn, ::Sts::TbxIsoTml::Fn
23
- attribute :xref, ::Sts::TbxIsoTml::Xref
13
+ attribute :bold, ::Sts::IsoSts::Bold, collection: true
14
+ attribute :italic, ::Sts::IsoSts::Italic, collection: true
15
+ attribute :sub, ::Sts::IsoSts::Sub, collection: true
16
+ attribute :sup, ::Sts::IsoSts::Sup, collection: true
17
+ attribute :std, ::Sts::IsoSts::Std, collection: true
18
+ attribute :ext_link, ::Sts::IsoSts::ExtLink, collection: true
19
+ attribute :uri, ::Sts::IsoSts::Uri, collection: true
20
+ attribute :named_content, ::Sts::IsoSts::NamedContent, collection: true
21
+ attribute :styled_content, ::Sts::IsoSts::StyledContent, collection: true
22
+ attribute :fn, ::Sts::TbxIsoTml::Fn, collection: true
23
+ attribute :xref, ::Sts::TbxIsoTml::Xref, collection: true
24
24
  attribute :break, ::Sts::IsoSts::Break, collection: true
25
+ attribute :person_group, ::Sts::NisoSts::PersonGroup, collection: true
26
+ attribute :collab, ::Sts::NisoSts::Collab, collection: true
27
+ attribute :year, ::Sts::NisoSts::Year, collection: true
28
+ attribute :source, ::Sts::NisoSts::Source
29
+ attribute :article_title, ::Sts::NisoSts::ArticleTitle
30
+ attribute :volume, ::Sts::NisoSts::Volume
31
+ attribute :issue, ::Sts::NisoSts::Issue
32
+ attribute :fpage, ::Sts::NisoSts::Fpage
33
+ attribute :lpage, ::Sts::NisoSts::Lpage
34
+ attribute :page_range, ::Sts::NisoSts::PageRange
35
+ attribute :publisher, ::Sts::NisoSts::Publisher
36
+ attribute :pub_id, ::Sts::NisoSts::PubId, collection: true
25
37
 
26
38
  xml do
27
39
  element "mixed-citation"
@@ -48,6 +60,18 @@ module Sts
48
60
  map_element "fn", to: :fn
49
61
  map_element "xref", to: :xref
50
62
  map_element "break", to: :break
63
+ map_element "person-group", to: :person_group
64
+ map_element "collab", to: :collab
65
+ map_element "year", to: :year
66
+ map_element "source", to: :source
67
+ map_element "article-title", to: :article_title
68
+ map_element "volume", to: :volume
69
+ map_element "issue", to: :issue
70
+ map_element "fpage", to: :fpage
71
+ map_element "lpage", to: :lpage
72
+ map_element "page-range", to: :page_range
73
+ map_element "publisher", to: :publisher
74
+ map_element "pub-id", to: :pub_id
51
75
  end
52
76
  end
53
77
  end
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sts
4
+ module IsoSts
5
+ class Monospace < Lutaml::Model::Serializable
6
+ attribute :specific_use, :string
7
+ attribute :content, :string, collection: true
8
+ attribute :bold, ::Sts::IsoSts::Bold, collection: true
9
+ attribute :italic, ::Sts::IsoSts::Italic, collection: true
10
+ attribute :sub, ::Sts::IsoSts::Sub, collection: true
11
+ attribute :sup, ::Sts::IsoSts::Sup, collection: true
12
+
13
+ xml do
14
+ element "monospace"
15
+ mixed_content
16
+
17
+ map_attribute "specific-use", to: :specific_use
18
+ map_content to: :content
19
+ map_element "bold", to: :bold
20
+ map_element "italic", to: :italic
21
+ map_element "sub", to: :sub
22
+ map_element "sup", to: :sup
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,44 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sts
4
+ module IsoSts
5
+ class NamedContent < Lutaml::Model::Serializable
6
+ attribute :id, :string
7
+ attribute :alt, :string
8
+ attribute :content_type, :string
9
+ attribute :specific_use, :string
10
+ attribute :xml_lang, :string
11
+ attribute :xlink_href, :string
12
+ attribute :xlink_role, :string
13
+ attribute :xlink_title, :string
14
+ attribute :xlink_show, :string
15
+ attribute :xlink_actuate, :string
16
+ attribute :content, :string, collection: true
17
+ attribute :bold, ::Sts::IsoSts::Bold, collection: true
18
+ attribute :italic, ::Sts::IsoSts::Italic, collection: true
19
+ attribute :sub, ::Sts::IsoSts::Sub, collection: true
20
+ attribute :sup, ::Sts::IsoSts::Sup, collection: true
21
+
22
+ xml do
23
+ element "named-content"
24
+ mixed_content
25
+
26
+ map_attribute "id", to: :id
27
+ map_attribute "alt", to: :alt
28
+ map_attribute "content-type", to: :content_type
29
+ map_attribute "specific-use", to: :specific_use
30
+ map_attribute "xml:lang", to: :xml_lang
31
+ map_attribute "xlink:href", to: :xlink_href
32
+ map_attribute "xlink:role", to: :xlink_role
33
+ map_attribute "xlink:title", to: :xlink_title
34
+ map_attribute "xlink:show", to: :xlink_show
35
+ map_attribute "xlink:actuate", to: :xlink_actuate
36
+ map_content to: :content
37
+ map_element "bold", to: :bold
38
+ map_element "italic", to: :italic
39
+ map_element "sub", to: :sub
40
+ map_element "sup", to: :sup
41
+ end
42
+ end
43
+ end
44
+ end
@@ -8,11 +8,11 @@ module Sts
8
8
  attribute :title_wrap, ::Sts::IsoSts::TitleWrap, collection: true
9
9
  attribute :doc_ident, ::Sts::IsoSts::DocumentIdentification
10
10
  attribute :std_ident, ::Sts::IsoSts::StandardIdentification
11
- attribute :content_language, ::Sts::NisoSts::ContentLanguage,
11
+ attribute :content_language, ::Sts::IsoSts::ContentLanguage,
12
12
  collection: true
13
- attribute :std_ref, ::Sts::NisoSts::StandardRef, collection: true
13
+ attribute :std_ref, ::Sts::IsoSts::StandardRef, collection: true
14
14
  attribute :doc_ref, :string
15
- attribute :release_date, ::Sts::NisoSts::ReleaseDate
15
+ attribute :release_date, ::Sts::IsoSts::ReleaseDate
16
16
  attribute :comm_ref, :string
17
17
  attribute :secretariat, ::Sts::NisoSts::Secretariat, collection: true
18
18
  attribute :ics, ::Sts::NisoSts::Ics, collection: true
@@ -22,11 +22,12 @@ module Sts
22
22
  collection: true
23
23
  attribute :custom_meta_group, ::Sts::NisoSts::CustomMetaGroup,
24
24
  collection: true
25
- attribute :meta_date, ::Sts::NisoSts::MetaDate, collection: true
25
+ attribute :meta_date, ::Sts::IsoSts::MetaDate, collection: true
26
26
  attribute :pub_date, ::Sts::NisoSts::PubDate
27
27
 
28
28
  xml do
29
29
  element "nat-meta"
30
+ ordered
30
31
 
31
32
  map_attribute "id", to: :id
32
33
  map_attribute "originator", to: :originator
@@ -9,9 +9,12 @@ module Sts
9
9
  attribute :paragraph, ::Sts::IsoSts::Paragraph, collection: true
10
10
  attribute :list, ::Sts::IsoSts::List, collection: true
11
11
  attribute :def_list, ::Sts::IsoSts::DefList, collection: true
12
+ attribute :preformat, ::Sts::IsoSts::Preformat, collection: true
13
+ attribute :styled_content, ::Sts::IsoSts::StyledContent, collection: true
12
14
 
13
15
  xml do
14
16
  element "non-normative-example"
17
+ ordered
15
18
 
16
19
  map_attribute "id", to: :id
17
20
  map_attribute "originator", to: :originator
@@ -20,6 +23,8 @@ module Sts
20
23
  map_element "p", to: :paragraph
21
24
  map_element "list", to: :list
22
25
  map_element "def-list", to: :def_list
26
+ map_element "preformat", to: :preformat
27
+ map_element "styled-content", to: :styled_content
23
28
  end
24
29
  end
25
30
  end
@@ -13,6 +13,7 @@ module Sts
13
13
 
14
14
  xml do
15
15
  element "non-normative-note"
16
+ ordered
16
17
 
17
18
  map_attribute "id", to: :id
18
19
  map_attribute "content-type", to: :content_type
@@ -3,11 +3,13 @@
3
3
  module Sts
4
4
  module IsoSts
5
5
  class PageCount < Lutaml::Model::Serializable
6
+ attribute :id, :string
6
7
  attribute :count, :string
7
8
 
8
9
  xml do
9
10
  element "page-count"
10
11
 
12
+ map_attribute "id", to: :id
11
13
  map_attribute "count", to: :count
12
14
  end
13
15
  end
@@ -10,29 +10,36 @@ module Sts
10
10
  attribute :originator, :string
11
11
  attribute :style_type, :string
12
12
  attribute :content, :string, collection: true
13
- attribute :bold, ::Sts::IsoSts::Bold
14
- attribute :italic, ::Sts::IsoSts::Italic
15
- attribute :xref, ::Sts::TbxIsoTml::Xref
16
- attribute :ext_link, ::Sts::NisoSts::ExtLink
17
- attribute :uri, ::Sts::NisoSts::Uri
18
- attribute :inline_formula, ::Sts::IsoSts::InlineFormula
19
- attribute :disp_formula, ::Sts::IsoSts::DispFormula
20
- attribute :std, ::Sts::IsoSts::Std
21
- attribute :list, ::Sts::IsoSts::List
22
- attribute :def_list, ::Sts::IsoSts::DefList
23
- attribute :non_normative_note, ::Sts::IsoSts::NonNormativeNote
24
- attribute :non_normative_example, ::Sts::IsoSts::NonNormativeExample
25
- attribute :fn, ::Sts::TbxIsoTml::Fn
13
+ attribute :bold, ::Sts::IsoSts::Bold, collection: true
14
+ attribute :italic, ::Sts::IsoSts::Italic, collection: true
15
+ attribute :xref, ::Sts::TbxIsoTml::Xref, collection: true
16
+ attribute :ext_link, ::Sts::IsoSts::ExtLink, collection: true
17
+ attribute :uri, ::Sts::IsoSts::Uri, collection: true
18
+ attribute :inline_formula, ::Sts::IsoSts::InlineFormula, collection: true
19
+ attribute :disp_formula, ::Sts::IsoSts::DispFormula, collection: true
20
+ attribute :std, ::Sts::IsoSts::Std, collection: true
21
+ attribute :list, ::Sts::IsoSts::List, collection: true
22
+ attribute :def_list, ::Sts::IsoSts::DefList, collection: true
23
+ attribute :non_normative_note, ::Sts::IsoSts::NonNormativeNote,
24
+ collection: true
25
+ attribute :non_normative_example, ::Sts::IsoSts::NonNormativeExample,
26
+ collection: true
27
+ attribute :fn, ::Sts::TbxIsoTml::Fn, collection: true
26
28
  attribute :styled_content, ::Sts::IsoSts::StyledContent, collection: true
27
- attribute :graphic, ::Sts::IsoSts::Graphic
28
- attribute :math, ::Sts::IsoSts::Mathml2::Math
29
- attribute :break, ::Sts::IsoSts::Break
30
- attribute :sub, ::Sts::NisoSts::Sub, collection: true
31
- attribute :sup, ::Sts::NisoSts::Sup, collection: true
32
- attribute :monospace, ::Sts::NisoSts::Monospace
33
- attribute :sc, ::Sts::NisoSts::Sc
34
- attribute :strike, ::Sts::NisoSts::Strike
35
- attribute :underline, ::Sts::NisoSts::Underline
29
+ attribute :graphic, ::Sts::IsoSts::Graphic, collection: true
30
+ attribute :math, Mml::V3::Math, collection: true
31
+ attribute :break, ::Sts::IsoSts::Break, collection: true
32
+ attribute :sub, ::Sts::IsoSts::Sub, collection: true
33
+ attribute :sup, ::Sts::IsoSts::Sup, collection: true
34
+ attribute :monospace, ::Sts::IsoSts::Monospace, collection: true
35
+ attribute :sc, ::Sts::IsoSts::Sc, collection: true
36
+ attribute :strike, ::Sts::IsoSts::Strike, collection: true
37
+ attribute :underline, ::Sts::IsoSts::Underline, collection: true
38
+ attribute :array, ::Sts::IsoSts::Array, collection: true
39
+ attribute :fig, ::Sts::IsoSts::Fig, collection: true
40
+ attribute :table_wrap, ::Sts::TbxIsoTml::TableWrap, collection: true
41
+ attribute :preformat, ::Sts::IsoSts::Preformat, collection: true
42
+ attribute :term, ::Sts::TbxIsoTml::Term, collection: true
36
43
 
37
44
  xml do # rubocop:disable Metrics/BlockLength
38
45
  element "p"
@@ -70,6 +77,11 @@ module Sts
70
77
  map_element "sc", to: :sc
71
78
  map_element "strike", to: :strike
72
79
  map_element "underline", to: :underline
80
+ map_element "array", to: :array
81
+ map_element "fig", to: :fig
82
+ map_element "table-wrap", to: :table_wrap
83
+ map_element "preformat", to: :preformat
84
+ map_element "term", to: :term
73
85
  end
74
86
  end
75
87
  end
@@ -3,6 +3,7 @@
3
3
  module Sts
4
4
  module IsoSts
5
5
  class Permissions < Lutaml::Model::Serializable
6
+ attribute :id, :string
6
7
  attribute :copyright_statement, ::Sts::IsoSts::CopyrightStatement,
7
8
  collection: true
8
9
  attribute :copyright_year, ::Sts::IsoSts::CopyrightYear, collection: true
@@ -12,6 +13,8 @@ module Sts
12
13
 
13
14
  xml do
14
15
  element "permissions"
16
+ map_attribute "id", to: :id
17
+ ordered
15
18
 
16
19
  map_element "copyright-statement", to: :copyright_statement
17
20
  map_element "copyright-year", to: :copyright_year