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,6 +3,7 @@
3
3
  module Sts
4
4
  module IsoSts
5
5
  class TitleIntro < 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
@@ -10,6 +11,7 @@ module Sts
10
11
 
11
12
  xml do
12
13
  element "intro"
14
+ map_attribute "id", to: :id
13
15
  mixed_content
14
16
 
15
17
  map_content to: :content
@@ -3,6 +3,7 @@
3
3
  module Sts
4
4
  module IsoSts
5
5
  class TitleMain < 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
@@ -10,6 +11,7 @@ module Sts
10
11
 
11
12
  xml do
12
13
  element "main"
14
+ map_attribute "id", to: :id
13
15
  mixed_content
14
16
 
15
17
  map_content to: :content
@@ -12,6 +12,7 @@ module Sts
12
12
 
13
13
  xml do
14
14
  element "title-wrap"
15
+ ordered
15
16
 
16
17
  map_attribute "id", to: :id
17
18
  map_attribute "xml:lang", to: :xml_lang
@@ -15,6 +15,7 @@ module Sts
15
15
 
16
16
  xml do
17
17
  element "tr"
18
+ ordered
18
19
 
19
20
  map_attribute "id", to: :id
20
21
  map_attribute "content-type", to: :content_type
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sts
4
+ module IsoSts
5
+ class Underline < 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 "underline"
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,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sts
4
+ module IsoSts
5
+ class Uri < Lutaml::Model::Serializable
6
+ attribute :content_type, :string
7
+ attribute :specific_use, :string
8
+ attribute :xml_lang, :string
9
+ attribute :xlink_href, :string
10
+ attribute :xlink_role, :string
11
+ attribute :xlink_title, :string
12
+ attribute :xlink_show, :string
13
+ attribute :xlink_actuate, :string
14
+ attribute :content, :string, collection: true
15
+
16
+ xml do
17
+ element "uri"
18
+ mixed_content
19
+
20
+ map_attribute "content-type", to: :content_type
21
+ map_attribute "specific-use", to: :specific_use
22
+ map_attribute "xml:lang", to: :xml_lang
23
+ map_attribute "xlink:href", to: :xlink_href
24
+ map_attribute "xlink:role", to: :xlink_role
25
+ map_attribute "xlink:title", to: :xlink_title
26
+ map_attribute "xlink:show", to: :xlink_show
27
+ map_attribute "xlink:actuate", to: :xlink_actuate
28
+ map_content to: :content
29
+ end
30
+ end
31
+ end
32
+ end
@@ -12,10 +12,10 @@ module Sts
12
12
  attribute :content, :string
13
13
  attribute :bold, ::Sts::IsoSts::Bold
14
14
  attribute :italic, ::Sts::IsoSts::Italic
15
- attribute :named_content, ::Sts::NisoSts::NamedContent
15
+ attribute :named_content, ::Sts::IsoSts::NamedContent
16
16
  attribute :styled_content, ::Sts::IsoSts::StyledContent
17
- attribute :sub, ::Sts::NisoSts::Sub
18
- attribute :sup, ::Sts::NisoSts::Sup
17
+ attribute :sub, ::Sts::IsoSts::Sub
18
+ attribute :sup, ::Sts::IsoSts::Sup
19
19
 
20
20
  xml do
21
21
  element "xref"
data/lib/sts/iso_sts.rb CHANGED
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require "mml"
4
+
3
5
  module Sts
4
6
  module IsoSts
5
7
  autoload :Standard, "#{__dir__}/iso_sts/standard"
@@ -33,6 +35,9 @@ module Sts
33
35
  autoload :ReleaseDate, "#{__dir__}/iso_sts/release_date"
34
36
  autoload :CommRef, "#{__dir__}/iso_sts/comm_ref"
35
37
  autoload :Secretariat, "#{__dir__}/iso_sts/secretariat"
38
+ autoload :MetaDate, "#{__dir__}/iso_sts/meta_date"
39
+ autoload :ContentLanguage, "#{__dir__}/iso_sts/content_language"
40
+ autoload :StandardRef, "#{__dir__}/iso_sts/standard_ref"
36
41
 
37
42
  # Section elements
38
43
  autoload :Sec, "#{__dir__}/iso_sts/sec"
@@ -57,6 +62,12 @@ module Sts
57
62
  autoload :Title, "#{__dir__}/iso_sts/title"
58
63
  autoload :Bold, "#{__dir__}/iso_sts/bold"
59
64
  autoload :Italic, "#{__dir__}/iso_sts/italic"
65
+ autoload :Monospace, "#{__dir__}/iso_sts/monospace"
66
+ autoload :NamedContent, "#{__dir__}/iso_sts/named_content"
67
+ autoload :Sc, "#{__dir__}/iso_sts/sc"
68
+ autoload :Strike, "#{__dir__}/iso_sts/strike"
69
+ autoload :Underline, "#{__dir__}/iso_sts/underline"
70
+ autoload :Uri, "#{__dir__}/iso_sts/uri"
60
71
 
61
72
  # List elements
62
73
  autoload :List, "#{__dir__}/iso_sts/list"
data/lib/sts/mathml.rb ADDED
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "mml"
4
+
5
+ module Sts
6
+ module Mathml
7
+ # Wrapper around Mml::V3::Math for use within Sts document models.
8
+ #
9
+ # Mml::V3::Math is the actual serializable model. This class provides
10
+ # a typed namespace at Sts::Mathml and forwards the small subset of
11
+ # Mml::V3::Math interface used by Sts elements.
12
+ #
13
+ # All Mml element types (mi, mo, mn, mrow, etc.) are used directly
14
+ # from Mml::V3 — only the root <math> wrapper lives here.
15
+ class Math
16
+ # Type alias for callers that prefer the Sts namespace path.
17
+ # Maps directly to Mml::V3::Math with identical serialization.
18
+ Root = Mml::V3::Math
19
+ end
20
+ end
21
+ end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Sts
2
4
  module Namespaces
3
5
  class MathmlNamespace < Lutaml::Xml::Namespace
@@ -7,6 +9,7 @@ module Sts
7
9
 
8
10
  class TbxNamespace < Lutaml::Xml::Namespace
9
11
  uri "urn:iso:std:iso:30042:ed-1"
12
+ uri_aliases "urn:iso:std:iso:30042:ed-2"
10
13
  prefix_default "tbx"
11
14
  end
12
15
  end
@@ -4,6 +4,7 @@ module Sts
4
4
  module NisoSts
5
5
  class Abstract < Lutaml::Model::Serializable
6
6
  attribute :id, :string
7
+ attribute :originator, :string
7
8
  attribute :abstract_type, :string
8
9
  attribute :lang, Lutaml::Xml::W3c::XmlLangType
9
10
  attribute :title, :string
@@ -11,8 +12,10 @@ module Sts
11
12
 
12
13
  xml do
13
14
  element "abstract"
15
+ ordered
14
16
 
15
17
  map_attribute "id", to: :id
18
+ map_attribute "originator", to: :originator
16
19
  map_attribute "abstract-type", to: :abstract_type
17
20
  map_attribute "xml:lang", to: :lang
18
21
  map_element "title", to: :title
@@ -3,12 +3,14 @@
3
3
  module Sts
4
4
  module NisoSts
5
5
  class AccessDate < Lutaml::Model::Serializable
6
+ attribute :id, :string
6
7
  attribute :content, :string, collection: true
7
8
  attribute :bold, ::Sts::TbxIsoTml::Bold, collection: true
8
9
  attribute :italic, ::Sts::TbxIsoTml::Italic, collection: true
9
10
 
10
11
  xml do
11
12
  element "access-date"
13
+ map_attribute "id", to: :id
12
14
  mixed_content
13
15
 
14
16
  map_content to: :content
@@ -3,9 +3,11 @@
3
3
  module Sts
4
4
  module NisoSts
5
5
  class AccreditingOrganization < Lutaml::Model::Serializable
6
+ attribute :id, :string
6
7
  attribute :content, :string, collection: true
7
8
  xml do
8
9
  element "accrediting-organization"
10
+ map_attribute "id", to: :id
9
11
  mixed_content
10
12
 
11
13
  map_content to: :content
@@ -12,7 +12,7 @@ module Sts
12
12
 
13
13
  xml do
14
14
  element "ack"
15
- mixed_content
15
+ ordered
16
16
 
17
17
  map_attribute "id", to: :id
18
18
  map_attribute "xml:lang", to: :xml_lang
@@ -3,12 +3,14 @@
3
3
  module Sts
4
4
  module NisoSts
5
5
  class AddrLine < Lutaml::Model::Serializable
6
+ attribute :id, :string
6
7
  attribute :content, :string, collection: true
7
8
  attribute :bold, ::Sts::TbxIsoTml::Bold, collection: true
8
9
  attribute :italic, ::Sts::TbxIsoTml::Italic, collection: true
9
10
 
10
11
  xml do
11
12
  element "addr-line"
13
+ map_attribute "id", to: :id
12
14
  mixed_content
13
15
 
14
16
  map_content to: :content
@@ -3,6 +3,7 @@
3
3
  module Sts
4
4
  module NisoSts
5
5
  class Address < Lutaml::Model::Serializable
6
+ attribute :id, :string
6
7
  attribute :addr_line, ::Sts::NisoSts::AddrLine, collection: true
7
8
  attribute :city, ::Sts::NisoSts::City
8
9
  attribute :state, ::Sts::NisoSts::State
@@ -14,6 +15,8 @@ module Sts
14
15
 
15
16
  xml do
16
17
  element "address"
18
+ map_attribute "id", to: :id
19
+ ordered
17
20
 
18
21
  map_element "addr-line", to: :addr_line
19
22
  map_element "city", to: :city
@@ -12,7 +12,7 @@ module Sts
12
12
 
13
13
  xml do
14
14
  element "adoption"
15
- mixed_content
15
+ ordered
16
16
 
17
17
  map_attribute "id", to: :id
18
18
  map_attribute "lang", to: :lang
@@ -5,6 +5,7 @@ module Sts
5
5
  class AdoptionFront < Front
6
6
  xml do
7
7
  element "adoption-front"
8
+ ordered
8
9
  map_element "iso-meta", to: :iso_meta
9
10
  map_element "std-meta", to: :std_meta
10
11
  map_element "sec", to: :sec
@@ -3,11 +3,14 @@
3
3
  module Sts
4
4
  module NisoSts
5
5
  class AffAlternatives < Lutaml::Model::Serializable
6
+ attribute :id, :string
6
7
  attribute :aff, ::Sts::NisoSts::Aff, collection: true
7
8
 
8
9
  xml do
9
10
  element "aff-alternatives"
10
11
 
12
+ map_attribute "id", to: :id
13
+
11
14
  map_element "aff", to: :aff
12
15
  end
13
16
  end
@@ -3,9 +3,11 @@
3
3
  module Sts
4
4
  module NisoSts
5
5
  class AltText < Lutaml::Model::Serializable
6
+ attribute :id, :string
6
7
  attribute :content, :string, collection: true
7
8
  xml do
8
9
  element "alt-text"
10
+ map_attribute "id", to: :id
9
11
  mixed_content
10
12
 
11
13
  map_content to: :content
@@ -3,9 +3,11 @@
3
3
  module Sts
4
4
  module NisoSts
5
5
  class AltTitle < Lutaml::Model::Serializable
6
+ attribute :id, :string
6
7
  attribute :content, :string, collection: true
7
8
  xml do
8
9
  element "alt-title"
10
+ map_attribute "id", to: :id
9
11
  mixed_content
10
12
 
11
13
  map_content to: :content
@@ -3,12 +3,11 @@
3
3
  module Sts
4
4
  module NisoSts
5
5
  class Alternatives < Lutaml::Model::Serializable
6
- attribute :content, :string, collection: true
6
+ attribute :id, :string
7
7
  xml do
8
8
  element "alternatives"
9
- mixed_content
10
-
11
- map_content to: :content
9
+ map_attribute "id", to: :id
10
+ ordered
12
11
  end
13
12
  end
14
13
  end
@@ -8,17 +8,15 @@ module Sts
8
8
  attribute :xml_lang, :string
9
9
  attribute :specific_use, :string
10
10
  attribute :symbol, :string
11
- attribute :content, :string, collection: true
12
11
  xml do
13
12
  element "annotation"
14
- mixed_content
13
+ ordered
15
14
 
16
15
  map_attribute "id", to: :id
17
16
  map_attribute "content-type", to: :content_type
18
17
  map_attribute "xml:lang", to: :xml_lang
19
18
  map_attribute "specific-use", to: :specific_use
20
19
  map_attribute "symbol", to: :symbol
21
- map_content to: :content
22
20
  end
23
21
  end
24
22
  end
@@ -3,8 +3,11 @@
3
3
  module Sts
4
4
  module NisoSts
5
5
  class Anonymous < Lutaml::Model::Serializable
6
+ attribute :id, :string
6
7
  xml do
7
8
  element "anonymous"
9
+
10
+ map_attribute "id", to: :id
8
11
  end
9
12
  end
10
13
  end
@@ -5,6 +5,7 @@ module Sts
5
5
  class App < Lutaml::Model::Serializable
6
6
  attribute :id, :string
7
7
  attribute :content_type, :string
8
+ attribute :originator, :string
8
9
  attribute :label, ::Sts::NisoSts::Label
9
10
  attribute :annex_type, :string
10
11
  attribute :title, ::Sts::NisoSts::Title
@@ -14,14 +15,22 @@ module Sts
14
15
  attribute :ref_list, ::Sts::NisoSts::ReferenceList, collection: true
15
16
  attribute :non_normative_note, ::Sts::NisoSts::NonNormativeNote,
16
17
  collection: true
18
+ attribute :non_normative_example, ::Sts::NisoSts::NonNormativeExample,
19
+ collection: true
17
20
  attribute :table_wrap, ::Sts::TbxIsoTml::TableWrap, collection: true
21
+ attribute :list, ::Sts::NisoSts::List, collection: true
22
+ attribute :array, ::Sts::NisoSts::SectionArray, collection: true
23
+ attribute :preformat, ::Sts::NisoSts::Preformat, collection: true
24
+ attribute :boxed_text, ::Sts::NisoSts::BoxedText, collection: true
25
+ attribute :graphic, ::Sts::NisoSts::Graphic, collection: true
18
26
 
19
27
  xml do
20
28
  element "app"
21
- mixed_content
29
+ ordered
22
30
 
23
31
  map_attribute "id", to: :id
24
32
  map_attribute "content-type", to: :content_type
33
+ map_attribute "originator", to: :originator
25
34
 
26
35
  map_element "label", to: :label
27
36
  map_element "annex-type", to: :annex_type
@@ -31,7 +40,13 @@ module Sts
31
40
  map_element "p", to: :paragraph
32
41
  map_element "ref-list", to: :ref_list
33
42
  map_element "non-normative-note", to: :non_normative_note
43
+ map_element "non-normative-example", to: :non_normative_example
34
44
  map_element "table-wrap", to: :table_wrap
45
+ map_element "list", to: :list
46
+ map_element "array", to: :array
47
+ map_element "preformat", to: :preformat
48
+ map_element "boxed-text", to: :boxed_text
49
+ map_element "graphic", to: :graphic
35
50
  end
36
51
  end
37
52
  end
@@ -3,11 +3,16 @@
3
3
  module Sts
4
4
  module NisoSts
5
5
  class AppGroup < Lutaml::Model::Serializable
6
+ attribute :id, :string
7
+ attribute :content_type, :string
6
8
  attribute :app, Sts::NisoSts::App, collection: true
7
9
 
8
10
  xml do
9
11
  element "app-group"
12
+ ordered
10
13
 
14
+ map_attribute "id", to: :id
15
+ map_attribute "content-type", to: :content_type
11
16
  map_element "app", to: :app
12
17
  end
13
18
  end
@@ -3,12 +3,14 @@
3
3
  module Sts
4
4
  module NisoSts
5
5
  class ArticleTitle < Lutaml::Model::Serializable
6
+ attribute :id, :string
6
7
  attribute :content, :string, collection: true
7
8
  attribute :bold, ::Sts::TbxIsoTml::Bold, collection: true
8
9
  attribute :italic, ::Sts::TbxIsoTml::Italic, collection: true
9
10
 
10
11
  xml do
11
12
  element "article-title"
13
+ map_attribute "id", to: :id
12
14
  mixed_content
13
15
 
14
16
  map_content to: :content
@@ -3,9 +3,11 @@
3
3
  module Sts
4
4
  module NisoSts
5
5
  class Attrib < Lutaml::Model::Serializable
6
+ attribute :id, :string
6
7
  attribute :content, :string, collection: true
7
8
  xml do
8
9
  element "attrib"
10
+ map_attribute "id", to: :id
9
11
  mixed_content
10
12
 
11
13
  map_content to: :content
@@ -7,16 +7,14 @@ module Sts
7
7
  attribute :content_type, :string
8
8
  attribute :specific_use, :string
9
9
  attribute :xml_lang, :string
10
- attribute :content, :string, collection: true
11
10
  xml do
12
11
  element "author-comment"
13
- mixed_content
12
+ ordered
14
13
 
15
14
  map_attribute "id", to: :id
16
15
  map_attribute "content-type", to: :content_type
17
16
  map_attribute "specific-use", to: :specific_use
18
17
  map_attribute "xml:lang", to: :xml_lang
19
- map_content to: :content
20
18
  end
21
19
  end
22
20
  end
@@ -14,7 +14,7 @@ module Sts
14
14
 
15
15
  xml do
16
16
  element "author-notes"
17
- mixed_content
17
+ ordered
18
18
 
19
19
  map_attribute "id", to: :id
20
20
  map_attribute "xml:lang", to: :xml_lang
@@ -3,9 +3,11 @@
3
3
  module Sts
4
4
  module NisoSts
5
5
  class Authorization < Lutaml::Model::Serializable
6
+ attribute :id, :string
6
7
  attribute :content, :string, collection: true
7
8
  xml do
8
9
  element "authorization"
10
+ map_attribute "id", to: :id
9
11
  mixed_content
10
12
 
11
13
  map_content to: :content
@@ -3,18 +3,37 @@
3
3
  module Sts
4
4
  module NisoSts
5
5
  class AwardGroup < Lutaml::Model::Serializable
6
- attribute :id, :string
7
6
  attribute :award_type, :string
7
+ attribute :id, :string
8
+ attribute :rid, :string
9
+ attribute :specific_use, :string
10
+ attribute :xlink_href, :string
11
+ attribute :xlink_role, :string
12
+ attribute :xlink_title, :string
13
+ attribute :xlink_show, :string
14
+ attribute :xlink_actuate, :string
15
+ attribute :xml_lang, :string
8
16
  attribute :funding_source, ::Sts::NisoSts::FundingSource, collection: true
9
17
  attribute :award_id, ::Sts::NisoSts::AwardId, collection: true
10
- attribute :principal_award_recipient, ::Sts::NisoSts::PrincipalAwardRecipient
11
- attribute :principal_investigator, ::Sts::NisoSts::PrincipalInvestigator
18
+ attribute :principal_award_recipient,
19
+ ::Sts::NisoSts::PrincipalAwardRecipient, collection: true
20
+ attribute :principal_investigator, ::Sts::NisoSts::PrincipalInvestigator,
21
+ collection: true
12
22
 
13
23
  xml do
14
24
  element "award-group"
25
+ ordered
15
26
 
16
- map_attribute "id", to: :id
17
27
  map_attribute "award-type", to: :award_type
28
+ map_attribute "id", to: :id
29
+ map_attribute "rid", to: :rid
30
+ map_attribute "specific-use", to: :specific_use
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_attribute "xml:lang", to: :xml_lang
18
37
 
19
38
  map_element "funding-source", to: :funding_source
20
39
  map_element "award-id", to: :award_id
@@ -4,14 +4,20 @@ module Sts
4
4
  module NisoSts
5
5
  class AwardId < Lutaml::Model::Serializable
6
6
  attribute :award_id_type, :string
7
+ attribute :id, :string
7
8
  attribute :rid, :string
9
+ attribute :specific_use, :string
10
+ attribute :xml_lang, :string
8
11
  attribute :content, :string, collection: true
9
12
  xml do
10
13
  element "award-id"
11
14
  mixed_content
12
15
 
13
16
  map_attribute "award-id-type", to: :award_id_type
17
+ map_attribute "id", to: :id
14
18
  map_attribute "rid", to: :rid
19
+ map_attribute "specific-use", to: :specific_use
20
+ map_attribute "xml:lang", to: :xml_lang
15
21
  map_content to: :content
16
22
  end
17
23
  end
@@ -3,18 +3,37 @@
3
3
  module Sts
4
4
  module NisoSts
5
5
  class Back < Lutaml::Model::Serializable
6
- attribute :ref_list, ::Sts::NisoSts::ReferenceList
7
- attribute :app_group, ::Sts::NisoSts::AppGroup
8
- attribute :sec, ::Sts::NisoSts::Section
9
- attribute :fn_group, ::Sts::NisoSts::FnGroup
6
+ attribute :id, :string
7
+ attribute :label, ::Sts::NisoSts::Label
8
+ attribute :title, ::Sts::NisoSts::Title
9
+ attribute :ack, ::Sts::NisoSts::Ack, collection: true
10
+ attribute :app_group, ::Sts::NisoSts::AppGroup, collection: true
11
+ attribute :bio, ::Sts::NisoSts::Bio, collection: true
12
+ attribute :fn_group, ::Sts::NisoSts::FnGroup, collection: true
13
+ attribute :glossary, ::Sts::NisoSts::Glossary, collection: true
14
+ attribute :index, ::Sts::NisoSts::Index, collection: true
15
+ attribute :notes, ::Sts::NisoSts::Notes, collection: true
16
+ attribute :ref_list, ::Sts::NisoSts::ReferenceList, collection: true
17
+ attribute :sec, ::Sts::NisoSts::Section, collection: true
18
+ attribute :toc, ::Sts::NisoSts::Toc, collection: true
10
19
 
11
20
  xml do
12
21
  element "back"
22
+ ordered
13
23
 
14
- map_element "ref-list", to: :ref_list
24
+ map_attribute "id", to: :id
25
+ map_element "label", to: :label
26
+ map_element "title", to: :title
27
+ map_element "ack", to: :ack
15
28
  map_element "app-group", to: :app_group
16
- map_element "sec", to: :sec
29
+ map_element "bio", to: :bio
17
30
  map_element "fn-group", to: :fn_group
31
+ map_element "glossary", to: :glossary
32
+ map_element "index", to: :index
33
+ map_element "notes", to: :notes
34
+ map_element "ref-list", to: :ref_list
35
+ map_element "sec", to: :sec
36
+ map_element "toc", to: :toc
18
37
  end
19
38
  end
20
39
  end
@@ -4,17 +4,15 @@ module Sts
4
4
  module NisoSts
5
5
  class Bio < Lutaml::Model::Serializable
6
6
  attribute :id, :string
7
- attribute :content, :string, collection: true
8
7
  attribute :bold, ::Sts::TbxIsoTml::Bold, collection: true
9
8
  attribute :italic, ::Sts::TbxIsoTml::Italic, collection: true
10
9
  attribute :paragraph, ::Sts::NisoSts::Paragraph, collection: true
11
10
 
12
11
  xml do
13
12
  element "bio"
14
- mixed_content
13
+ ordered
15
14
 
16
15
  map_attribute "id", to: :id
17
- map_content to: :content
18
16
  map_element "bold", to: :bold
19
17
  map_element "italic", to: :italic
20
18
  map_element "p", to: :paragraph