sts 0.5.3 → 0.5.5

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 (373) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop_todo.yml +25 -10
  3. data/GAPS.guidelines.iso-sts-ed2.1/01-maintenance.md +19 -0
  4. data/GAPS.guidelines.iso-sts-ed2.1/03-general.md +75 -0
  5. data/GAPS.guidelines.iso-sts-ed2.1/04-structure.md +75 -0
  6. data/GAPS.guidelines.iso-sts-ed2.1/05-content.md +63 -0
  7. data/GAPS.guidelines.iso-sts-ed2.1/06-tables.md +53 -0
  8. data/GAPS.guidelines.iso-sts-ed2.1/07-formulae.md +41 -0
  9. data/GAPS.guidelines.iso-sts-ed2.1/08-figures.md +45 -0
  10. data/GAPS.guidelines.iso-sts-ed2.1/09-terms.md +56 -0
  11. data/GAPS.guidelines.iso-sts-ed2.1/10-references.md +56 -0
  12. data/GAPS.guidelines.iso-sts-ed2.1/annex-a-multilingual.md +79 -0
  13. data/GAPS.guidelines.niso-sts-v1.0/01-introduction-scope.md +27 -0
  14. data/GAPS.guidelines.niso-sts-v1.0/02-document-structure.md +100 -0
  15. data/GAPS.guidelines.niso-sts-v1.0/03-front-matter.md +149 -0
  16. data/GAPS.guidelines.niso-sts-v1.0/04-body-content.md +209 -0
  17. data/GAPS.guidelines.niso-sts-v1.0/05-tables-figures.md +152 -0
  18. data/GAPS.guidelines.niso-sts-v1.0/06-math-formulae.md +128 -0
  19. data/GAPS.guidelines.niso-sts-v1.0/07-references.md +113 -0
  20. data/GAPS.guidelines.niso-sts-v1.0/08-terminology.md +127 -0
  21. data/GAPS.guidelines.niso-sts-v1.0/09-metadata.md +113 -0
  22. data/GAPS.guidelines.niso-sts-v1.0/10-iso-iec-variant.md +141 -0
  23. data/GAPS.guidelines.niso-sts-v1.0/SUMMARY.md +96 -0
  24. data/GAPS.guidelines.schema-xref.md +101 -0
  25. data/Gemfile +1 -0
  26. data/TODO.sts-refactor/00-overview.md +172 -0
  27. data/TODO.sts-refactor/01-mathml-delegation.md +153 -0
  28. data/TODO.sts-refactor/02-type-resolution.md +122 -0
  29. data/TODO.sts-refactor/03-namespace-coupling.md +158 -0
  30. data/TODO.sts-refactor/04-register-versioning.md +180 -0
  31. data/TODO.sts-refactor/05-missing-elements.md +195 -0
  32. data/TODO.sts-refactor/06-missing-attributes.md +152 -0
  33. data/TODO.sts-refactor/07-incomplete-models.md +180 -0
  34. data/TODO.sts-refactor/08-isoiec-profile.md +169 -0
  35. data/TODO.sts-refactor/09-autoload-cleanup.md +88 -0
  36. data/TODO.sts-refactor/10-test-coverage.md +164 -0
  37. data/TODO.sts-refactor/11-duplicate-models.md +168 -0
  38. data/lib/sts/iso_sts/annex_type.rb +2 -0
  39. data/lib/sts/iso_sts/bold.rb +9 -9
  40. data/lib/sts/iso_sts/break.rb +3 -0
  41. data/lib/sts/iso_sts/comm_ref.rb +2 -0
  42. data/lib/sts/iso_sts/content_language.rb +22 -0
  43. data/lib/sts/iso_sts/copyright_holder.rb +4 -2
  44. data/lib/sts/iso_sts/copyright_statement.rb +4 -2
  45. data/lib/sts/iso_sts/copyright_year.rb +3 -0
  46. data/lib/sts/iso_sts/doc_ref.rb +2 -0
  47. data/lib/sts/iso_sts/document_identification.rb +2 -0
  48. data/lib/sts/iso_sts/edition.rb +2 -0
  49. data/lib/sts/iso_sts/ext_link.rb +1 -1
  50. data/lib/sts/iso_sts/front.rb +2 -0
  51. data/lib/sts/iso_sts/iso_meta.rb +2 -2
  52. data/lib/sts/iso_sts/italic.rb +9 -9
  53. data/lib/sts/iso_sts/label.rb +7 -5
  54. data/lib/sts/iso_sts/language.rb +2 -0
  55. data/lib/sts/iso_sts/meta_date.rb +20 -0
  56. data/lib/sts/iso_sts/mixed_citation.rb +5 -5
  57. data/lib/sts/iso_sts/monospace.rb +26 -0
  58. data/lib/sts/iso_sts/named_content.rb +44 -0
  59. data/lib/sts/iso_sts/nat_meta.rb +4 -4
  60. data/lib/sts/iso_sts/page_count.rb +2 -0
  61. data/lib/sts/iso_sts/paragraph.rb +8 -8
  62. data/lib/sts/iso_sts/permissions.rb +2 -0
  63. data/lib/sts/iso_sts/preformat.rb +3 -3
  64. data/lib/sts/iso_sts/reg_meta.rb +4 -4
  65. data/lib/sts/iso_sts/release_date.rb +2 -0
  66. data/lib/sts/iso_sts/sc.rb +26 -0
  67. data/lib/sts/iso_sts/sec.rb +2 -2
  68. data/lib/sts/iso_sts/secretariat.rb +2 -0
  69. data/lib/sts/iso_sts/standard_cross_reference.rb +4 -2
  70. data/lib/sts/iso_sts/standard_identification.rb +2 -0
  71. data/lib/sts/iso_sts/standard_ref.rb +16 -0
  72. data/lib/sts/iso_sts/std.rb +3 -1
  73. data/lib/sts/iso_sts/std_ref.rb +2 -0
  74. data/lib/sts/iso_sts/strike.rb +26 -0
  75. data/lib/sts/iso_sts/styled_content.rb +11 -9
  76. data/lib/sts/iso_sts/sub.rb +2 -0
  77. data/lib/sts/iso_sts/sup.rb +2 -0
  78. data/lib/sts/iso_sts/table_wrap_foot.rb +2 -0
  79. data/lib/sts/iso_sts/td.rb +7 -7
  80. data/lib/sts/iso_sts/term.rb +5 -5
  81. data/lib/sts/iso_sts/th.rb +7 -7
  82. data/lib/sts/iso_sts/title.rb +6 -4
  83. data/lib/sts/iso_sts/title_compl.rb +2 -0
  84. data/lib/sts/iso_sts/title_full.rb +2 -0
  85. data/lib/sts/iso_sts/title_intro.rb +2 -0
  86. data/lib/sts/iso_sts/title_main.rb +2 -0
  87. data/lib/sts/iso_sts/underline.rb +26 -0
  88. data/lib/sts/iso_sts/uri.rb +32 -0
  89. data/lib/sts/iso_sts/xref.rb +3 -3
  90. data/lib/sts/iso_sts.rb +9 -0
  91. data/lib/sts/mathml.rb +12 -58
  92. data/lib/sts/namespaces.rb +2 -0
  93. data/lib/sts/niso_sts/abstract.rb +2 -0
  94. data/lib/sts/niso_sts/access_date.rb +2 -0
  95. data/lib/sts/niso_sts/accrediting_organization.rb +2 -0
  96. data/lib/sts/niso_sts/addr_line.rb +2 -0
  97. data/lib/sts/niso_sts/address.rb +2 -0
  98. data/lib/sts/niso_sts/aff_alternatives.rb +3 -0
  99. data/lib/sts/niso_sts/alt_text.rb +2 -0
  100. data/lib/sts/niso_sts/alt_title.rb +2 -0
  101. data/lib/sts/niso_sts/alternatives.rb +2 -0
  102. data/lib/sts/niso_sts/anonymous.rb +3 -0
  103. data/lib/sts/niso_sts/app.rb +2 -0
  104. data/lib/sts/niso_sts/article_title.rb +2 -0
  105. data/lib/sts/niso_sts/attrib.rb +2 -0
  106. data/lib/sts/niso_sts/authorization.rb +2 -0
  107. data/lib/sts/niso_sts/award_group.rb +22 -4
  108. data/lib/sts/niso_sts/award_id.rb +6 -0
  109. data/lib/sts/niso_sts/back.rb +22 -4
  110. data/lib/sts/niso_sts/body.rb +2 -0
  111. data/lib/sts/niso_sts/boxed_text.rb +38 -4
  112. data/lib/sts/niso_sts/break.rb +3 -0
  113. data/lib/sts/niso_sts/caption.rb +8 -0
  114. data/lib/sts/niso_sts/chapter_title.rb +2 -0
  115. data/lib/sts/niso_sts/chem_struct.rb +2 -0
  116. data/lib/sts/niso_sts/citation_alternatives.rb +2 -0
  117. data/lib/sts/niso_sts/city.rb +2 -0
  118. data/lib/sts/niso_sts/code.rb +111 -0
  119. data/lib/sts/niso_sts/collab_alternatives.rb +3 -0
  120. data/lib/sts/niso_sts/comm_ref_group.rb +3 -0
  121. data/lib/sts/niso_sts/comment.rb +2 -0
  122. data/lib/sts/niso_sts/compound_subject.rb +29 -0
  123. data/lib/sts/niso_sts/compound_subject_part.rb +39 -0
  124. data/lib/sts/niso_sts/conf_acronym.rb +2 -0
  125. data/lib/sts/niso_sts/conf_date.rb +2 -0
  126. data/lib/sts/niso_sts/conf_loc.rb +2 -0
  127. data/lib/sts/niso_sts/conf_name.rb +2 -0
  128. data/lib/sts/niso_sts/conf_num.rb +2 -0
  129. data/lib/sts/niso_sts/conf_sponsor.rb +2 -0
  130. data/lib/sts/niso_sts/conf_theme.rb +2 -0
  131. data/lib/sts/niso_sts/conference.rb +2 -0
  132. data/lib/sts/niso_sts/content_language.rb +2 -0
  133. data/lib/sts/niso_sts/contrib_id.rb +2 -0
  134. data/lib/sts/niso_sts/copyright_holder.rb +2 -0
  135. data/lib/sts/niso_sts/copyright_statement.rb +2 -0
  136. data/lib/sts/niso_sts/copyright_year.rb +2 -0
  137. data/lib/sts/niso_sts/country.rb +2 -0
  138. data/lib/sts/niso_sts/counts.rb +2 -0
  139. data/lib/sts/niso_sts/custom_meta.rb +2 -0
  140. data/lib/sts/niso_sts/custom_meta_group.rb +3 -0
  141. data/lib/sts/niso_sts/data_title.rb +29 -0
  142. data/lib/sts/niso_sts/date.rb +2 -0
  143. data/lib/sts/niso_sts/date_in_citation.rb +2 -0
  144. data/lib/sts/niso_sts/day.rb +2 -0
  145. data/lib/sts/niso_sts/def.rb +3 -0
  146. data/lib/sts/niso_sts/def_head.rb +18 -0
  147. data/lib/sts/niso_sts/def_item.rb +4 -0
  148. data/lib/sts/niso_sts/def_list.rb +21 -4
  149. data/lib/sts/niso_sts/degrees.rb +2 -0
  150. data/lib/sts/niso_sts/disp_formula_group.rb +0 -2
  151. data/lib/sts/niso_sts/disp_quote.rb +2 -0
  152. data/lib/sts/niso_sts/display_formula.rb +37 -4
  153. data/lib/sts/niso_sts/doc_number.rb +2 -0
  154. data/lib/sts/niso_sts/doc_type.rb +2 -0
  155. data/lib/sts/niso_sts/editing_instruction.rb +8 -2
  156. data/lib/sts/niso_sts/edition.rb +2 -0
  157. data/lib/sts/niso_sts/elocation_id.rb +2 -0
  158. data/lib/sts/niso_sts/email.rb +2 -0
  159. data/lib/sts/niso_sts/equation_count.rb +2 -0
  160. data/lib/sts/niso_sts/era.rb +2 -0
  161. data/lib/sts/niso_sts/ext_link.rb +16 -0
  162. data/lib/sts/niso_sts/fax.rb +2 -0
  163. data/lib/sts/niso_sts/fig_count.rb +2 -0
  164. data/lib/sts/niso_sts/floats_group.rb +2 -0
  165. data/lib/sts/niso_sts/fn_group.rb +3 -0
  166. data/lib/sts/niso_sts/fpage.rb +2 -0
  167. data/lib/sts/niso_sts/front.rb +15 -0
  168. data/lib/sts/niso_sts/funding_group.rb +2 -1
  169. data/lib/sts/niso_sts/funding_source.rb +2 -0
  170. data/lib/sts/niso_sts/given_names.rb +2 -0
  171. data/lib/sts/niso_sts/gov.rb +2 -0
  172. data/lib/sts/niso_sts/graphic.rb +4 -0
  173. data/lib/sts/niso_sts/hr.rb +3 -0
  174. data/lib/sts/niso_sts/ics.rb +3 -0
  175. data/lib/sts/niso_sts/ics_desc.rb +2 -0
  176. data/lib/sts/niso_sts/ics_wrap.rb +9 -0
  177. data/lib/sts/niso_sts/index.rb +32 -0
  178. data/lib/sts/niso_sts/index_div.rb +30 -0
  179. data/lib/sts/niso_sts/index_entry.rb +32 -0
  180. data/lib/sts/niso_sts/index_title_group.rb +22 -0
  181. data/lib/sts/niso_sts/inline_formula.rb +29 -4
  182. data/lib/sts/niso_sts/inline_media.rb +50 -0
  183. data/lib/sts/niso_sts/institution.rb +2 -0
  184. data/lib/sts/niso_sts/institution_id.rb +2 -0
  185. data/lib/sts/niso_sts/institution_wrap.rb +2 -0
  186. data/lib/sts/niso_sts/intro.rb +2 -0
  187. data/lib/sts/niso_sts/is_proof.rb +2 -0
  188. data/lib/sts/niso_sts/isbn.rb +2 -0
  189. data/lib/sts/niso_sts/issn.rb +2 -0
  190. data/lib/sts/niso_sts/issn_l.rb +2 -0
  191. data/lib/sts/niso_sts/issue.rb +2 -0
  192. data/lib/sts/niso_sts/kwd_group.rb +8 -0
  193. data/lib/sts/niso_sts/label.rb +4 -0
  194. data/lib/sts/niso_sts/legend.rb +39 -0
  195. data/lib/sts/niso_sts/license.rb +2 -0
  196. data/lib/sts/niso_sts/license_p.rb +2 -0
  197. data/lib/sts/niso_sts/list.rb +2 -0
  198. data/lib/sts/niso_sts/list_item.rb +2 -2
  199. data/lib/sts/niso_sts/long_desc.rb +2 -0
  200. data/lib/sts/niso_sts/lpage.rb +2 -0
  201. data/lib/sts/niso_sts/main.rb +2 -0
  202. data/lib/sts/niso_sts/meta_date.rb +2 -0
  203. data/lib/sts/niso_sts/metadata_std.rb +1 -3
  204. data/lib/sts/niso_sts/mml_content.rb +0 -2
  205. data/lib/sts/niso_sts/month.rb +2 -0
  206. data/lib/sts/niso_sts/name.rb +2 -0
  207. data/lib/sts/niso_sts/name_alternatives.rb +5 -0
  208. data/lib/sts/niso_sts/named_content.rb +51 -1
  209. data/lib/sts/niso_sts/nat_meta.rb +4 -2
  210. data/lib/sts/niso_sts/nested_kwd.rb +2 -0
  211. data/lib/sts/niso_sts/non_normative_note.rb +2 -0
  212. data/lib/sts/niso_sts/normative_example.rb +6 -1
  213. data/lib/sts/niso_sts/normative_note.rb +8 -1
  214. data/lib/sts/niso_sts/object_id.rb +4 -0
  215. data/lib/sts/niso_sts/on_behalf_of.rb +2 -0
  216. data/lib/sts/niso_sts/open_access.rb +2 -0
  217. data/lib/sts/niso_sts/originator.rb +2 -0
  218. data/lib/sts/niso_sts/page_count.rb +2 -0
  219. data/lib/sts/niso_sts/page_range.rb +2 -0
  220. data/lib/sts/niso_sts/paragraph.rb +2 -0
  221. data/lib/sts/niso_sts/part_number.rb +2 -0
  222. data/lib/sts/niso_sts/part_of_speech.rb +2 -0
  223. data/lib/sts/niso_sts/patent.rb +2 -0
  224. data/lib/sts/niso_sts/permissions.rb +6 -1
  225. data/lib/sts/niso_sts/phone.rb +2 -0
  226. data/lib/sts/niso_sts/postal_code.rb +2 -0
  227. data/lib/sts/niso_sts/prefix.rb +2 -0
  228. data/lib/sts/niso_sts/price.rb +2 -0
  229. data/lib/sts/niso_sts/principal_award_recipient.rb +2 -0
  230. data/lib/sts/niso_sts/principal_investigator.rb +2 -0
  231. data/lib/sts/niso_sts/private_char.rb +2 -0
  232. data/lib/sts/niso_sts/processing_meta.rb +54 -0
  233. data/lib/sts/niso_sts/product.rb +2 -0
  234. data/lib/sts/niso_sts/proj_id.rb +2 -0
  235. data/lib/sts/niso_sts/pub_date.rb +2 -0
  236. data/lib/sts/niso_sts/pub_id.rb +2 -0
  237. data/lib/sts/niso_sts/publisher.rb +2 -0
  238. data/lib/sts/niso_sts/publisher_loc.rb +2 -0
  239. data/lib/sts/niso_sts/publisher_name.rb +2 -0
  240. data/lib/sts/niso_sts/ref_count.rb +2 -0
  241. data/lib/sts/niso_sts/reference_standard.rb +3 -3
  242. data/lib/sts/niso_sts/reg_meta.rb +4 -2
  243. data/lib/sts/niso_sts/related_term.rb +2 -0
  244. data/lib/sts/niso_sts/release_date.rb +2 -0
  245. data/lib/sts/niso_sts/release_version.rb +2 -0
  246. data/lib/sts/niso_sts/release_version_id.rb +2 -0
  247. data/lib/sts/niso_sts/role.rb +35 -0
  248. data/lib/sts/niso_sts/sdo.rb +2 -0
  249. data/lib/sts/niso_sts/season.rb +2 -0
  250. data/lib/sts/niso_sts/sec_meta.rb +26 -0
  251. data/lib/sts/niso_sts/secretariat.rb +2 -0
  252. data/lib/sts/niso_sts/section.rb +8 -0
  253. data/lib/sts/niso_sts/see_also_entry.rb +26 -0
  254. data/lib/sts/niso_sts/see_entry.rb +26 -0
  255. data/lib/sts/niso_sts/self_uri.rb +2 -0
  256. data/lib/sts/niso_sts/series.rb +2 -0
  257. data/lib/sts/niso_sts/series_text.rb +2 -0
  258. data/lib/sts/niso_sts/series_title.rb +2 -0
  259. data/lib/sts/niso_sts/sig.rb +2 -0
  260. data/lib/sts/niso_sts/size.rb +2 -0
  261. data/lib/sts/niso_sts/source.rb +29 -0
  262. data/lib/sts/niso_sts/speaker.rb +2 -0
  263. data/lib/sts/niso_sts/standard_identification.rb +3 -1
  264. data/lib/sts/niso_sts/state.rb +2 -0
  265. data/lib/sts/niso_sts/std_doc_meta.rb +49 -11
  266. data/lib/sts/niso_sts/std_id.rb +2 -0
  267. data/lib/sts/niso_sts/std_id_group.rb +3 -0
  268. data/lib/sts/niso_sts/std_org.rb +2 -2
  269. data/lib/sts/niso_sts/std_org_abbrev.rb +2 -0
  270. data/lib/sts/niso_sts/std_org_group.rb +3 -0
  271. data/lib/sts/niso_sts/std_org_name.rb +2 -0
  272. data/lib/sts/niso_sts/std_organization.rb +2 -0
  273. data/lib/sts/niso_sts/string_conf.rb +2 -0
  274. data/lib/sts/niso_sts/string_date.rb +2 -0
  275. data/lib/sts/niso_sts/string_name.rb +2 -0
  276. data/lib/sts/niso_sts/styled_content.rb +2 -0
  277. data/lib/sts/niso_sts/subj_group.rb +11 -1
  278. data/lib/sts/niso_sts/subtitle.rb +2 -0
  279. data/lib/sts/niso_sts/suffix.rb +2 -0
  280. data/lib/sts/niso_sts/suppl_number.rb +2 -0
  281. data/lib/sts/niso_sts/suppl_type.rb +2 -0
  282. data/lib/sts/niso_sts/suppl_version.rb +2 -0
  283. data/lib/sts/niso_sts/surname.rb +2 -0
  284. data/lib/sts/niso_sts/table_count.rb +2 -0
  285. data/lib/sts/niso_sts/table_wrap_group.rb +32 -0
  286. data/lib/sts/niso_sts/term_display.rb +22 -1
  287. data/lib/sts/niso_sts/term_display_string.rb +22 -0
  288. data/lib/sts/niso_sts/term_head.rb +2 -0
  289. data/lib/sts/niso_sts/term_source.rb +2 -0
  290. data/lib/sts/niso_sts/tex_math.rb +2 -0
  291. data/lib/sts/niso_sts/textual_form.rb +2 -0
  292. data/lib/sts/niso_sts/time_stamp.rb +2 -0
  293. data/lib/sts/niso_sts/title.rb +6 -0
  294. data/lib/sts/niso_sts/title_wrap.rb +2 -0
  295. data/lib/sts/niso_sts/toc.rb +32 -0
  296. data/lib/sts/niso_sts/toc_div.rb +30 -0
  297. data/lib/sts/niso_sts/toc_entry.rb +30 -0
  298. data/lib/sts/niso_sts/toc_title_group.rb +22 -0
  299. data/lib/sts/niso_sts/trans_source.rb +2 -0
  300. data/lib/sts/niso_sts/trans_title.rb +2 -0
  301. data/lib/sts/niso_sts/trans_title_group.rb +3 -0
  302. data/lib/sts/niso_sts/uri.rb +2 -0
  303. data/lib/sts/niso_sts/urn.rb +2 -0
  304. data/lib/sts/niso_sts/verse_line.rb +2 -0
  305. data/lib/sts/niso_sts/version.rb +2 -0
  306. data/lib/sts/niso_sts/volume.rb +2 -0
  307. data/lib/sts/niso_sts/volume_id.rb +2 -0
  308. data/lib/sts/niso_sts/volume_issue_group.rb +2 -0
  309. data/lib/sts/niso_sts/volume_series.rb +2 -0
  310. data/lib/sts/niso_sts/word_count.rb +2 -0
  311. data/lib/sts/niso_sts/year.rb +2 -0
  312. data/lib/sts/niso_sts.rb +35 -10
  313. data/lib/sts/profiles/iso_iec/constraints.rb +43 -0
  314. data/lib/sts/profiles/iso_iec/validator.rb +73 -0
  315. data/lib/sts/profiles/iso_iec.rb +10 -0
  316. data/lib/sts/profiles.rb +7 -0
  317. data/lib/sts/tbx_iso_tml/bold.rb +2 -0
  318. data/lib/sts/tbx_iso_tml/caption.rb +3 -0
  319. data/lib/sts/tbx_iso_tml/cross_reference.rb +2 -0
  320. data/lib/sts/tbx_iso_tml/definition.rb +2 -0
  321. data/lib/sts/tbx_iso_tml/entailed_term.rb +2 -0
  322. data/lib/sts/tbx_iso_tml/example.rb +0 -2
  323. data/lib/sts/tbx_iso_tml/external_graphic.rb +2 -0
  324. data/lib/sts/tbx_iso_tml/external_source.rb +2 -0
  325. data/lib/sts/tbx_iso_tml/fn_group.rb +3 -0
  326. data/lib/sts/tbx_iso_tml/geographical_usage.rb +3 -0
  327. data/lib/sts/tbx_iso_tml/grammatical_gender.rb +2 -0
  328. data/lib/sts/tbx_iso_tml/grammatical_number.rb +2 -0
  329. data/lib/sts/tbx_iso_tml/italic.rb +2 -0
  330. data/lib/sts/tbx_iso_tml/lang_set.rb +2 -0
  331. data/lib/sts/tbx_iso_tml/mfenced.rb +2 -0
  332. data/lib/sts/tbx_iso_tml/mfrac.rb +2 -2
  333. data/lib/sts/tbx_iso_tml/mi.rb +3 -2
  334. data/lib/sts/tbx_iso_tml/mrow.rb +2 -2
  335. data/lib/sts/tbx_iso_tml/mspace.rb +2 -0
  336. data/lib/sts/tbx_iso_tml/mstyle.rb +2 -2
  337. data/lib/sts/tbx_iso_tml/msub.rb +2 -0
  338. data/lib/sts/tbx_iso_tml/msup.rb +2 -0
  339. data/lib/sts/tbx_iso_tml/munder.rb +3 -0
  340. data/lib/sts/tbx_iso_tml/munderover.rb +2 -0
  341. data/lib/sts/tbx_iso_tml/normative_authorization.rb +2 -0
  342. data/lib/sts/tbx_iso_tml/part_of_speech.rb +2 -0
  343. data/lib/sts/tbx_iso_tml/pronunciation.rb +3 -0
  344. data/lib/sts/tbx_iso_tml/see.rb +2 -0
  345. data/lib/sts/tbx_iso_tml/semantics.rb +2 -0
  346. data/lib/sts/tbx_iso_tml/source.rb +2 -0
  347. data/lib/sts/tbx_iso_tml/subject_field.rb +2 -0
  348. data/lib/sts/tbx_iso_tml/sup.rb +3 -2
  349. data/lib/sts/tbx_iso_tml/table_wrap.rb +0 -1
  350. data/lib/sts/tbx_iso_tml/table_wrap_foot.rb +2 -0
  351. data/lib/sts/tbx_iso_tml/td.rb +115 -24
  352. data/lib/sts/tbx_iso_tml/term_type.rb +2 -0
  353. data/lib/sts/tbx_iso_tml/th.rb +124 -30
  354. data/lib/sts/tbx_iso_tml/xref.rb +2 -2
  355. data/lib/sts/version.rb +1 -1
  356. data/lib/sts.rb +1 -10
  357. data/reference-docs/Guidelines for coding ed.2.1.pdf +0 -0
  358. data/reference-docs/NISO-STS-1-2-compare-1-0.pdf +0 -0
  359. data/reference-docs/NISOSTS-guidelines-v1.0.pdf +0 -0
  360. metadata +72 -15
  361. data/lib/sts/content_groups/helpers.rb +0 -27
  362. data/lib/sts/enum_values.rb +0 -17
  363. data/lib/sts/iso_sts/content_groups/highlight_elements.rb +0 -285
  364. data/lib/sts/niso_sts/content_groups/body_elements.rb +0 -50
  365. data/lib/sts/niso_sts/content_groups/citation_elements.rb +0 -74
  366. data/lib/sts/niso_sts/content_groups/emphasized_text.rb +0 -67
  367. data/lib/sts/niso_sts/content_groups/highlight_elements.rb +0 -51
  368. data/lib/sts/niso_sts/content_groups/inside_cell.rb +0 -116
  369. data/lib/sts/niso_sts/content_groups/p_elements.rb +0 -41
  370. data/lib/sts/niso_sts/content_groups/para_level.rb +0 -67
  371. data/lib/sts/niso_sts/content_groups/styled_content_elements.rb +0 -93
  372. data/lib/sts/niso_sts/content_groups/table_group_attributes.rb +0 -62
  373. data/lib/sts/niso_sts/content_groups.rb +0 -8
@@ -0,0 +1,164 @@
1
+ # 10: Test Coverage Improvements
2
+
3
+ **Priority**: ONGOING
4
+ **Category**: Quality
5
+ **Estimated Effort**: Ongoing
6
+ **Files Affected**: `spec/`
7
+
8
+ ## Current Test Structure
9
+
10
+ ```
11
+ spec/
12
+ ├── spec_helper.rb
13
+ ├── sts_spec.rb # Core parsing/serialization tests
14
+ ├── round_trip/
15
+ │ └── reference_docs_spec.rb # Round-trip tests with ISO doc fixtures
16
+ └── fixtures/
17
+ └── *.xml # Test XML documents
18
+ ```
19
+
20
+ ## Test Categories Needed
21
+
22
+ ### 1. Unit Tests Per Element
23
+
24
+ Each model class should have unit tests covering:
25
+
26
+ ```ruby
27
+ # spec/sts/niso_sts/paragraph_spec.rb
28
+ RSpec.describe Sts::NisoSts::Paragraph do
29
+ describe "XML parsing" do
30
+ it "parses <p> with text content"
31
+ it "parses <p> with mixed content"
32
+ it "parses <p> with @id attribute"
33
+ it "parses <p> with @content-type attribute"
34
+ it "parses <p> with @xml:lang attribute"
35
+ end
36
+
37
+ describe "XML serialization" do
38
+ it "round-trips text content"
39
+ it "round-trips mixed content"
40
+ it "round-trips all attributes"
41
+ end
42
+ end
43
+ ```
44
+
45
+ Priority elements for unit tests:
46
+ - `Standard`, `Front`, `Body`, `Back` — structural
47
+ - `Section`, `Paragraph` — high frequency
48
+ - `Fig`, `TableWrap`, `Graphic` — media
49
+ - `Ref`, `RefList`, `Xref` — references
50
+ - `TermSec`, `TermDisplay` — terminology
51
+ - `Permissions` — after model fix
52
+
53
+ ### 2. Schema Validation Tests
54
+
55
+ ```ruby
56
+ # spec/schema_validation_spec.rb
57
+ RSpec.describe "Schema compliance" do
58
+ context "NISO STS 1.0" do
59
+ it "validates against NISO STS Extended XSD"
60
+ it "validates against NISO STS Interchange XSD"
61
+ end
62
+
63
+ context "ISOSTS v1.1" do
64
+ it "validates against ISOSTS DTD"
65
+ end
66
+
67
+ context "NISO STS 1.2" do
68
+ it "validates against NISO STS 1.2 XSD"
69
+ end
70
+ end
71
+ ```
72
+
73
+ ### 3. Version-Specific Tests (After TODO 04)
74
+
75
+ ```ruby
76
+ # spec/versioning/register_spec.rb
77
+ RSpec.describe "Schema versioning" do
78
+ it "loads ISOSTS v1.1 register independently"
79
+ it "loads NISO STS 1.0 register independently"
80
+ it "loads NISO STS 1.2 register independently"
81
+ it "prevents cross-register contamination"
82
+ end
83
+ ```
84
+
85
+ ### 4. Profile Validation Tests (After TODO 08)
86
+
87
+ ```ruby
88
+ # spec/profiles/iso_iec_validator_spec.rb
89
+ RSpec.describe Sts::Profiles::IsoIec::Validator do
90
+ it "rejects document without <front>"
91
+ it "accepts valid ISO document"
92
+ it "validates ID scheme conventions"
93
+ it "validates metadata requirements"
94
+ end
95
+ ```
96
+
97
+ ### 5. Anti-Pattern Regression Tests
98
+
99
+ ```ruby
100
+ # spec/anti_patterns_spec.rb
101
+ RSpec.describe "No anti-patterns in codebase" do
102
+ it "contains no method_missing definitions"
103
+ it "contains no respond_to_missing definitions"
104
+ it "contains no send calls"
105
+ it "contains no Object.const_get calls"
106
+ end
107
+ ```
108
+
109
+ ### 6. Performance Tests
110
+
111
+ ```ruby
112
+ # spec/performance_spec.rb
113
+ RSpec.describe "Performance" do
114
+ it "parses large document within time budget"
115
+ it "serialization doesn't regress from baseline"
116
+ end
117
+ ```
118
+
119
+ ## Test Fixtures Needed
120
+
121
+ | Fixture | Purpose | Priority |
122
+ |---------|---------|----------|
123
+ | Simple standard (minimal) | Basic round-trip | HIGH |
124
+ | IEC standard with license | Permissions testing | HIGH |
125
+ | Document with index | Index hierarchy | HIGH |
126
+ | Document with TOC | TOC hierarchy | HIGH |
127
+ | Document with code blocks | Code element testing | HIGH |
128
+ | Document with MathML | Formula testing | MEDIUM |
129
+ | Document with TBX | Terminology testing | MEDIUM |
130
+ | Document with OASIS tables | CALS table testing | LOW |
131
+ | Multi-language document | xml:lang testing | MEDIUM |
132
+ | Amendment/corrigendum | Amendment structure | MEDIUM |
133
+ | National adoption | std-doc-meta testing | LOW |
134
+
135
+ ## Coverage Metrics
136
+
137
+ Track coverage with:
138
+ ```bash
139
+ COVERAGE=true bundle exec rspec
140
+ ```
141
+
142
+ Target: >80% line coverage for `lib/sts/`
143
+
144
+ ## Dependencies
145
+
146
+ All other TODOs feed into this — add tests as features are implemented.
147
+
148
+ ## TODO Checklist
149
+
150
+ - [x] Add anti-pattern regression test
151
+ - [x] Add unit tests for structural elements (Standard, Front, Body, Back)
152
+ - [x] Add unit tests for Section and Paragraph
153
+ - [x] Add unit tests for Fig, TableWrap, Graphic
154
+ - [x] Add unit tests for Ref, RefList, Xref
155
+ - [x] Add unit tests for TermSec, TermDisplay
156
+ - [x] Add unit tests for Permissions (after model fix)
157
+ - [x] Add unit tests for new elements (ProcessingMeta, Code, Legend, InlineMedia, TableWrapGroup, DefHead)
158
+ - [x] Add unit tests for attribute additions (Title, Caption, Label, ExtLink, AwardId, DefItem)
159
+ - [x] Add unit tests for Index and TOC hierarchy elements
160
+ - [ ] Add schema validation tests
161
+ - [ ] Add versioning tests (after TODO 04)
162
+ - [x] Add profile validation tests (after TODO 08)
163
+ - [x] Set up coverage tracking
164
+ - [x] Achieve >80% line coverage target (achieved 99.8%)
@@ -0,0 +1,168 @@
1
+ # 11: Duplicate Model Resolution
2
+
3
+ **Priority**: MEDIUM
4
+ **Category**: Architecture
5
+ **Estimated Effort**: High
6
+ **Files Affected**: `lib/sts/iso_sts/`, `lib/sts/niso_sts/`
7
+
8
+ ## Problem
9
+
10
+ Many model classes exist in both `Sts::IsoSts` and `Sts::NisoSts` with the same XML element name but potentially different attributes. This creates:
11
+
12
+ 1. **Maintenance burden**: Changes must be duplicated
13
+ 2. **Divergence risk**: Models drift apart over time
14
+ 3. **Ambiguity**: Which class should be used?
15
+
16
+ ## Identified Duplicates
17
+
18
+ ### Confirmed Different (Must Stay Separate)
19
+
20
+ These elements have genuinely different attribute sets between ISOSTS and NISO STS:
21
+
22
+ | Element | IsoSts Version | NisoSts Version | Difference |
23
+ |---------|---------------|----------------|------------|
24
+ | `<p>` | Paragraph | Paragraph | ISOSTS: 4 attrs; NISO STS: 7 attrs (adds `@originator`, `@style-type`, `@xml:base`) |
25
+ | `<standard>` | Standard | Standard | ISOSTS: DTD-based; NISO STS: XSD-based |
26
+
27
+ ### Potentially Identical (Audit Needed)
28
+
29
+ These elements likely have the same model but are duplicated:
30
+
31
+ | Element | IsoSts File | NisoSts File |
32
+ |---------|-------------|--------------|
33
+ | `<bold>` | Bold | Bold |
34
+ | `<italic>` | Italic | Italic |
35
+ | `<sub>` | Sub | Sub |
36
+ | `<sup>` | Sup | Sup |
37
+ | `<underline>` | Underline | Underline |
38
+ | `<monospace>` | Monospace | Monospace |
39
+ | `<styled-content>` | StyledContent | StyledContent |
40
+ | `<named-content>` | NamedContent | NamedContent |
41
+ | `<xref>` | Xref | Xref |
42
+ | `<ext-link>` | ExtLink | ExtLink |
43
+ | `<break>` | Break | Break |
44
+ | `<list>` | List | List |
45
+ | `<list-item>` | ListItem | ListItem |
46
+ | `<def-list>` | DefList | DefList |
47
+ | `<def-item>` | DefItem | DefItem |
48
+ | `<table>` | Table | Table |
49
+ | `<tr>` | Tr | Tr |
50
+ | `<td>` | Td | Td |
51
+ | `<th>` | Th | Th |
52
+ | `<fig>` | Fig | Fig |
53
+ | `<graphic>` | Graphic | Graphic |
54
+ | `<caption>` | Caption | Caption |
55
+ | `<title>` | Title | Title |
56
+ | `<label>` | Label | Label |
57
+ | `<disp-formula>` | DispFormula | DispFormula |
58
+ | `<inline-formula>` | InlineFormula | InlineFormula |
59
+
60
+ ## Resolution Strategy
61
+
62
+ ### For Genuinely Different Models
63
+
64
+ Keep separate but share a base class:
65
+
66
+ ```ruby
67
+ # lib/sts/base/paragraph.rb
68
+ module Sts
69
+ module Base
70
+ class Paragraph < Lutaml::Model::Serializable
71
+ # Shared attributes common to ISOSTS and NISO STS
72
+ attribute :id, :string
73
+ attribute :content_type, :string
74
+ attribute :specific_use, :string
75
+
76
+ xml do
77
+ element "p"
78
+ mixed_content
79
+ map_attribute "id", to: :id
80
+ map_attribute "content-type", to: :content_type
81
+ map_attribute "specific-use", to: :specific_use
82
+ # Children injected by content groups
83
+ end
84
+ end
85
+ end
86
+ end
87
+
88
+ # lib/sts/iso_sts/paragraph.rb
89
+ module Sts
90
+ module IsoSts
91
+ class Paragraph < ::Sts::Base::Paragraph
92
+ # ISOSTS-specific: only 4 attrs
93
+ attribute :xml_lang, :string
94
+
95
+ xml do
96
+ root "p"
97
+ map_attribute "xml:lang", to: :xml_lang
98
+ end
99
+ end
100
+ end
101
+ end
102
+
103
+ # lib/sts/niso_sts/paragraph.rb
104
+ module Sts
105
+ module NisoSts
106
+ class Paragraph < ::Sts::Base::Paragraph
107
+ # NISO STS Extended: 7 attrs
108
+ attribute :xml_lang, :string
109
+ attribute :xml_base, :string
110
+ attribute :originator, :string
111
+ attribute :style_type, :string
112
+
113
+ xml do
114
+ root "p"
115
+ map_attribute "xml:lang", to: :xml_lang
116
+ map_attribute "xml:base", to: :xml_base
117
+ map_attribute "originator", to: :originator
118
+ map_attribute "style-type", to: :style_type
119
+ end
120
+ end
121
+ end
122
+ end
123
+ ```
124
+
125
+ ### For Identical Models
126
+
127
+ Use the base class directly — no namespace-specific subclass needed:
128
+
129
+ ```ruby
130
+ # Both IsoSts and NisoSts can use Sts::Base::Bold
131
+ # Remove Sts::IsoSts::Bold and Sts::NisoSts::Bold
132
+ # Add alias in each namespace if needed for API compatibility
133
+ module Sts
134
+ module IsoSts
135
+ Bold = ::Sts::Base::Bold
136
+ end
137
+ module NisoSts
138
+ Bold = ::Sts::Base::Bold
139
+ end
140
+ end
141
+ ```
142
+
143
+ ## Audit Process
144
+
145
+ For each duplicate pair:
146
+
147
+ 1. Read ISOSTS DTD definition of the element
148
+ 2. Read NISO STS XSD definition of the element
149
+ 3. Compare attributes and children
150
+ 4. Categorize: identical, subset, or different
151
+ 5. Decide: share base, extend base, or keep separate
152
+
153
+ ## Dependencies
154
+
155
+ - `03-namespace-coupling.md` — base type creation
156
+ - `04-register-versioning.md` — versioned class hierarchy
157
+
158
+ ## TODO Checklist
159
+
160
+ - [ ] Audit all duplicate model pairs (25+ elements)
161
+ - [ ] Categorize each pair: identical / subset / different
162
+ - [ ] Create base classes for genuinely shared types
163
+ - [ ] Refactor ISOSTS versions to extend bases
164
+ - [ ] Refactor NISO STS versions to extend bases
165
+ - [ ] Replace direct references with namespace aliases where identical
166
+ - [ ] Remove duplicate implementations
167
+ - [ ] Run full round-trip test suite
168
+ - [ ] Verify no behavioral changes
@@ -3,12 +3,14 @@
3
3
  module Sts
4
4
  module IsoSts
5
5
  class AnnexType < Lutaml::Model::Serializable
6
+ attribute :id, :string
6
7
  attribute :content, :string, collection: true
7
8
  attribute :bold, ::Sts::IsoSts::Bold
8
9
  attribute :italic, ::Sts::IsoSts::Italic
9
10
 
10
11
  xml do
11
12
  element "annex-type"
13
+ map_attribute "id", to: :id
12
14
  mixed_content
13
15
 
14
16
  map_content to: :content
@@ -8,20 +8,20 @@ module Sts
8
8
  attribute :content, :string, collection: true
9
9
  attribute :bold, ::Sts::IsoSts::Bold, collection: true
10
10
  attribute :italic, ::Sts::IsoSts::Italic, collection: true
11
- attribute :sub, ::Sts::NisoSts::Sub, collection: true
12
- attribute :sup, ::Sts::NisoSts::Sup, collection: true
11
+ attribute :sub, ::Sts::IsoSts::Sub, collection: true
12
+ attribute :sup, ::Sts::IsoSts::Sup, collection: true
13
13
  attribute :xref, ::Sts::TbxIsoTml::Xref, collection: true
14
- attribute :ext_link, ::Sts::NisoSts::ExtLink, collection: true
15
- attribute :uri, ::Sts::NisoSts::Uri, collection: true
14
+ attribute :ext_link, ::Sts::IsoSts::ExtLink, collection: true
15
+ attribute :uri, ::Sts::IsoSts::Uri, collection: true
16
16
  attribute :inline_formula, ::Sts::IsoSts::InlineFormula, collection: true
17
- attribute :named_content, ::Sts::NisoSts::NamedContent, collection: true
17
+ attribute :named_content, ::Sts::IsoSts::NamedContent, collection: true
18
18
  attribute :styled_content, ::Sts::IsoSts::StyledContent, collection: true
19
19
  attribute :break, ::Sts::IsoSts::Break, collection: true
20
20
  attribute :std_ref, ::Sts::IsoSts::StdRef, collection: true
21
- attribute :monospace, ::Sts::NisoSts::Monospace, collection: true
22
- attribute :sc, ::Sts::NisoSts::Sc, collection: true
23
- attribute :strike, ::Sts::NisoSts::Strike, collection: true
24
- attribute :underline, ::Sts::NisoSts::Underline, collection: true
21
+ attribute :monospace, ::Sts::IsoSts::Monospace, collection: true
22
+ attribute :sc, ::Sts::IsoSts::Sc, collection: true
23
+ attribute :strike, ::Sts::IsoSts::Strike, collection: true
24
+ attribute :underline, ::Sts::IsoSts::Underline, collection: true
25
25
  attribute :fn, ::Sts::TbxIsoTml::Fn, collection: true
26
26
 
27
27
  xml do
@@ -3,8 +3,11 @@
3
3
  module Sts
4
4
  module IsoSts
5
5
  class Break < Lutaml::Model::Serializable
6
+ attribute :id, :string
6
7
  xml do
7
8
  element "break"
9
+
10
+ map_attribute "id", to: :id
8
11
  end
9
12
  end
10
13
  end
@@ -3,9 +3,11 @@
3
3
  module Sts
4
4
  module IsoSts
5
5
  class CommRef < Lutaml::Model::Serializable
6
+ attribute :id, :string
6
7
  attribute :content, :string, collection: true
7
8
  xml do
8
9
  element "comm-ref"
10
+ map_attribute "id", to: :id
9
11
  mixed_content
10
12
 
11
13
  map_content to: :content
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sts
4
+ module IsoSts
5
+ class ContentLanguage < Lutaml::Model::Serializable
6
+ attribute :id, :string
7
+ attribute :content, :string, collection: true
8
+ attribute :lang, :string
9
+ attribute :specific_use, :string
10
+
11
+ xml do
12
+ element "content-language"
13
+ map_attribute "id", to: :id
14
+ mixed_content
15
+
16
+ map_content to: :content
17
+ map_attribute "lang", to: :lang
18
+ map_attribute "specific-use", to: :specific_use
19
+ end
20
+ end
21
+ end
22
+ end
@@ -3,12 +3,14 @@
3
3
  module Sts
4
4
  module IsoSts
5
5
  class CopyrightHolder < Lutaml::Model::Serializable
6
+ attribute :id, :string
6
7
  attribute :content, :string, collection: true
7
- attribute :sub, ::Sts::NisoSts::Sub
8
- attribute :sup, ::Sts::NisoSts::Sup
8
+ attribute :sub, ::Sts::IsoSts::Sub
9
+ attribute :sup, ::Sts::IsoSts::Sup
9
10
 
10
11
  xml do
11
12
  element "copyright-holder"
13
+ map_attribute "id", to: :id
12
14
  mixed_content
13
15
 
14
16
  map_content to: :content
@@ -3,14 +3,16 @@
3
3
  module Sts
4
4
  module IsoSts
5
5
  class CopyrightStatement < Lutaml::Model::Serializable
6
+ attribute :id, :string
6
7
  attribute :content, :string, collection: true
7
8
  attribute :bold, ::Sts::IsoSts::Bold
8
9
  attribute :italic, ::Sts::IsoSts::Italic
9
- attribute :ext_link, ::Sts::NisoSts::ExtLink
10
- attribute :uri, ::Sts::NisoSts::Uri
10
+ attribute :ext_link, ::Sts::IsoSts::ExtLink
11
+ attribute :uri, ::Sts::IsoSts::Uri
11
12
 
12
13
  xml do
13
14
  element "copyright-statement"
15
+ map_attribute "id", to: :id
14
16
  mixed_content
15
17
 
16
18
  map_content to: :content
@@ -3,11 +3,14 @@
3
3
  module Sts
4
4
  module IsoSts
5
5
  class CopyrightYear < Lutaml::Model::Serializable
6
+ attribute :id, :string
6
7
  attribute :content, :string
7
8
 
8
9
  xml do
9
10
  element "copyright-year"
10
11
 
12
+ map_attribute "id", to: :id
13
+
11
14
  map_content to: :content
12
15
  end
13
16
  end
@@ -3,9 +3,11 @@
3
3
  module Sts
4
4
  module IsoSts
5
5
  class DocRef < Lutaml::Model::Serializable
6
+ attribute :id, :string
6
7
  attribute :content, :string, collection: true
7
8
  xml do
8
9
  element "doc-ref"
10
+ map_attribute "id", to: :id
9
11
  mixed_content
10
12
 
11
13
  map_content to: :content
@@ -3,6 +3,7 @@
3
3
  module Sts
4
4
  module IsoSts
5
5
  class DocumentIdentification < Lutaml::Model::Serializable
6
+ attribute :id, :string
6
7
  attribute :sdo, ::Sts::NisoSts::Sdo
7
8
  attribute :proj_id, ::Sts::NisoSts::ProjId
8
9
  attribute :language, ::Sts::IsoSts::Language
@@ -11,6 +12,7 @@ module Sts
11
12
 
12
13
  xml do
13
14
  element "doc-ident"
15
+ map_attribute "id", to: :id
14
16
  ordered
15
17
 
16
18
  map_element "sdo", to: :sdo
@@ -3,9 +3,11 @@
3
3
  module Sts
4
4
  module IsoSts
5
5
  class Edition < Lutaml::Model::Serializable
6
+ attribute :id, :string
6
7
  attribute :content, :string, collection: true
7
8
  xml do
8
9
  element "edition"
10
+ map_attribute "id", to: :id
9
11
  mixed_content
10
12
 
11
13
  map_content to: :content
@@ -11,7 +11,7 @@ module Sts
11
11
  attribute :content, :string
12
12
  attribute :bold, ::Sts::IsoSts::Bold
13
13
  attribute :italic, ::Sts::IsoSts::Italic
14
- attribute :named_content, ::Sts::NisoSts::NamedContent
14
+ attribute :named_content, ::Sts::IsoSts::NamedContent
15
15
 
16
16
  xml do
17
17
  element "ext-link"
@@ -3,6 +3,7 @@
3
3
  module Sts
4
4
  module IsoSts
5
5
  class Front < Lutaml::Model::Serializable
6
+ attribute :id, :string
6
7
  attribute :std_meta, ::Sts::NisoSts::MetadataStd
7
8
  attribute :iso_meta, ::Sts::IsoSts::IsoMeta
8
9
  attribute :reg_meta, ::Sts::IsoSts::RegMeta, collection: true
@@ -11,6 +12,7 @@ module Sts
11
12
 
12
13
  xml do
13
14
  element "front"
15
+ map_attribute "id", to: :id
14
16
  ordered
15
17
 
16
18
  map_element "std-meta", to: :std_meta
@@ -7,7 +7,7 @@ module Sts
7
7
  attribute :title_wrap, ::Sts::IsoSts::TitleWrap, collection: true
8
8
  attribute :doc_ident, ::Sts::IsoSts::DocumentIdentification
9
9
  attribute :std_ident, ::Sts::IsoSts::StandardIdentification
10
- attribute :content_language, ::Sts::NisoSts::ContentLanguage,
10
+ attribute :content_language, ::Sts::IsoSts::ContentLanguage,
11
11
  collection: true
12
12
  attribute :std_ref, ::Sts::IsoSts::StdRef, collection: true
13
13
  attribute :doc_ref, ::Sts::IsoSts::DocRef
@@ -21,7 +21,7 @@ module Sts
21
21
  collection: true
22
22
  attribute :custom_meta_group, ::Sts::NisoSts::CustomMetaGroup,
23
23
  collection: true
24
- attribute :meta_date, ::Sts::NisoSts::MetaDate, collection: true
24
+ attribute :meta_date, ::Sts::IsoSts::MetaDate, collection: true
25
25
  attribute :pub_date, ::Sts::NisoSts::PubDate
26
26
  attribute :is_proof, ::Sts::NisoSts::IsProof
27
27
 
@@ -8,20 +8,20 @@ module Sts
8
8
  attribute :content, :string, collection: true
9
9
  attribute :bold, ::Sts::IsoSts::Bold, collection: true
10
10
  attribute :italic, ::Sts::IsoSts::Italic, collection: true
11
- attribute :sub, ::Sts::NisoSts::Sub, collection: true
12
- attribute :sup, ::Sts::NisoSts::Sup, collection: true
11
+ attribute :sub, ::Sts::IsoSts::Sub, collection: true
12
+ attribute :sup, ::Sts::IsoSts::Sup, collection: true
13
13
  attribute :xref, ::Sts::TbxIsoTml::Xref, collection: true
14
- attribute :ext_link, ::Sts::NisoSts::ExtLink, collection: true
15
- attribute :uri, ::Sts::NisoSts::Uri, collection: true
14
+ attribute :ext_link, ::Sts::IsoSts::ExtLink, collection: true
15
+ attribute :uri, ::Sts::IsoSts::Uri, collection: true
16
16
  attribute :inline_formula, ::Sts::IsoSts::InlineFormula, collection: true
17
- attribute :named_content, ::Sts::NisoSts::NamedContent, collection: true
17
+ attribute :named_content, ::Sts::IsoSts::NamedContent, collection: true
18
18
  attribute :styled_content, ::Sts::IsoSts::StyledContent, collection: true
19
19
  attribute :break, ::Sts::IsoSts::Break, collection: true
20
20
  attribute :std_ref, ::Sts::IsoSts::StdRef, collection: true
21
- attribute :monospace, ::Sts::NisoSts::Monospace, collection: true
22
- attribute :sc, ::Sts::NisoSts::Sc, collection: true
23
- attribute :strike, ::Sts::NisoSts::Strike, collection: true
24
- attribute :underline, ::Sts::NisoSts::Underline, collection: true
21
+ attribute :monospace, ::Sts::IsoSts::Monospace, collection: true
22
+ attribute :sc, ::Sts::IsoSts::Sc, collection: true
23
+ attribute :strike, ::Sts::IsoSts::Strike, collection: true
24
+ attribute :underline, ::Sts::IsoSts::Underline, collection: true
25
25
  attribute :fn, ::Sts::TbxIsoTml::Fn, collection: true
26
26
 
27
27
  xml do
@@ -3,20 +3,22 @@
3
3
  module Sts
4
4
  module IsoSts
5
5
  class Label < Lutaml::Model::Serializable
6
+ attribute :id, :string
6
7
  attribute :content, :string, collection: true
7
8
  attribute :bold, ::Sts::IsoSts::Bold
8
9
  attribute :italic, ::Sts::IsoSts::Italic
9
- attribute :sub, ::Sts::NisoSts::Sub
10
- attribute :sup, ::Sts::NisoSts::Sup
10
+ attribute :sub, ::Sts::IsoSts::Sub
11
+ attribute :sup, ::Sts::IsoSts::Sup
11
12
  attribute :inline_formula, ::Sts::IsoSts::InlineFormula
12
13
  attribute :break, ::Sts::IsoSts::Break
13
14
  attribute :styled_content, ::Sts::IsoSts::StyledContent
14
- attribute :ext_link, ::Sts::NisoSts::ExtLink
15
- attribute :uri, ::Sts::NisoSts::Uri
16
- attribute :named_content, ::Sts::NisoSts::NamedContent
15
+ attribute :ext_link, ::Sts::IsoSts::ExtLink
16
+ attribute :uri, ::Sts::IsoSts::Uri
17
+ attribute :named_content, ::Sts::IsoSts::NamedContent
17
18
 
18
19
  xml do
19
20
  element "label"
21
+ map_attribute "id", to: :id
20
22
  mixed_content
21
23
 
22
24
  map_content to: :content
@@ -3,12 +3,14 @@
3
3
  module Sts
4
4
  module IsoSts
5
5
  class Language < Lutaml::Model::Serializable
6
+ attribute :id, :string
6
7
  attribute :content, :string, collection: true
7
8
  attribute :lang, :string
8
9
  attribute :specific_use, :string
9
10
 
10
11
  xml do
11
12
  element "language"
13
+ map_attribute "id", to: :id
12
14
  mixed_content
13
15
 
14
16
  map_content to: :content
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sts
4
+ module IsoSts
5
+ class MetaDate < Lutaml::Model::Serializable
6
+ attribute :id, :string
7
+ attribute :content, :string
8
+ attribute :type, :string
9
+
10
+ xml do
11
+ element "meta-date"
12
+
13
+ map_content to: :content
14
+
15
+ map_attribute "id", to: :id
16
+ map_attribute :type, to: :type
17
+ end
18
+ end
19
+ end
20
+ end