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
@@ -5,18 +5,30 @@ module Sts
5
5
  class NonNormativeNote < Lutaml::Model::Serializable
6
6
  attribute :id, :string
7
7
  attribute :content_type, :string
8
- attribute :p, ::Sts::NisoSts::Paragraph
8
+ attribute :originator, :string
9
+ attribute :p, ::Sts::NisoSts::Paragraph, collection: true
9
10
  attribute :label, ::Sts::NisoSts::Label
11
+ attribute :list, ::Sts::NisoSts::List, collection: true
12
+ attribute :preformat, ::Sts::NisoSts::Preformat, collection: true
13
+ attribute :boxed_text, ::Sts::NisoSts::BoxedText, collection: true
14
+ attribute :graphic, ::Sts::NisoSts::Graphic, collection: true
15
+ attribute :array, ::Sts::NisoSts::SectionArray, collection: true
10
16
 
11
17
  xml do
12
18
  element "non-normative-note"
13
- mixed_content
19
+ ordered
14
20
 
15
21
  map_attribute "content-type", to: :content_type
16
22
  map_attribute "id", to: :id
23
+ map_attribute "originator", to: :originator
17
24
 
18
25
  map_element "p", to: :p
19
26
  map_element "label", to: :label
27
+ map_element "list", to: :list
28
+ map_element "preformat", to: :preformat
29
+ map_element "boxed-text", to: :boxed_text
30
+ map_element "graphic", to: :graphic
31
+ map_element "array", to: :array
20
32
  end
21
33
  end
22
34
  end
@@ -12,7 +12,7 @@ module Sts
12
12
 
13
13
  xml do
14
14
  element "normative-example"
15
- mixed_content
15
+ ordered
16
16
 
17
17
  map_attribute "id", to: :id
18
18
  map_attribute "xml:lang", to: :xml_lang
@@ -5,6 +5,7 @@ module Sts
5
5
  class NormativeNote < Lutaml::Model::Serializable
6
6
  attribute :id, :string
7
7
  attribute :content_type, :string
8
+ attribute :originator, :string
8
9
  attribute :xml_lang, :string
9
10
  attribute :specific_use, :string
10
11
  attribute :symbol, :string
@@ -13,10 +14,11 @@ module Sts
13
14
 
14
15
  xml do
15
16
  element "normative-note"
16
- mixed_content
17
+ ordered
17
18
 
18
19
  map_attribute "id", to: :id
19
20
  map_attribute "content-type", to: :content_type
21
+ map_attribute "originator", to: :originator
20
22
  map_attribute "xml:lang", to: :xml_lang
21
23
  map_attribute "specific-use", to: :specific_use
22
24
  map_attribute "symbol", to: :symbol
@@ -13,7 +13,7 @@ module Sts
13
13
 
14
14
  xml do
15
15
  element "note"
16
- mixed_content
16
+ ordered
17
17
 
18
18
  map_attribute "id", to: :id
19
19
  map_attribute "content-type", to: :content_type
@@ -14,7 +14,7 @@ module Sts
14
14
 
15
15
  xml do
16
16
  element "notes"
17
- mixed_content
17
+ ordered
18
18
 
19
19
  map_attribute "id", to: :id
20
20
  map_attribute "notes-type", to: :notes_type
@@ -12,6 +12,7 @@ module Sts
12
12
 
13
13
  xml do
14
14
  element "notes-group"
15
+ ordered
15
16
 
16
17
  map_attribute "id", to: :id
17
18
  map_attribute "content-type", to: :content_type
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # rubocop:disable Layout/LineLength
2
4
  # <object-id pub-id-type="fpi">+//ISO 9070/RA::A00007::GE::DIN German Institute for
3
5
  # Standardization::Standards//NONSGML ISO 13849-1:2006-11-00::Figure 1//EN</object-id>
@@ -7,12 +9,14 @@
7
9
  module Sts
8
10
  module NisoSts
9
11
  class ObjectId < Lutaml::Model::Serializable
12
+ attribute :id, :string
10
13
  attribute :pub_id_type, :string
11
14
  attribute :content, :string
12
15
 
13
16
  xml do
14
17
  element "object-id"
15
18
 
19
+ map_attribute "id", to: :id
16
20
  map_attribute "pub-id-type", to: :pub_id_type
17
21
  map_content to: :content
18
22
  end
@@ -3,12 +3,14 @@
3
3
  module Sts
4
4
  module NisoSts
5
5
  class OnBehalfOf < 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 "on-behalf-of"
13
+ map_attribute "id", to: :id
12
14
  mixed_content
13
15
 
14
16
  map_content to: :content
@@ -3,12 +3,11 @@
3
3
  module Sts
4
4
  module NisoSts
5
5
  class OpenAccess < Lutaml::Model::Serializable
6
- attribute :content, :string, collection: true
6
+ attribute :id, :string
7
7
  xml do
8
8
  element "open-access"
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
@@ -3,9 +3,11 @@
3
3
  module Sts
4
4
  module NisoSts
5
5
  class Originator < Lutaml::Model::Serializable
6
+ attribute :id, :string
6
7
  attribute :content, :string, collection: true
7
8
  xml do
8
9
  element "originator"
10
+ map_attribute "id", to: :id
9
11
  mixed_content
10
12
 
11
13
  map_content to: :content
@@ -3,10 +3,12 @@
3
3
  module Sts
4
4
  module NisoSts
5
5
  class PageCount < Lutaml::Model::Serializable
6
+ attribute :id, :string
6
7
  attribute :count, :integer
7
8
 
8
9
  xml do
9
10
  element "page-count"
11
+ map_attribute "id", to: :id
10
12
  map_attribute "count", to: :count
11
13
  end
12
14
  end
@@ -3,12 +3,14 @@
3
3
  module Sts
4
4
  module NisoSts
5
5
  class PageRange < 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 "page-range"
13
+ map_attribute "id", to: :id
12
14
  mixed_content
13
15
 
14
16
  map_content to: :content
@@ -4,29 +4,50 @@ module Sts
4
4
  module NisoSts
5
5
  class Paragraph < Lutaml::Model::Serializable
6
6
  attribute :id, :string
7
+ attribute :originator, :string
8
+ attribute :style_type, :string
9
+ attribute :specific_use, :string
7
10
  attribute :text, :string, collection: true
8
11
  attribute :italic, ::Sts::TbxIsoTml::Italic, collection: true
9
12
  attribute :bold, ::Sts::TbxIsoTml::Bold, collection: true
10
- attribute :uri, :string
11
- attribute :list, ::Sts::NisoSts::List
12
- attribute :def_list, ::Sts::NisoSts::DefList
13
- attribute :non_normative_note, ::Sts::NisoSts::NonNormativeNote
14
- attribute :non_normative_example, ::Sts::NisoSts::NonNormativeExample
13
+ attribute :uri, ::Sts::NisoSts::Uri, collection: true
14
+ attribute :styled_content, ::Sts::NisoSts::StyledContent, collection: true
15
+ attribute :list, ::Sts::NisoSts::List, collection: true
16
+ attribute :def_list, ::Sts::NisoSts::DefList, collection: true
17
+ attribute :non_normative_note, ::Sts::NisoSts::NonNormativeNote,
18
+ collection: true
19
+ attribute :non_normative_example, ::Sts::NisoSts::NonNormativeExample,
20
+ collection: true
15
21
  attribute :inline_formula, ::Sts::NisoSts::InlineFormula, collection: true
16
22
  attribute :disp_formula, ::Sts::NisoSts::DisplayFormula, collection: true
17
23
  attribute :xref, ::Sts::TbxIsoTml::Xref, collection: true
18
24
  attribute :std, ::Sts::NisoSts::ReferenceStandard, collection: true
19
- attribute :ext_link, ::Sts::NisoSts::ExtLink
20
- attribute :entailed_term, ::Sts::TbxIsoTml::EntailedTerm
25
+ attribute :ext_link, ::Sts::NisoSts::ExtLink, collection: true
26
+ attribute :entailed_term, ::Sts::TbxIsoTml::EntailedTerm, collection: true
27
+ attribute :sub, ::Sts::NisoSts::Sub, collection: true
28
+ attribute :sup, ::Sts::NisoSts::Sup, collection: true
29
+ attribute :sc, ::Sts::NisoSts::Sc, collection: true
30
+ attribute :monospace, ::Sts::NisoSts::Monospace, collection: true
31
+ attribute :underline, ::Sts::NisoSts::Underline, collection: true
32
+ attribute :break, ::Sts::NisoSts::Break, collection: true
33
+ attribute :fn, ::Sts::NisoSts::Fn, collection: true
34
+ attribute :graphic, ::Sts::NisoSts::Graphic, collection: true
35
+ attribute :preformat, ::Sts::NisoSts::Preformat, collection: true
36
+ attribute :array, ::Sts::NisoSts::SectionArray, collection: true
37
+ attribute :overline, ::Sts::NisoSts::Overline, collection: true
21
38
 
22
39
  xml do
23
40
  element "p"
24
41
  mixed_content
25
42
 
26
43
  map_attribute "id", to: :id
44
+ map_attribute "originator", to: :originator
45
+ map_attribute "style-type", to: :style_type
46
+ map_attribute "specific-use", to: :specific_use
27
47
  map_content to: :text
28
48
  map_element "bold", to: :bold
29
49
  map_element "italic", to: :italic
50
+ map_element "styled-content", to: :styled_content
30
51
  map_element "list", to: :list
31
52
  map_element "def-list", to: :def_list
32
53
  map_element "non-normative-note", to: :non_normative_note
@@ -38,6 +59,17 @@ module Sts
38
59
  map_element "uri", to: :uri
39
60
  map_element "std", to: :std
40
61
  map_element "xref", to: :xref
62
+ map_element "sub", to: :sub
63
+ map_element "sup", to: :sup
64
+ map_element "sc", to: :sc
65
+ map_element "monospace", to: :monospace
66
+ map_element "underline", to: :underline
67
+ map_element "break", to: :break
68
+ map_element "fn", to: :fn
69
+ map_element "graphic", to: :graphic
70
+ map_element "preformat", to: :preformat
71
+ map_element "array", to: :array
72
+ map_element "overline", to: :overline
41
73
  end
42
74
  end
43
75
  end
@@ -3,9 +3,11 @@
3
3
  module Sts
4
4
  module NisoSts
5
5
  class PartNumber < Lutaml::Model::Serializable
6
+ attribute :id, :string
6
7
  attribute :content, :string, collection: true
7
8
  xml do
8
9
  element "part-number"
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 PartOfSpeech < Lutaml::Model::Serializable
6
+ attribute :id, :string
6
7
  attribute :content, :string, collection: true
7
8
  xml do
8
9
  element "part-of-speech"
10
+ map_attribute "id", to: :id
9
11
  mixed_content
10
12
 
11
13
  map_content to: :content
@@ -3,12 +3,14 @@
3
3
  module Sts
4
4
  module NisoSts
5
5
  class Patent < 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 "patent"
13
+ map_attribute "id", to: :id
12
14
  mixed_content
13
15
 
14
16
  map_content to: :content
@@ -3,15 +3,21 @@
3
3
  module Sts
4
4
  module NisoSts
5
5
  class Permissions < Lutaml::Model::Serializable
6
+ attribute :id, :string
6
7
  attribute :copyright_statement, :string
7
8
  attribute :copyright_year, :string
8
- attribute :copyright_holder, :string
9
+ attribute :copyright_holder, :string, collection: true
10
+ attribute :license, ::Sts::NisoSts::License, collection: true
9
11
 
10
12
  xml do
11
13
  element "permissions"
14
+ map_attribute "id", to: :id
15
+ ordered
16
+
12
17
  map_element "copyright-statement", to: :copyright_statement
13
18
  map_element "copyright-year", to: :copyright_year
14
19
  map_element "copyright-holder", to: :copyright_holder
20
+ map_element "license", to: :license
15
21
  end
16
22
  end
17
23
  end
@@ -3,12 +3,14 @@
3
3
  module Sts
4
4
  module NisoSts
5
5
  class Phone < 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 "phone"
13
+ map_attribute "id", to: :id
12
14
  mixed_content
13
15
 
14
16
  map_content to: :content
@@ -3,12 +3,14 @@
3
3
  module Sts
4
4
  module NisoSts
5
5
  class PostalCode < 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 "postal-code"
13
+ map_attribute "id", to: :id
12
14
  mixed_content
13
15
 
14
16
  map_content to: :content
@@ -3,12 +3,14 @@
3
3
  module Sts
4
4
  module NisoSts
5
5
  class Prefix < 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 "prefix"
13
+ map_attribute "id", to: :id
12
14
  mixed_content
13
15
 
14
16
  map_content to: :content
@@ -8,7 +8,15 @@ module Sts
8
8
  attribute :preformat_type, :string
9
9
  attribute :xml_space, :string
10
10
  attribute :language, :string
11
+ attribute :orientation, :string
12
+ attribute :position, :string
11
13
  attribute :content, :string, collection: true
14
+ attribute :bold, ::Sts::TbxIsoTml::Bold, collection: true
15
+ attribute :italic, ::Sts::TbxIsoTml::Italic, collection: true
16
+ attribute :underline, ::Sts::NisoSts::Underline, collection: true
17
+ attribute :styled_content, ::Sts::NisoSts::StyledContent, collection: true
18
+ attribute :std, ::Sts::NisoSts::ReferenceStandard, collection: true
19
+
12
20
  xml do
13
21
  element "preformat"
14
22
  mixed_content
@@ -18,7 +26,14 @@ module Sts
18
26
  map_attribute "preformat-type", to: :preformat_type
19
27
  map_attribute "xml:space", to: :xml_space
20
28
  map_attribute "language", to: :language
29
+ map_attribute "orientation", to: :orientation
30
+ map_attribute "position", to: :position
21
31
  map_content to: :content
32
+ map_element "bold", to: :bold
33
+ map_element "italic", to: :italic
34
+ map_element "underline", to: :underline
35
+ map_element "styled-content", to: :styled_content
36
+ map_element "std", to: :std
22
37
  end
23
38
  end
24
39
  end
@@ -3,9 +3,11 @@
3
3
  module Sts
4
4
  module NisoSts
5
5
  class Price < Lutaml::Model::Serializable
6
+ attribute :id, :string
6
7
  attribute :content, :string, collection: true
7
8
  xml do
8
9
  element "price"
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 PrincipalAwardRecipient < Lutaml::Model::Serializable
6
+ attribute :id, :string
6
7
  attribute :content, :string, collection: true
7
8
  xml do
8
9
  element "principal-award-recipient"
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 PrincipalInvestigator < Lutaml::Model::Serializable
6
+ attribute :id, :string
6
7
  attribute :content, :string, collection: true
7
8
  xml do
8
9
  element "principal-investigator"
10
+ map_attribute "id", to: :id
9
11
  mixed_content
10
12
 
11
13
  map_content to: :content
@@ -3,18 +3,18 @@
3
3
  module Sts
4
4
  module NisoSts
5
5
  class PrivateChar < Lutaml::Model::Serializable
6
+ attribute :id, :string
6
7
  attribute :description, :string
7
8
  attribute :name, :string
8
9
  attribute :specific_use, :string
9
- attribute :content, :string, collection: true
10
10
  xml do
11
11
  element "private-char"
12
- mixed_content
12
+ map_attribute "id", to: :id
13
+ ordered
13
14
 
14
15
  map_attribute "description", to: :description
15
16
  map_attribute "name", to: :name
16
17
  map_attribute "specific-use", to: :specific_use
17
- map_content to: :content
18
18
  end
19
19
  end
20
20
  end
@@ -0,0 +1,54 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sts
4
+ module NisoSts
5
+ class RestrictedBy < Lutaml::Model::Serializable
6
+ attribute :content, :string, collection: true
7
+
8
+ xml do
9
+ element "restricted-by"
10
+ mixed_content
11
+ map_content to: :content
12
+ end
13
+ end
14
+
15
+ class ExtendedBy < Lutaml::Model::Serializable
16
+ attribute :content, :string, collection: true
17
+
18
+ xml do
19
+ element "extended-by"
20
+ mixed_content
21
+ map_content to: :content
22
+ end
23
+ end
24
+
25
+ class ProcessingMeta < Lutaml::Model::Serializable
26
+ attribute :id, :string
27
+ attribute :tagset_family, :string
28
+ attribute :base_tagset, :string
29
+ attribute :table_model, :string
30
+ attribute :math_representation, :string
31
+ attribute :mathml_version, :string
32
+ attribute :terminology_model, :string
33
+ attribute :restricted_by, ::Sts::NisoSts::RestrictedBy,
34
+ collection: true
35
+ attribute :extended_by, ::Sts::NisoSts::ExtendedBy, collection: true
36
+ attribute :custom_meta_group, ::Sts::NisoSts::CustomMetaGroup
37
+
38
+ xml do
39
+ element "processing-meta"
40
+
41
+ map_attribute "id", to: :id
42
+ map_attribute "tagset-family", to: :tagset_family
43
+ map_attribute "base-tagset", to: :base_tagset
44
+ map_attribute "table-model", to: :table_model
45
+ map_attribute "math-representation", to: :math_representation
46
+ map_attribute "mathml-version", to: :mathml_version
47
+ map_attribute "terminology-model", to: :terminology_model
48
+ map_element "restricted-by", to: :restricted_by
49
+ map_element "extended-by", to: :extended_by
50
+ map_element "custom-meta-group", to: :custom_meta_group
51
+ end
52
+ end
53
+ end
54
+ end
@@ -3,11 +3,13 @@
3
3
  module Sts
4
4
  module NisoSts
5
5
  class Product < Lutaml::Model::Serializable
6
+ attribute :id, :string
6
7
  attribute :product_type, :string
7
8
  attribute :xlink_href, :string
8
9
  attribute :content, :string, collection: true
9
10
  xml do
10
11
  element "product"
12
+ map_attribute "id", to: :id
11
13
  mixed_content
12
14
 
13
15
  map_attribute "product-type", to: :product_type
@@ -3,9 +3,11 @@
3
3
  module Sts
4
4
  module NisoSts
5
5
  class ProjId < Lutaml::Model::Serializable
6
+ attribute :id, :string
6
7
  attribute :content, :string, collection: true
7
8
  xml do
8
9
  element "proj-id"
10
+ map_attribute "id", to: :id
9
11
  mixed_content
10
12
 
11
13
  map_content to: :content
@@ -3,11 +3,13 @@
3
3
  module Sts
4
4
  module NisoSts
5
5
  class PubDate < Lutaml::Model::Serializable
6
+ attribute :id, :string
6
7
  attribute :day, :string
7
8
  attribute :month, :string
8
9
  attribute :year, :string
9
10
  attribute :era, :string
10
11
  attribute :season, :string
12
+ attribute :content, :string
11
13
  attribute :date_type, :string
12
14
  attribute :iso_8601_date, :string
13
15
  attribute :publication_format, :string
@@ -15,7 +17,9 @@ module Sts
15
17
  xml do
16
18
  element "pub-date"
17
19
 
20
+ map_attribute "id", to: :id
18
21
  map_attribute "date-type", to: :date_type
22
+ map_content to: :content
19
23
  map_attribute "iso-8601-date", to: :iso_8601_date
20
24
  map_attribute "publication-format", to: :publication_format
21
25
  map_element "day", to: :day
@@ -3,6 +3,7 @@
3
3
  module Sts
4
4
  module NisoSts
5
5
  class PubId < Lutaml::Model::Serializable
6
+ attribute :id, :string
6
7
  attribute :pub_id_type, :string
7
8
  attribute :assigning_authority, :string
8
9
  attribute :content, :string
@@ -10,6 +11,7 @@ module Sts
10
11
  xml do
11
12
  element "pub-id"
12
13
 
14
+ map_attribute "id", to: :id
13
15
  map_attribute "pub-id-type", to: :pub_id_type
14
16
  map_attribute "assigning-authority", to: :assigning_authority
15
17
  map_content to: :content
@@ -3,11 +3,14 @@
3
3
  module Sts
4
4
  module NisoSts
5
5
  class Publisher < Lutaml::Model::Serializable
6
+ attribute :id, :string
6
7
  attribute :publisher_name, ::Sts::NisoSts::PublisherName, collection: true
7
8
  attribute :publisher_loc, ::Sts::NisoSts::PublisherLoc, collection: true
8
9
 
9
10
  xml do
10
11
  element "publisher"
12
+ map_attribute "id", to: :id
13
+ ordered
11
14
 
12
15
  map_element "publisher-name", to: :publisher_name
13
16
  map_element "publisher-loc", to: :publisher_loc
@@ -3,12 +3,14 @@
3
3
  module Sts
4
4
  module NisoSts
5
5
  class PublisherLoc < 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 "publisher-loc"
13
+ map_attribute "id", to: :id
12
14
  mixed_content
13
15
 
14
16
  map_content to: :content
@@ -3,12 +3,14 @@
3
3
  module Sts
4
4
  module NisoSts
5
5
  class PublisherName < 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 "publisher-name"
13
+ map_attribute "id", to: :id
12
14
  mixed_content
13
15
 
14
16
  map_content to: :content
@@ -3,10 +3,12 @@
3
3
  module Sts
4
4
  module NisoSts
5
5
  class RefCount < Lutaml::Model::Serializable
6
+ attribute :id, :string
6
7
  attribute :count, :integer
7
8
 
8
9
  xml do
9
10
  element "ref-count"
11
+ map_attribute "id", to: :id
10
12
  map_attribute "count", to: :count
11
13
  end
12
14
  end