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,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
@@ -12,12 +12,12 @@ module Sts
12
12
  attribute :content, :string, collection: true
13
13
  attribute :bold, ::Sts::IsoSts::Bold, collection: true
14
14
  attribute :italic, ::Sts::IsoSts::Italic, collection: true
15
- attribute :sub, ::Sts::NisoSts::Sub, collection: true
16
- attribute :sup, ::Sts::NisoSts::Sup, collection: true
15
+ attribute :sub, ::Sts::IsoSts::Sub, collection: true
16
+ attribute :sup, ::Sts::IsoSts::Sup, collection: true
17
17
  attribute :std, ::Sts::IsoSts::Std, collection: true
18
- attribute :ext_link, ::Sts::NisoSts::ExtLink, collection: true
19
- attribute :uri, ::Sts::NisoSts::Uri, collection: true
20
- attribute :named_content, ::Sts::NisoSts::NamedContent, collection: true
18
+ attribute :ext_link, ::Sts::IsoSts::ExtLink, collection: true
19
+ attribute :uri, ::Sts::IsoSts::Uri, collection: true
20
+ attribute :named_content, ::Sts::IsoSts::NamedContent, collection: true
21
21
  attribute :styled_content, ::Sts::IsoSts::StyledContent, collection: true
22
22
  attribute :fn, ::Sts::TbxIsoTml::Fn, collection: true
23
23
  attribute :xref, ::Sts::TbxIsoTml::Xref, collection: true
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sts
4
+ module IsoSts
5
+ class Monospace < Lutaml::Model::Serializable
6
+ attribute :specific_use, :string
7
+ attribute :content, :string, collection: true
8
+ attribute :bold, ::Sts::IsoSts::Bold, collection: true
9
+ attribute :italic, ::Sts::IsoSts::Italic, collection: true
10
+ attribute :sub, ::Sts::IsoSts::Sub, collection: true
11
+ attribute :sup, ::Sts::IsoSts::Sup, collection: true
12
+
13
+ xml do
14
+ element "monospace"
15
+ mixed_content
16
+
17
+ map_attribute "specific-use", to: :specific_use
18
+ map_content to: :content
19
+ map_element "bold", to: :bold
20
+ map_element "italic", to: :italic
21
+ map_element "sub", to: :sub
22
+ map_element "sup", to: :sup
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,44 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sts
4
+ module IsoSts
5
+ class NamedContent < Lutaml::Model::Serializable
6
+ attribute :id, :string
7
+ attribute :alt, :string
8
+ attribute :content_type, :string
9
+ attribute :specific_use, :string
10
+ attribute :xml_lang, :string
11
+ attribute :xlink_href, :string
12
+ attribute :xlink_role, :string
13
+ attribute :xlink_title, :string
14
+ attribute :xlink_show, :string
15
+ attribute :xlink_actuate, :string
16
+ attribute :content, :string, collection: true
17
+ attribute :bold, ::Sts::IsoSts::Bold, collection: true
18
+ attribute :italic, ::Sts::IsoSts::Italic, collection: true
19
+ attribute :sub, ::Sts::IsoSts::Sub, collection: true
20
+ attribute :sup, ::Sts::IsoSts::Sup, collection: true
21
+
22
+ xml do
23
+ element "named-content"
24
+ mixed_content
25
+
26
+ map_attribute "id", to: :id
27
+ map_attribute "alt", to: :alt
28
+ map_attribute "content-type", to: :content_type
29
+ map_attribute "specific-use", to: :specific_use
30
+ map_attribute "xml:lang", to: :xml_lang
31
+ map_attribute "xlink:href", to: :xlink_href
32
+ map_attribute "xlink:role", to: :xlink_role
33
+ map_attribute "xlink:title", to: :xlink_title
34
+ map_attribute "xlink:show", to: :xlink_show
35
+ map_attribute "xlink:actuate", to: :xlink_actuate
36
+ map_content to: :content
37
+ map_element "bold", to: :bold
38
+ map_element "italic", to: :italic
39
+ map_element "sub", to: :sub
40
+ map_element "sup", to: :sup
41
+ end
42
+ end
43
+ end
44
+ end
@@ -8,11 +8,11 @@ module Sts
8
8
  attribute :title_wrap, ::Sts::IsoSts::TitleWrap, collection: true
9
9
  attribute :doc_ident, ::Sts::IsoSts::DocumentIdentification
10
10
  attribute :std_ident, ::Sts::IsoSts::StandardIdentification
11
- attribute :content_language, ::Sts::NisoSts::ContentLanguage,
11
+ attribute :content_language, ::Sts::IsoSts::ContentLanguage,
12
12
  collection: true
13
- attribute :std_ref, ::Sts::NisoSts::StandardRef, collection: true
13
+ attribute :std_ref, ::Sts::IsoSts::StandardRef, collection: true
14
14
  attribute :doc_ref, :string
15
- attribute :release_date, ::Sts::NisoSts::ReleaseDate
15
+ attribute :release_date, ::Sts::IsoSts::ReleaseDate
16
16
  attribute :comm_ref, :string
17
17
  attribute :secretariat, ::Sts::NisoSts::Secretariat, collection: true
18
18
  attribute :ics, ::Sts::NisoSts::Ics, collection: true
@@ -22,7 +22,7 @@ module Sts
22
22
  collection: true
23
23
  attribute :custom_meta_group, ::Sts::NisoSts::CustomMetaGroup,
24
24
  collection: true
25
- attribute :meta_date, ::Sts::NisoSts::MetaDate, collection: true
25
+ attribute :meta_date, ::Sts::IsoSts::MetaDate, collection: true
26
26
  attribute :pub_date, ::Sts::NisoSts::PubDate
27
27
 
28
28
  xml do
@@ -3,11 +3,13 @@
3
3
  module Sts
4
4
  module IsoSts
5
5
  class PageCount < Lutaml::Model::Serializable
6
+ attribute :id, :string
6
7
  attribute :count, :string
7
8
 
8
9
  xml do
9
10
  element "page-count"
10
11
 
12
+ map_attribute "id", to: :id
11
13
  map_attribute "count", to: :count
12
14
  end
13
15
  end
@@ -13,8 +13,8 @@ module Sts
13
13
  attribute :bold, ::Sts::IsoSts::Bold, collection: true
14
14
  attribute :italic, ::Sts::IsoSts::Italic, collection: true
15
15
  attribute :xref, ::Sts::TbxIsoTml::Xref, collection: true
16
- attribute :ext_link, ::Sts::NisoSts::ExtLink, collection: true
17
- attribute :uri, ::Sts::NisoSts::Uri, collection: true
16
+ attribute :ext_link, ::Sts::IsoSts::ExtLink, collection: true
17
+ attribute :uri, ::Sts::IsoSts::Uri, collection: true
18
18
  attribute :inline_formula, ::Sts::IsoSts::InlineFormula, collection: true
19
19
  attribute :disp_formula, ::Sts::IsoSts::DispFormula, collection: true
20
20
  attribute :std, ::Sts::IsoSts::Std, collection: true
@@ -29,12 +29,12 @@ module Sts
29
29
  attribute :graphic, ::Sts::IsoSts::Graphic, collection: true
30
30
  attribute :math, Mml::V3::Math, collection: true
31
31
  attribute :break, ::Sts::IsoSts::Break, collection: true
32
- attribute :sub, ::Sts::NisoSts::Sub, collection: true
33
- attribute :sup, ::Sts::NisoSts::Sup, collection: true
34
- attribute :monospace, ::Sts::NisoSts::Monospace, collection: true
35
- attribute :sc, ::Sts::NisoSts::Sc, collection: true
36
- attribute :strike, ::Sts::NisoSts::Strike, collection: true
37
- attribute :underline, ::Sts::NisoSts::Underline, collection: true
32
+ attribute :sub, ::Sts::IsoSts::Sub, collection: true
33
+ attribute :sup, ::Sts::IsoSts::Sup, collection: true
34
+ attribute :monospace, ::Sts::IsoSts::Monospace, collection: true
35
+ attribute :sc, ::Sts::IsoSts::Sc, collection: true
36
+ attribute :strike, ::Sts::IsoSts::Strike, collection: true
37
+ attribute :underline, ::Sts::IsoSts::Underline, collection: true
38
38
  attribute :array, ::Sts::IsoSts::Array, collection: true
39
39
  attribute :fig, ::Sts::IsoSts::Fig, collection: true
40
40
  attribute :table_wrap, ::Sts::TbxIsoTml::TableWrap, collection: true