sts 0.5.3 → 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 (369) hide show
  1. checksums.yaml +4 -4
  2. data/GAPS.guidelines.iso-sts-ed2.1/01-maintenance.md +19 -0
  3. data/GAPS.guidelines.iso-sts-ed2.1/03-general.md +75 -0
  4. data/GAPS.guidelines.iso-sts-ed2.1/04-structure.md +75 -0
  5. data/GAPS.guidelines.iso-sts-ed2.1/05-content.md +63 -0
  6. data/GAPS.guidelines.iso-sts-ed2.1/06-tables.md +53 -0
  7. data/GAPS.guidelines.iso-sts-ed2.1/07-formulae.md +41 -0
  8. data/GAPS.guidelines.iso-sts-ed2.1/08-figures.md +45 -0
  9. data/GAPS.guidelines.iso-sts-ed2.1/09-terms.md +56 -0
  10. data/GAPS.guidelines.iso-sts-ed2.1/10-references.md +56 -0
  11. data/GAPS.guidelines.iso-sts-ed2.1/annex-a-multilingual.md +79 -0
  12. data/GAPS.guidelines.niso-sts-v1.0/01-introduction-scope.md +27 -0
  13. data/GAPS.guidelines.niso-sts-v1.0/02-document-structure.md +100 -0
  14. data/GAPS.guidelines.niso-sts-v1.0/03-front-matter.md +149 -0
  15. data/GAPS.guidelines.niso-sts-v1.0/04-body-content.md +209 -0
  16. data/GAPS.guidelines.niso-sts-v1.0/05-tables-figures.md +152 -0
  17. data/GAPS.guidelines.niso-sts-v1.0/06-math-formulae.md +128 -0
  18. data/GAPS.guidelines.niso-sts-v1.0/07-references.md +113 -0
  19. data/GAPS.guidelines.niso-sts-v1.0/08-terminology.md +127 -0
  20. data/GAPS.guidelines.niso-sts-v1.0/09-metadata.md +113 -0
  21. data/GAPS.guidelines.niso-sts-v1.0/10-iso-iec-variant.md +141 -0
  22. data/GAPS.guidelines.niso-sts-v1.0/SUMMARY.md +96 -0
  23. data/GAPS.guidelines.schema-xref.md +101 -0
  24. data/Gemfile +1 -0
  25. data/TODO.sts-refactor/00-overview.md +172 -0
  26. data/TODO.sts-refactor/01-mathml-delegation.md +153 -0
  27. data/TODO.sts-refactor/02-type-resolution.md +122 -0
  28. data/TODO.sts-refactor/03-namespace-coupling.md +158 -0
  29. data/TODO.sts-refactor/04-register-versioning.md +180 -0
  30. data/TODO.sts-refactor/05-missing-elements.md +195 -0
  31. data/TODO.sts-refactor/06-missing-attributes.md +152 -0
  32. data/TODO.sts-refactor/07-incomplete-models.md +180 -0
  33. data/TODO.sts-refactor/08-isoiec-profile.md +169 -0
  34. data/TODO.sts-refactor/09-autoload-cleanup.md +88 -0
  35. data/TODO.sts-refactor/10-test-coverage.md +164 -0
  36. data/TODO.sts-refactor/11-duplicate-models.md +168 -0
  37. data/lib/sts/iso_sts/annex_type.rb +2 -0
  38. data/lib/sts/iso_sts/bold.rb +9 -9
  39. data/lib/sts/iso_sts/break.rb +3 -0
  40. data/lib/sts/iso_sts/comm_ref.rb +2 -0
  41. data/lib/sts/iso_sts/content_language.rb +22 -0
  42. data/lib/sts/iso_sts/copyright_holder.rb +4 -2
  43. data/lib/sts/iso_sts/copyright_statement.rb +4 -2
  44. data/lib/sts/iso_sts/copyright_year.rb +3 -0
  45. data/lib/sts/iso_sts/doc_ref.rb +2 -0
  46. data/lib/sts/iso_sts/document_identification.rb +2 -0
  47. data/lib/sts/iso_sts/edition.rb +2 -0
  48. data/lib/sts/iso_sts/ext_link.rb +1 -1
  49. data/lib/sts/iso_sts/front.rb +2 -0
  50. data/lib/sts/iso_sts/iso_meta.rb +2 -2
  51. data/lib/sts/iso_sts/italic.rb +9 -9
  52. data/lib/sts/iso_sts/label.rb +7 -5
  53. data/lib/sts/iso_sts/language.rb +2 -0
  54. data/lib/sts/iso_sts/meta_date.rb +20 -0
  55. data/lib/sts/iso_sts/mixed_citation.rb +5 -5
  56. data/lib/sts/iso_sts/monospace.rb +26 -0
  57. data/lib/sts/iso_sts/named_content.rb +44 -0
  58. data/lib/sts/iso_sts/nat_meta.rb +4 -4
  59. data/lib/sts/iso_sts/page_count.rb +2 -0
  60. data/lib/sts/iso_sts/paragraph.rb +8 -8
  61. data/lib/sts/iso_sts/permissions.rb +2 -0
  62. data/lib/sts/iso_sts/preformat.rb +3 -3
  63. data/lib/sts/iso_sts/reg_meta.rb +4 -4
  64. data/lib/sts/iso_sts/release_date.rb +2 -0
  65. data/lib/sts/iso_sts/sc.rb +26 -0
  66. data/lib/sts/iso_sts/sec.rb +2 -2
  67. data/lib/sts/iso_sts/secretariat.rb +2 -0
  68. data/lib/sts/iso_sts/standard_cross_reference.rb +4 -2
  69. data/lib/sts/iso_sts/standard_identification.rb +2 -0
  70. data/lib/sts/iso_sts/standard_ref.rb +16 -0
  71. data/lib/sts/iso_sts/std.rb +3 -1
  72. data/lib/sts/iso_sts/std_ref.rb +2 -0
  73. data/lib/sts/iso_sts/strike.rb +26 -0
  74. data/lib/sts/iso_sts/styled_content.rb +11 -9
  75. data/lib/sts/iso_sts/sub.rb +2 -0
  76. data/lib/sts/iso_sts/sup.rb +2 -0
  77. data/lib/sts/iso_sts/table_wrap_foot.rb +2 -0
  78. data/lib/sts/iso_sts/td.rb +7 -7
  79. data/lib/sts/iso_sts/term.rb +5 -5
  80. data/lib/sts/iso_sts/th.rb +7 -7
  81. data/lib/sts/iso_sts/title.rb +6 -4
  82. data/lib/sts/iso_sts/title_compl.rb +2 -0
  83. data/lib/sts/iso_sts/title_full.rb +2 -0
  84. data/lib/sts/iso_sts/title_intro.rb +2 -0
  85. data/lib/sts/iso_sts/title_main.rb +2 -0
  86. data/lib/sts/iso_sts/underline.rb +26 -0
  87. data/lib/sts/iso_sts/uri.rb +32 -0
  88. data/lib/sts/iso_sts/xref.rb +3 -3
  89. data/lib/sts/iso_sts.rb +9 -0
  90. data/lib/sts/mathml.rb +12 -58
  91. data/lib/sts/namespaces.rb +2 -0
  92. data/lib/sts/niso_sts/abstract.rb +2 -0
  93. data/lib/sts/niso_sts/access_date.rb +2 -0
  94. data/lib/sts/niso_sts/accrediting_organization.rb +2 -0
  95. data/lib/sts/niso_sts/addr_line.rb +2 -0
  96. data/lib/sts/niso_sts/address.rb +2 -0
  97. data/lib/sts/niso_sts/aff_alternatives.rb +3 -0
  98. data/lib/sts/niso_sts/alt_text.rb +2 -0
  99. data/lib/sts/niso_sts/alt_title.rb +2 -0
  100. data/lib/sts/niso_sts/alternatives.rb +2 -0
  101. data/lib/sts/niso_sts/anonymous.rb +3 -0
  102. data/lib/sts/niso_sts/app.rb +2 -0
  103. data/lib/sts/niso_sts/article_title.rb +2 -0
  104. data/lib/sts/niso_sts/attrib.rb +2 -0
  105. data/lib/sts/niso_sts/authorization.rb +2 -0
  106. data/lib/sts/niso_sts/award_group.rb +22 -4
  107. data/lib/sts/niso_sts/award_id.rb +6 -0
  108. data/lib/sts/niso_sts/back.rb +22 -4
  109. data/lib/sts/niso_sts/body.rb +2 -0
  110. data/lib/sts/niso_sts/boxed_text.rb +38 -4
  111. data/lib/sts/niso_sts/break.rb +3 -0
  112. data/lib/sts/niso_sts/caption.rb +8 -0
  113. data/lib/sts/niso_sts/chapter_title.rb +2 -0
  114. data/lib/sts/niso_sts/chem_struct.rb +2 -0
  115. data/lib/sts/niso_sts/citation_alternatives.rb +2 -0
  116. data/lib/sts/niso_sts/city.rb +2 -0
  117. data/lib/sts/niso_sts/code.rb +111 -0
  118. data/lib/sts/niso_sts/collab_alternatives.rb +3 -0
  119. data/lib/sts/niso_sts/comm_ref_group.rb +3 -0
  120. data/lib/sts/niso_sts/comment.rb +2 -0
  121. data/lib/sts/niso_sts/compound_subject.rb +29 -0
  122. data/lib/sts/niso_sts/compound_subject_part.rb +39 -0
  123. data/lib/sts/niso_sts/conf_acronym.rb +2 -0
  124. data/lib/sts/niso_sts/conf_date.rb +2 -0
  125. data/lib/sts/niso_sts/conf_loc.rb +2 -0
  126. data/lib/sts/niso_sts/conf_name.rb +2 -0
  127. data/lib/sts/niso_sts/conf_num.rb +2 -0
  128. data/lib/sts/niso_sts/conf_sponsor.rb +2 -0
  129. data/lib/sts/niso_sts/conf_theme.rb +2 -0
  130. data/lib/sts/niso_sts/conference.rb +2 -0
  131. data/lib/sts/niso_sts/content_language.rb +2 -0
  132. data/lib/sts/niso_sts/contrib_id.rb +2 -0
  133. data/lib/sts/niso_sts/copyright_holder.rb +2 -0
  134. data/lib/sts/niso_sts/copyright_statement.rb +2 -0
  135. data/lib/sts/niso_sts/copyright_year.rb +2 -0
  136. data/lib/sts/niso_sts/country.rb +2 -0
  137. data/lib/sts/niso_sts/counts.rb +2 -0
  138. data/lib/sts/niso_sts/custom_meta.rb +2 -0
  139. data/lib/sts/niso_sts/custom_meta_group.rb +3 -0
  140. data/lib/sts/niso_sts/data_title.rb +29 -0
  141. data/lib/sts/niso_sts/date.rb +2 -0
  142. data/lib/sts/niso_sts/date_in_citation.rb +2 -0
  143. data/lib/sts/niso_sts/day.rb +2 -0
  144. data/lib/sts/niso_sts/def.rb +3 -0
  145. data/lib/sts/niso_sts/def_head.rb +18 -0
  146. data/lib/sts/niso_sts/def_item.rb +4 -0
  147. data/lib/sts/niso_sts/def_list.rb +21 -4
  148. data/lib/sts/niso_sts/degrees.rb +2 -0
  149. data/lib/sts/niso_sts/disp_formula_group.rb +0 -2
  150. data/lib/sts/niso_sts/disp_quote.rb +2 -0
  151. data/lib/sts/niso_sts/display_formula.rb +37 -4
  152. data/lib/sts/niso_sts/doc_number.rb +2 -0
  153. data/lib/sts/niso_sts/doc_type.rb +2 -0
  154. data/lib/sts/niso_sts/editing_instruction.rb +8 -2
  155. data/lib/sts/niso_sts/edition.rb +2 -0
  156. data/lib/sts/niso_sts/elocation_id.rb +2 -0
  157. data/lib/sts/niso_sts/email.rb +2 -0
  158. data/lib/sts/niso_sts/equation_count.rb +2 -0
  159. data/lib/sts/niso_sts/era.rb +2 -0
  160. data/lib/sts/niso_sts/ext_link.rb +16 -0
  161. data/lib/sts/niso_sts/fax.rb +2 -0
  162. data/lib/sts/niso_sts/fig_count.rb +2 -0
  163. data/lib/sts/niso_sts/floats_group.rb +2 -0
  164. data/lib/sts/niso_sts/fn_group.rb +3 -0
  165. data/lib/sts/niso_sts/fpage.rb +2 -0
  166. data/lib/sts/niso_sts/front.rb +15 -0
  167. data/lib/sts/niso_sts/funding_source.rb +2 -0
  168. data/lib/sts/niso_sts/given_names.rb +2 -0
  169. data/lib/sts/niso_sts/gov.rb +2 -0
  170. data/lib/sts/niso_sts/graphic.rb +4 -0
  171. data/lib/sts/niso_sts/hr.rb +3 -0
  172. data/lib/sts/niso_sts/ics.rb +3 -0
  173. data/lib/sts/niso_sts/ics_desc.rb +2 -0
  174. data/lib/sts/niso_sts/ics_wrap.rb +9 -0
  175. data/lib/sts/niso_sts/index.rb +32 -0
  176. data/lib/sts/niso_sts/index_div.rb +30 -0
  177. data/lib/sts/niso_sts/index_entry.rb +32 -0
  178. data/lib/sts/niso_sts/index_title_group.rb +22 -0
  179. data/lib/sts/niso_sts/inline_formula.rb +29 -4
  180. data/lib/sts/niso_sts/inline_media.rb +50 -0
  181. data/lib/sts/niso_sts/institution.rb +2 -0
  182. data/lib/sts/niso_sts/institution_id.rb +2 -0
  183. data/lib/sts/niso_sts/institution_wrap.rb +2 -0
  184. data/lib/sts/niso_sts/intro.rb +2 -0
  185. data/lib/sts/niso_sts/is_proof.rb +2 -0
  186. data/lib/sts/niso_sts/isbn.rb +2 -0
  187. data/lib/sts/niso_sts/issn.rb +2 -0
  188. data/lib/sts/niso_sts/issn_l.rb +2 -0
  189. data/lib/sts/niso_sts/issue.rb +2 -0
  190. data/lib/sts/niso_sts/kwd_group.rb +8 -0
  191. data/lib/sts/niso_sts/label.rb +4 -0
  192. data/lib/sts/niso_sts/legend.rb +39 -0
  193. data/lib/sts/niso_sts/license.rb +2 -0
  194. data/lib/sts/niso_sts/license_p.rb +2 -0
  195. data/lib/sts/niso_sts/list.rb +2 -0
  196. data/lib/sts/niso_sts/list_item.rb +2 -2
  197. data/lib/sts/niso_sts/long_desc.rb +2 -0
  198. data/lib/sts/niso_sts/lpage.rb +2 -0
  199. data/lib/sts/niso_sts/main.rb +2 -0
  200. data/lib/sts/niso_sts/meta_date.rb +2 -0
  201. data/lib/sts/niso_sts/metadata_std.rb +0 -2
  202. data/lib/sts/niso_sts/mml_content.rb +0 -2
  203. data/lib/sts/niso_sts/month.rb +2 -0
  204. data/lib/sts/niso_sts/name.rb +2 -0
  205. data/lib/sts/niso_sts/name_alternatives.rb +5 -0
  206. data/lib/sts/niso_sts/named_content.rb +51 -1
  207. data/lib/sts/niso_sts/nat_meta.rb +2 -0
  208. data/lib/sts/niso_sts/nested_kwd.rb +2 -0
  209. data/lib/sts/niso_sts/non_normative_note.rb +2 -0
  210. data/lib/sts/niso_sts/normative_note.rb +2 -0
  211. data/lib/sts/niso_sts/object_id.rb +4 -0
  212. data/lib/sts/niso_sts/on_behalf_of.rb +2 -0
  213. data/lib/sts/niso_sts/open_access.rb +2 -0
  214. data/lib/sts/niso_sts/originator.rb +2 -0
  215. data/lib/sts/niso_sts/page_count.rb +2 -0
  216. data/lib/sts/niso_sts/page_range.rb +2 -0
  217. data/lib/sts/niso_sts/paragraph.rb +2 -0
  218. data/lib/sts/niso_sts/part_number.rb +2 -0
  219. data/lib/sts/niso_sts/part_of_speech.rb +2 -0
  220. data/lib/sts/niso_sts/patent.rb +2 -0
  221. data/lib/sts/niso_sts/permissions.rb +6 -1
  222. data/lib/sts/niso_sts/phone.rb +2 -0
  223. data/lib/sts/niso_sts/postal_code.rb +2 -0
  224. data/lib/sts/niso_sts/prefix.rb +2 -0
  225. data/lib/sts/niso_sts/price.rb +2 -0
  226. data/lib/sts/niso_sts/principal_award_recipient.rb +2 -0
  227. data/lib/sts/niso_sts/principal_investigator.rb +2 -0
  228. data/lib/sts/niso_sts/private_char.rb +2 -0
  229. data/lib/sts/niso_sts/processing_meta.rb +54 -0
  230. data/lib/sts/niso_sts/product.rb +2 -0
  231. data/lib/sts/niso_sts/proj_id.rb +2 -0
  232. data/lib/sts/niso_sts/pub_date.rb +2 -0
  233. data/lib/sts/niso_sts/pub_id.rb +2 -0
  234. data/lib/sts/niso_sts/publisher.rb +2 -0
  235. data/lib/sts/niso_sts/publisher_loc.rb +2 -0
  236. data/lib/sts/niso_sts/publisher_name.rb +2 -0
  237. data/lib/sts/niso_sts/ref_count.rb +2 -0
  238. data/lib/sts/niso_sts/reference_standard.rb +2 -2
  239. data/lib/sts/niso_sts/reg_meta.rb +2 -0
  240. data/lib/sts/niso_sts/related_term.rb +2 -0
  241. data/lib/sts/niso_sts/release_date.rb +2 -0
  242. data/lib/sts/niso_sts/release_version.rb +2 -0
  243. data/lib/sts/niso_sts/release_version_id.rb +2 -0
  244. data/lib/sts/niso_sts/role.rb +35 -0
  245. data/lib/sts/niso_sts/sdo.rb +2 -0
  246. data/lib/sts/niso_sts/season.rb +2 -0
  247. data/lib/sts/niso_sts/sec_meta.rb +26 -0
  248. data/lib/sts/niso_sts/secretariat.rb +2 -0
  249. data/lib/sts/niso_sts/section.rb +8 -0
  250. data/lib/sts/niso_sts/see_also_entry.rb +26 -0
  251. data/lib/sts/niso_sts/see_entry.rb +26 -0
  252. data/lib/sts/niso_sts/self_uri.rb +2 -0
  253. data/lib/sts/niso_sts/series.rb +2 -0
  254. data/lib/sts/niso_sts/series_text.rb +2 -0
  255. data/lib/sts/niso_sts/series_title.rb +2 -0
  256. data/lib/sts/niso_sts/sig.rb +2 -0
  257. data/lib/sts/niso_sts/size.rb +2 -0
  258. data/lib/sts/niso_sts/source.rb +29 -0
  259. data/lib/sts/niso_sts/speaker.rb +2 -0
  260. data/lib/sts/niso_sts/standard_identification.rb +2 -0
  261. data/lib/sts/niso_sts/state.rb +2 -0
  262. data/lib/sts/niso_sts/std_doc_meta.rb +49 -11
  263. data/lib/sts/niso_sts/std_id.rb +2 -0
  264. data/lib/sts/niso_sts/std_id_group.rb +3 -0
  265. data/lib/sts/niso_sts/std_org_abbrev.rb +2 -0
  266. data/lib/sts/niso_sts/std_org_group.rb +3 -0
  267. data/lib/sts/niso_sts/std_org_name.rb +2 -0
  268. data/lib/sts/niso_sts/std_organization.rb +2 -0
  269. data/lib/sts/niso_sts/string_conf.rb +2 -0
  270. data/lib/sts/niso_sts/string_date.rb +2 -0
  271. data/lib/sts/niso_sts/string_name.rb +2 -0
  272. data/lib/sts/niso_sts/styled_content.rb +2 -0
  273. data/lib/sts/niso_sts/subj_group.rb +11 -1
  274. data/lib/sts/niso_sts/subtitle.rb +2 -0
  275. data/lib/sts/niso_sts/suffix.rb +2 -0
  276. data/lib/sts/niso_sts/suppl_number.rb +2 -0
  277. data/lib/sts/niso_sts/suppl_type.rb +2 -0
  278. data/lib/sts/niso_sts/suppl_version.rb +2 -0
  279. data/lib/sts/niso_sts/surname.rb +2 -0
  280. data/lib/sts/niso_sts/table_count.rb +2 -0
  281. data/lib/sts/niso_sts/table_wrap_group.rb +32 -0
  282. data/lib/sts/niso_sts/term_display.rb +22 -1
  283. data/lib/sts/niso_sts/term_display_string.rb +22 -0
  284. data/lib/sts/niso_sts/term_head.rb +2 -0
  285. data/lib/sts/niso_sts/term_source.rb +2 -0
  286. data/lib/sts/niso_sts/tex_math.rb +2 -0
  287. data/lib/sts/niso_sts/textual_form.rb +2 -0
  288. data/lib/sts/niso_sts/time_stamp.rb +2 -0
  289. data/lib/sts/niso_sts/title.rb +6 -0
  290. data/lib/sts/niso_sts/title_wrap.rb +2 -0
  291. data/lib/sts/niso_sts/toc.rb +32 -0
  292. data/lib/sts/niso_sts/toc_div.rb +30 -0
  293. data/lib/sts/niso_sts/toc_entry.rb +30 -0
  294. data/lib/sts/niso_sts/toc_title_group.rb +22 -0
  295. data/lib/sts/niso_sts/trans_source.rb +2 -0
  296. data/lib/sts/niso_sts/trans_title.rb +2 -0
  297. data/lib/sts/niso_sts/trans_title_group.rb +3 -0
  298. data/lib/sts/niso_sts/uri.rb +2 -0
  299. data/lib/sts/niso_sts/urn.rb +2 -0
  300. data/lib/sts/niso_sts/verse_line.rb +2 -0
  301. data/lib/sts/niso_sts/version.rb +2 -0
  302. data/lib/sts/niso_sts/volume.rb +2 -0
  303. data/lib/sts/niso_sts/volume_id.rb +2 -0
  304. data/lib/sts/niso_sts/volume_issue_group.rb +2 -0
  305. data/lib/sts/niso_sts/volume_series.rb +2 -0
  306. data/lib/sts/niso_sts/word_count.rb +2 -0
  307. data/lib/sts/niso_sts/year.rb +2 -0
  308. data/lib/sts/niso_sts.rb +35 -10
  309. data/lib/sts/profiles/iso_iec/constraints.rb +43 -0
  310. data/lib/sts/profiles/iso_iec/validator.rb +73 -0
  311. data/lib/sts/profiles/iso_iec.rb +10 -0
  312. data/lib/sts/profiles.rb +7 -0
  313. data/lib/sts/tbx_iso_tml/bold.rb +2 -0
  314. data/lib/sts/tbx_iso_tml/caption.rb +3 -0
  315. data/lib/sts/tbx_iso_tml/cross_reference.rb +2 -0
  316. data/lib/sts/tbx_iso_tml/definition.rb +2 -0
  317. data/lib/sts/tbx_iso_tml/entailed_term.rb +2 -0
  318. data/lib/sts/tbx_iso_tml/example.rb +0 -2
  319. data/lib/sts/tbx_iso_tml/external_graphic.rb +2 -0
  320. data/lib/sts/tbx_iso_tml/external_source.rb +2 -0
  321. data/lib/sts/tbx_iso_tml/fn_group.rb +3 -0
  322. data/lib/sts/tbx_iso_tml/geographical_usage.rb +3 -0
  323. data/lib/sts/tbx_iso_tml/grammatical_gender.rb +2 -0
  324. data/lib/sts/tbx_iso_tml/grammatical_number.rb +2 -0
  325. data/lib/sts/tbx_iso_tml/italic.rb +2 -0
  326. data/lib/sts/tbx_iso_tml/lang_set.rb +2 -0
  327. data/lib/sts/tbx_iso_tml/mfenced.rb +2 -0
  328. data/lib/sts/tbx_iso_tml/mfrac.rb +2 -2
  329. data/lib/sts/tbx_iso_tml/mi.rb +3 -2
  330. data/lib/sts/tbx_iso_tml/mrow.rb +2 -2
  331. data/lib/sts/tbx_iso_tml/mspace.rb +2 -0
  332. data/lib/sts/tbx_iso_tml/mstyle.rb +2 -2
  333. data/lib/sts/tbx_iso_tml/msub.rb +2 -0
  334. data/lib/sts/tbx_iso_tml/msup.rb +2 -0
  335. data/lib/sts/tbx_iso_tml/munder.rb +3 -0
  336. data/lib/sts/tbx_iso_tml/munderover.rb +2 -0
  337. data/lib/sts/tbx_iso_tml/normative_authorization.rb +2 -0
  338. data/lib/sts/tbx_iso_tml/part_of_speech.rb +2 -0
  339. data/lib/sts/tbx_iso_tml/pronunciation.rb +3 -0
  340. data/lib/sts/tbx_iso_tml/see.rb +2 -0
  341. data/lib/sts/tbx_iso_tml/semantics.rb +2 -0
  342. data/lib/sts/tbx_iso_tml/source.rb +2 -0
  343. data/lib/sts/tbx_iso_tml/subject_field.rb +2 -0
  344. data/lib/sts/tbx_iso_tml/sup.rb +3 -2
  345. data/lib/sts/tbx_iso_tml/table_wrap.rb +0 -1
  346. data/lib/sts/tbx_iso_tml/table_wrap_foot.rb +2 -0
  347. data/lib/sts/tbx_iso_tml/td.rb +115 -24
  348. data/lib/sts/tbx_iso_tml/term_type.rb +2 -0
  349. data/lib/sts/tbx_iso_tml/th.rb +124 -30
  350. data/lib/sts/tbx_iso_tml/xref.rb +2 -2
  351. data/lib/sts/version.rb +1 -1
  352. data/lib/sts.rb +1 -12
  353. data/reference-docs/Guidelines for coding ed.2.1.pdf +0 -0
  354. data/reference-docs/NISO-STS-1-2-compare-1-0.pdf +0 -0
  355. data/reference-docs/NISOSTS-guidelines-v1.0.pdf +0 -0
  356. metadata +71 -14
  357. data/lib/sts/content_groups/helpers.rb +0 -27
  358. data/lib/sts/enum_values.rb +0 -17
  359. data/lib/sts/iso_sts/content_groups/highlight_elements.rb +0 -285
  360. data/lib/sts/niso_sts/content_groups/body_elements.rb +0 -50
  361. data/lib/sts/niso_sts/content_groups/citation_elements.rb +0 -74
  362. data/lib/sts/niso_sts/content_groups/emphasized_text.rb +0 -67
  363. data/lib/sts/niso_sts/content_groups/highlight_elements.rb +0 -51
  364. data/lib/sts/niso_sts/content_groups/inside_cell.rb +0 -116
  365. data/lib/sts/niso_sts/content_groups/p_elements.rb +0 -41
  366. data/lib/sts/niso_sts/content_groups/para_level.rb +0 -67
  367. data/lib/sts/niso_sts/content_groups/styled_content_elements.rb +0 -93
  368. data/lib/sts/niso_sts/content_groups/table_group_attributes.rb +0 -62
  369. data/lib/sts/niso_sts/content_groups.rb +0 -8
@@ -0,0 +1,43 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sts
4
+ module Profiles
5
+ module IsoIec
6
+ module Constraints
7
+ REQUIRED_ID_ELEMENTS = %w[
8
+ sec app fig table-wrap disp-formula ref-list ref p term-sec
9
+ graphic boxed-text list def-list non-normative-note
10
+ ].freeze
11
+
12
+ REQUIRED_FRONT_CHILDREN = %w[
13
+ std-meta
14
+ ].freeze
15
+
16
+ REQUIRED_STD_META_CHILDREN = %w[
17
+ std-ident doc-ref release-version
18
+ ].freeze
19
+
20
+ REQUIRED_STD_IDENT_CHILDREN = %w[
21
+ originator doc-type doc-number
22
+ ].freeze
23
+
24
+ ID_PATTERNS = {
25
+ "sec" => /\Asec_\d+(\.\d+)*\z/,
26
+ "app" => /\A(app|annex)_[A-Z]\z/,
27
+ "fig" => /\Afig_[A-Z\d]+\z/,
28
+ "table-wrap" => /\Atab_[A-Z\d]+\z/,
29
+ "disp-formula" => /\Afor_[A-Z\d]+\z/,
30
+ "ref" => /\Aref_\d+\z/,
31
+ "term-sec" => /\Aterm_\d+(\.\d+)*\z/,
32
+ "p" => /\Ap_[\w.]+\z/,
33
+ }.freeze
34
+
35
+ STD_ID_TYPES = %w[dated undated isbn doi].freeze
36
+
37
+ ORIGINATORS = %w[ISO IEC ISO/IEC ISO/IEEE IEC/ISO].freeze
38
+
39
+ DOCUMENT_TYPES = %w[is tr ts pas guide cor amd].freeze
40
+ end
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,73 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sts
4
+ module Profiles
5
+ module IsoIec
6
+ class Validator
7
+ def validate(document)
8
+ errors = []
9
+ errors.concat(validate_structure(document))
10
+ errors.concat(validate_metadata(document))
11
+ errors
12
+ end
13
+
14
+ private
15
+
16
+ def validate_structure(doc)
17
+ errors = []
18
+ errors << "ISO/IEC profile requires <front>" unless doc.front
19
+ errors << "ISO/IEC profile requires <body>" unless doc.body
20
+ errors
21
+ end
22
+
23
+ def validate_metadata(doc)
24
+ return [] unless doc.front
25
+
26
+ front = doc.front
27
+ meta = front.std_meta || front.std_doc_meta || front.reg_meta
28
+ meta ? validate_std_ident(meta) : []
29
+ end
30
+
31
+ def validate_std_ident(meta)
32
+ ident = meta.std_ident
33
+ return [] unless ident
34
+
35
+ errors = validate_ident_fields(ident)
36
+ errors.concat(validate_ident_values(ident))
37
+ errors
38
+ end
39
+
40
+ def validate_ident_fields(ident)
41
+ errors = []
42
+ errors << "<std-ident> is missing <originator>" \
43
+ if ident.originator.to_s.empty?
44
+ errors << "<std-ident> is missing <doc-type>" \
45
+ if ident.doc_type.to_s.empty?
46
+ errors << "<std-ident> is missing <doc-number>" \
47
+ if ident.doc_number.to_s.empty?
48
+ errors
49
+ end
50
+
51
+ def validate_ident_values(ident)
52
+ validate_originator(ident) + validate_doc_type(ident)
53
+ end
54
+
55
+ def validate_originator(ident)
56
+ val = ident.originator.to_s
57
+ return [] if val.empty? || Constraints::ORIGINATORS.include?(val)
58
+
59
+ ["<originator> '#{val}' is not " \
60
+ "a recognized ISO/IEC originator"]
61
+ end
62
+
63
+ def validate_doc_type(ident)
64
+ val = ident.doc_type.to_s
65
+ return [] if val.empty? || Constraints::DOCUMENT_TYPES.include?(val)
66
+
67
+ ["<doc-type> '#{val}' is not " \
68
+ "a recognized ISO/IEC document type"]
69
+ end
70
+ end
71
+ end
72
+ end
73
+ end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sts
4
+ module Profiles
5
+ module IsoIec
6
+ autoload :Constraints, "#{__dir__}/iso_iec/constraints"
7
+ autoload :Validator, "#{__dir__}/iso_iec/validator"
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sts
4
+ module Profiles
5
+ autoload :IsoIec, "#{__dir__}/profiles/iso_iec"
6
+ end
7
+ end
@@ -3,6 +3,7 @@
3
3
  module Sts
4
4
  module TbxIsoTml
5
5
  class Bold < Lutaml::Model::Serializable
6
+ attribute :id, :string
6
7
  attribute :value, :string, collection: true
7
8
  attribute :italic, ::Sts::TbxIsoTml::Italic, collection: true
8
9
  attribute :sub, ::Sts::NisoSts::Sub, collection: true
@@ -20,6 +21,7 @@ module Sts
20
21
 
21
22
  xml do
22
23
  element "bold"
24
+ map_attribute "id", to: :id
23
25
  mixed_content
24
26
 
25
27
  map_content to: :value
@@ -3,11 +3,14 @@
3
3
  module Sts
4
4
  module TbxIsoTml
5
5
  class Caption < Lutaml::Model::Serializable
6
+ attribute :id, :string
6
7
  attribute :p, :string
7
8
 
8
9
  xml do
9
10
  element "caption"
10
11
 
12
+ map_attribute "id", to: :id
13
+
11
14
  map_element "p", to: :p
12
15
  end
13
16
  end
@@ -3,9 +3,11 @@
3
3
  module Sts
4
4
  module TbxIsoTml
5
5
  class CrossReference < Lutaml::Model::Serializable
6
+ attribute :id, :string
6
7
  attribute :value, :string, collection: true
7
8
  xml do
8
9
  element "crossReference"
10
+ map_attribute "id", to: :id
9
11
  mixed_content
10
12
  namespace ::Sts::Namespaces::TbxNamespace
11
13
 
@@ -3,6 +3,7 @@
3
3
  module Sts
4
4
  module TbxIsoTml
5
5
  class Definition < Lutaml::Model::Serializable
6
+ attribute :id, :string
6
7
  attribute :entailed_term, ::Sts::TbxIsoTml::EntailedTerm, collection: true
7
8
  attribute :note, ::Sts::TbxIsoTml::Note
8
9
  attribute :value, :string, collection: true
@@ -21,6 +22,7 @@ module Sts
21
22
 
22
23
  xml do
23
24
  element "definition"
25
+ map_attribute "id", to: :id
24
26
  mixed_content
25
27
  namespace ::Sts::Namespaces::TbxNamespace
26
28
 
@@ -3,6 +3,7 @@
3
3
  module Sts
4
4
  module TbxIsoTml
5
5
  class EntailedTerm < Lutaml::Model::Serializable
6
+ attribute :id, :string
6
7
  attribute :target, :string
7
8
  attribute :xtarget, :string
8
9
  attribute :lang, Lutaml::Xml::W3c::XmlLangType
@@ -12,6 +13,7 @@ module Sts
12
13
  element "entailedTerm"
13
14
  namespace ::Sts::Namespaces::TbxNamespace
14
15
 
16
+ map_attribute "id", to: :id
15
17
  map_attribute "target", to: :target
16
18
  map_attribute "xtarget", to: :xtarget
17
19
  map_attribute "lang", to: :lang
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "lutaml/model"
4
-
5
3
  module Sts
6
4
  module TbxIsoTml
7
5
  class Example < Lutaml::Model::Serializable
@@ -3,12 +3,14 @@
3
3
  module Sts
4
4
  module TbxIsoTml
5
5
  class ExternalGraphic < Lutaml::Model::Serializable
6
+ attribute :id, :string
6
7
  attribute :target, :string
7
8
 
8
9
  xml do
9
10
  element "xGraphic"
10
11
  namespace ::Sts::Namespaces::TbxNamespace
11
12
 
13
+ map_attribute "id", to: :id
12
14
  map_attribute "xtarget", to: :target
13
15
  end
14
16
  end
@@ -3,6 +3,7 @@
3
3
  module Sts
4
4
  module TbxIsoTml
5
5
  class ExternalSource < Lutaml::Model::Serializable
6
+ attribute :id, :string
6
7
  attribute :target, :string
7
8
  attribute :value, :string
8
9
 
@@ -10,6 +11,7 @@ module Sts
10
11
  element "xSource"
11
12
  namespace ::Sts::Namespaces::TbxNamespace
12
13
 
14
+ map_attribute "id", to: :id
13
15
  map_attribute "xtarget", to: :target
14
16
  map_content to: :value
15
17
  end
@@ -3,11 +3,14 @@
3
3
  module Sts
4
4
  module TbxIsoTml
5
5
  class FnGroup < Lutaml::Model::Serializable
6
+ attribute :id, :string
6
7
  attribute :fn, ::Sts::TbxIsoTml::Fn, collection: true
7
8
 
8
9
  xml do
9
10
  element "fn-group"
10
11
 
12
+ map_attribute "id", to: :id
13
+
11
14
  map_element "fn", to: :fn
12
15
  end
13
16
  end
@@ -3,10 +3,13 @@
3
3
  module Sts
4
4
  module TbxIsoTml
5
5
  class GeographicalUsage < Lutaml::Model::Serializable
6
+ attribute :id, :string
6
7
  attribute :value, :string
7
8
 
8
9
  xml do
9
10
  element "geographicalUsage"
11
+
12
+ map_attribute "id", to: :id
10
13
  namespace ::Sts::Namespaces::TbxNamespace
11
14
 
12
15
  map_content to: :value
@@ -3,6 +3,7 @@
3
3
  module Sts
4
4
  module TbxIsoTml
5
5
  class GrammaticalGender < Lutaml::Model::Serializable
6
+ attribute :id, :string
6
7
  attribute :value, :string,
7
8
  values: %w[masculine feminine neuter]
8
9
 
@@ -10,6 +11,7 @@ module Sts
10
11
  element "grammaticalGender"
11
12
  namespace ::Sts::Namespaces::TbxNamespace
12
13
 
14
+ map_attribute "id", to: :id
13
15
  map_attribute "value", to: :value
14
16
  end
15
17
  end
@@ -3,6 +3,7 @@
3
3
  module Sts
4
4
  module TbxIsoTml
5
5
  class GrammaticalNumber < Lutaml::Model::Serializable
6
+ attribute :id, :string
6
7
  attribute :value, :string,
7
8
  values: %w[singular plural]
8
9
 
@@ -10,6 +11,7 @@ module Sts
10
11
  element "grammaticalNumber"
11
12
  namespace ::Sts::Namespaces::TbxNamespace
12
13
 
14
+ map_attribute "id", to: :id
13
15
  map_attribute "value", to: :value
14
16
  end
15
17
  end
@@ -3,6 +3,7 @@
3
3
  module Sts
4
4
  module TbxIsoTml
5
5
  class Italic < Lutaml::Model::Serializable
6
+ attribute :id, :string
6
7
  attribute :value, :string, collection: true
7
8
  attribute :bold, ::Sts::TbxIsoTml::Bold, collection: true
8
9
  attribute :sub, ::Sts::NisoSts::Sub, collection: true
@@ -20,6 +21,7 @@ module Sts
20
21
 
21
22
  xml do
22
23
  element "italic"
24
+ map_attribute "id", to: :id
23
25
  mixed_content
24
26
 
25
27
  map_content to: :value
@@ -3,6 +3,7 @@
3
3
  module Sts
4
4
  module TbxIsoTml
5
5
  class LangSet < Lutaml::Model::Serializable
6
+ attribute :id, :string
6
7
  attribute :lang, Lutaml::Xml::W3c::XmlLangType
7
8
  attribute :definition, ::Sts::TbxIsoTml::Definition, collection: true
8
9
  attribute :note, ::Sts::TbxIsoTml::Note, collection: true
@@ -18,6 +19,7 @@ module Sts
18
19
 
19
20
  xml do
20
21
  element "langSet"
22
+ map_attribute "id", to: :id
21
23
  mixed_content
22
24
  namespace ::Sts::Namespaces::TbxNamespace
23
25
 
@@ -3,6 +3,7 @@
3
3
  module Sts
4
4
  module TbxIsoTml
5
5
  class Mfenced < Lutaml::Model::Serializable
6
+ attribute :id, :string
6
7
  attribute :separators, :string
7
8
  attribute :open, :string
8
9
  attribute :close, :string
@@ -17,6 +18,7 @@ module Sts
17
18
 
18
19
  xml do
19
20
  element "mfenced"
21
+ map_attribute "id", to: :id
20
22
  mixed_content
21
23
  namespace ::Sts::Namespaces::MathmlNamespace
22
24
 
@@ -1,10 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "lutaml/model"
4
-
5
3
  module Sts
6
4
  module TbxIsoTml
7
5
  class Mfrac < Lutaml::Model::Serializable
6
+ attribute :id, :string
8
7
  attribute :mrow, ::Sts::TbxIsoTml::Mrow, collection: true
9
8
  attribute :mstyle, ::Sts::TbxIsoTml::Mstyle, collection: true
10
9
  attribute :bevelled, :string
@@ -14,6 +13,7 @@ module Sts
14
13
 
15
14
  xml do
16
15
  element "mfrac"
16
+ map_attribute "id", to: :id
17
17
  mixed_content
18
18
  namespace ::Sts::Namespaces::MathmlNamespace
19
19
 
@@ -1,14 +1,15 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "lutaml/model"
4
-
5
3
  module Sts
6
4
  module TbxIsoTml
7
5
  class Mi < Lutaml::Model::Serializable
6
+ attribute :id, :string
8
7
  attribute :content, :string
9
8
 
10
9
  xml do
11
10
  element "mi"
11
+
12
+ map_attribute "id", to: :id
12
13
  namespace ::Sts::Namespaces::MathmlNamespace
13
14
 
14
15
  map_content to: :content
@@ -1,10 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "lutaml/model"
4
-
5
3
  module Sts
6
4
  module TbxIsoTml
7
5
  class Mrow < Lutaml::Model::Serializable
6
+ attribute :id, :string
8
7
  attribute :content, :string, collection: true
9
8
  attribute :mo, :string, collection: true
10
9
  attribute :mi, :string, collection: true
@@ -20,6 +19,7 @@ module Sts
20
19
 
21
20
  xml do
22
21
  element "mrow"
22
+ map_attribute "id", to: :id
23
23
  mixed_content
24
24
  namespace ::Sts::Namespaces::MathmlNamespace
25
25
 
@@ -3,12 +3,14 @@
3
3
  module Sts
4
4
  module TbxIsoTml
5
5
  class Mspace < Lutaml::Model::Serializable
6
+ attribute :id, :string
6
7
  attribute :width, :string
7
8
 
8
9
  xml do
9
10
  element "mspace"
10
11
  namespace ::Sts::Namespaces::MathmlNamespace
11
12
 
13
+ map_attribute "id", to: :id
12
14
  map_attribute "width", to: :width
13
15
  end
14
16
  end
@@ -1,10 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "lutaml/model"
4
-
5
3
  module Sts
6
4
  module TbxIsoTml
7
5
  class Mstyle < Lutaml::Model::Serializable
6
+ attribute :id, :string
8
7
  attribute :mathvariant, :string
9
8
  attribute :mstyle, ::Sts::TbxIsoTml::Mstyle
10
9
  attribute :mspace, ::Sts::TbxIsoTml::Mspace, collection: true
@@ -14,6 +13,7 @@ module Sts
14
13
 
15
14
  xml do
16
15
  element "mstyle"
16
+ map_attribute "id", to: :id
17
17
  mixed_content
18
18
  namespace ::Sts::Namespaces::MathmlNamespace
19
19
 
@@ -3,6 +3,7 @@
3
3
  module Sts
4
4
  module TbxIsoTml
5
5
  class Msub < Lutaml::Model::Serializable
6
+ attribute :id, :string
6
7
  attribute :mstyle, ::Sts::TbxIsoTml::Mstyle, collection: true
7
8
  attribute :mrow, ::Sts::TbxIsoTml::Mrow
8
9
  attribute :mspace, ::Sts::TbxIsoTml::Mspace
@@ -13,6 +14,7 @@ module Sts
13
14
 
14
15
  xml do
15
16
  element "msub"
17
+ map_attribute "id", to: :id
16
18
  mixed_content
17
19
  namespace ::Sts::Namespaces::MathmlNamespace
18
20
 
@@ -3,6 +3,7 @@
3
3
  module Sts
4
4
  module TbxIsoTml
5
5
  class Msup < Lutaml::Model::Serializable
6
+ attribute :id, :string
6
7
  attribute :mstyle, ::Sts::TbxIsoTml::Mstyle
7
8
  attribute :mrow, ::Sts::TbxIsoTml::Mrow, collection: true
8
9
  attribute :mi, :string
@@ -10,6 +11,7 @@ module Sts
10
11
 
11
12
  xml do
12
13
  element "msup"
14
+ map_attribute "id", to: :id
13
15
  ordered
14
16
  namespace ::Sts::Namespaces::MathmlNamespace
15
17
 
@@ -3,10 +3,13 @@
3
3
  module Sts
4
4
  module TbxIsoTml
5
5
  class Munder < Lutaml::Model::Serializable
6
+ attribute :id, :string
6
7
  attribute :mrow, ::Sts::TbxIsoTml::Mrow, collection: true
7
8
 
8
9
  xml do
9
10
  element "munder"
11
+
12
+ map_attribute "id", to: :id
10
13
  namespace ::Sts::Namespaces::MathmlNamespace
11
14
 
12
15
  map_element "mrow", to: :mrow
@@ -3,12 +3,14 @@
3
3
  module Sts
4
4
  module TbxIsoTml
5
5
  class Munderover < Lutaml::Model::Serializable
6
+ attribute :id, :string
6
7
  attribute :mo, :string
7
8
  attribute :mi, :string
8
9
  attribute :mrow, ::Sts::TbxIsoTml::Mrow, collection: true
9
10
 
10
11
  xml do
11
12
  element "munderover"
13
+ map_attribute "id", to: :id
12
14
  mixed_content
13
15
  namespace ::Sts::Namespaces::MathmlNamespace
14
16
 
@@ -3,6 +3,7 @@
3
3
  module Sts
4
4
  module TbxIsoTml
5
5
  class NormativeAuthorization < Lutaml::Model::Serializable
6
+ attribute :id, :string
6
7
  attribute :value, :string,
7
8
  values: %w[admittedTerm preferredTerm deprecatedTerm]
8
9
 
@@ -10,6 +11,7 @@ module Sts
10
11
  element "normativeAuthorization"
11
12
  namespace ::Sts::Namespaces::TbxNamespace
12
13
 
14
+ map_attribute "id", to: :id
13
15
  map_attribute "value", to: :value
14
16
  end
15
17
  end
@@ -3,6 +3,7 @@
3
3
  module Sts
4
4
  module TbxIsoTml
5
5
  class PartOfSpeech < Lutaml::Model::Serializable
6
+ attribute :id, :string
6
7
  attribute :value, :string,
7
8
  values: %w[noun verb adj adv]
8
9
 
@@ -10,6 +11,7 @@ module Sts
10
11
  element "partOfSpeech"
11
12
  namespace ::Sts::Namespaces::TbxNamespace
12
13
 
14
+ map_attribute "id", to: :id
13
15
  map_attribute "value", to: :value
14
16
  end
15
17
  end
@@ -3,10 +3,13 @@
3
3
  module Sts
4
4
  module TbxIsoTml
5
5
  class Pronunciation < Lutaml::Model::Serializable
6
+ attribute :id, :string
6
7
  attribute :value, :string
7
8
 
8
9
  xml do
9
10
  element "pronunciation"
11
+
12
+ map_attribute "id", to: :id
10
13
  namespace ::Sts::Namespaces::TbxNamespace
11
14
 
12
15
  map_content to: :value
@@ -3,6 +3,7 @@
3
3
  module Sts
4
4
  module TbxIsoTml
5
5
  class See < Lutaml::Model::Serializable
6
+ attribute :id, :string
6
7
  attribute :script, :string
7
8
  attribute :value, :string
8
9
 
@@ -10,6 +11,7 @@ module Sts
10
11
  element "see"
11
12
  namespace ::Sts::Namespaces::TbxNamespace
12
13
 
14
+ map_attribute "id", to: :id
13
15
  map_attribute "script", to: :script
14
16
  map_content to: :value
15
17
  end
@@ -3,6 +3,7 @@
3
3
  module Sts
4
4
  module TbxIsoTml
5
5
  class Semantics < Lutaml::Model::Serializable
6
+ attribute :id, :string
6
7
  attribute :mrow, ::Sts::TbxIsoTml::Mrow, collection: true
7
8
  attribute :mo, :string
8
9
  attribute :mtext, :string
@@ -10,6 +11,7 @@ module Sts
10
11
  attribute :content, :string, collection: true
11
12
  xml do
12
13
  element "semantics"
14
+ map_attribute "id", to: :id
13
15
  mixed_content
14
16
  namespace ::Sts::Namespaces::MathmlNamespace
15
17
 
@@ -3,6 +3,7 @@
3
3
  module Sts
4
4
  module TbxIsoTml
5
5
  class Source < Lutaml::Model::Serializable
6
+ attribute :id, :string
6
7
  attribute :value, :string, collection: true
7
8
  attribute :italic, ::Sts::TbxIsoTml::Italic
8
9
  attribute :xref, ::Sts::TbxIsoTml::Xref, collection: true
@@ -10,6 +11,7 @@ module Sts
10
11
 
11
12
  xml do
12
13
  element "source"
14
+ map_attribute "id", to: :id
13
15
  mixed_content
14
16
  namespace ::Sts::Namespaces::TbxNamespace
15
17
 
@@ -3,9 +3,11 @@
3
3
  module Sts
4
4
  module TbxIsoTml
5
5
  class SubjectField < Lutaml::Model::Serializable
6
+ attribute :id, :string
6
7
  attribute :value, :string, collection: true
7
8
  xml do
8
9
  element "subjectField"
10
+ map_attribute "id", to: :id
9
11
  mixed_content
10
12
  namespace ::Sts::Namespaces::TbxNamespace
11
13
 
@@ -1,16 +1,17 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "lutaml/model"
4
-
5
3
  module Sts
6
4
  module TbxIsoTml
7
5
  class Sup < Lutaml::Model::Serializable
6
+ attribute :id, :string
8
7
  attribute :value, :string
9
8
  attribute :xref, ::Sts::TbxIsoTml::Xref
10
9
 
11
10
  xml do
12
11
  element "sup"
13
12
 
13
+ map_attribute "id", to: :id
14
+
14
15
  map_element "xref", to: :xref
15
16
  map_content to: :value
16
17
  end
@@ -15,7 +15,6 @@ module Sts
15
15
  attribute :graphic, ::Sts::NisoSts::Graphic, collection: true
16
16
  attribute :table_wrap_foot, ::Sts::TbxIsoTml::TableWrapFoot
17
17
 
18
- # TODO: This require will cause a loop when defined in header
19
18
  attribute :caption, ::Sts::NisoSts::Caption
20
19
 
21
20
  xml do