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.
- checksums.yaml +4 -4
- data/GAPS.guidelines.iso-sts-ed2.1/01-maintenance.md +19 -0
- data/GAPS.guidelines.iso-sts-ed2.1/03-general.md +75 -0
- data/GAPS.guidelines.iso-sts-ed2.1/04-structure.md +75 -0
- data/GAPS.guidelines.iso-sts-ed2.1/05-content.md +63 -0
- data/GAPS.guidelines.iso-sts-ed2.1/06-tables.md +53 -0
- data/GAPS.guidelines.iso-sts-ed2.1/07-formulae.md +41 -0
- data/GAPS.guidelines.iso-sts-ed2.1/08-figures.md +45 -0
- data/GAPS.guidelines.iso-sts-ed2.1/09-terms.md +56 -0
- data/GAPS.guidelines.iso-sts-ed2.1/10-references.md +56 -0
- data/GAPS.guidelines.iso-sts-ed2.1/annex-a-multilingual.md +79 -0
- data/GAPS.guidelines.niso-sts-v1.0/01-introduction-scope.md +27 -0
- data/GAPS.guidelines.niso-sts-v1.0/02-document-structure.md +100 -0
- data/GAPS.guidelines.niso-sts-v1.0/03-front-matter.md +149 -0
- data/GAPS.guidelines.niso-sts-v1.0/04-body-content.md +209 -0
- data/GAPS.guidelines.niso-sts-v1.0/05-tables-figures.md +152 -0
- data/GAPS.guidelines.niso-sts-v1.0/06-math-formulae.md +128 -0
- data/GAPS.guidelines.niso-sts-v1.0/07-references.md +113 -0
- data/GAPS.guidelines.niso-sts-v1.0/08-terminology.md +127 -0
- data/GAPS.guidelines.niso-sts-v1.0/09-metadata.md +113 -0
- data/GAPS.guidelines.niso-sts-v1.0/10-iso-iec-variant.md +141 -0
- data/GAPS.guidelines.niso-sts-v1.0/SUMMARY.md +96 -0
- data/GAPS.guidelines.schema-xref.md +101 -0
- data/Gemfile +1 -0
- data/TODO.sts-refactor/00-overview.md +172 -0
- data/TODO.sts-refactor/01-mathml-delegation.md +153 -0
- data/TODO.sts-refactor/02-type-resolution.md +122 -0
- data/TODO.sts-refactor/03-namespace-coupling.md +158 -0
- data/TODO.sts-refactor/04-register-versioning.md +180 -0
- data/TODO.sts-refactor/05-missing-elements.md +195 -0
- data/TODO.sts-refactor/06-missing-attributes.md +152 -0
- data/TODO.sts-refactor/07-incomplete-models.md +180 -0
- data/TODO.sts-refactor/08-isoiec-profile.md +169 -0
- data/TODO.sts-refactor/09-autoload-cleanup.md +88 -0
- data/TODO.sts-refactor/10-test-coverage.md +164 -0
- data/TODO.sts-refactor/11-duplicate-models.md +168 -0
- data/lib/sts/iso_sts/annex_type.rb +2 -0
- data/lib/sts/iso_sts/bold.rb +9 -9
- data/lib/sts/iso_sts/break.rb +3 -0
- data/lib/sts/iso_sts/comm_ref.rb +2 -0
- data/lib/sts/iso_sts/content_language.rb +22 -0
- data/lib/sts/iso_sts/copyright_holder.rb +4 -2
- data/lib/sts/iso_sts/copyright_statement.rb +4 -2
- data/lib/sts/iso_sts/copyright_year.rb +3 -0
- data/lib/sts/iso_sts/doc_ref.rb +2 -0
- data/lib/sts/iso_sts/document_identification.rb +2 -0
- data/lib/sts/iso_sts/edition.rb +2 -0
- data/lib/sts/iso_sts/ext_link.rb +1 -1
- data/lib/sts/iso_sts/front.rb +2 -0
- data/lib/sts/iso_sts/iso_meta.rb +2 -2
- data/lib/sts/iso_sts/italic.rb +9 -9
- data/lib/sts/iso_sts/label.rb +7 -5
- data/lib/sts/iso_sts/language.rb +2 -0
- data/lib/sts/iso_sts/meta_date.rb +20 -0
- data/lib/sts/iso_sts/mixed_citation.rb +5 -5
- data/lib/sts/iso_sts/monospace.rb +26 -0
- data/lib/sts/iso_sts/named_content.rb +44 -0
- data/lib/sts/iso_sts/nat_meta.rb +4 -4
- data/lib/sts/iso_sts/page_count.rb +2 -0
- data/lib/sts/iso_sts/paragraph.rb +8 -8
- data/lib/sts/iso_sts/permissions.rb +2 -0
- data/lib/sts/iso_sts/preformat.rb +3 -3
- data/lib/sts/iso_sts/reg_meta.rb +4 -4
- data/lib/sts/iso_sts/release_date.rb +2 -0
- data/lib/sts/iso_sts/sc.rb +26 -0
- data/lib/sts/iso_sts/sec.rb +2 -2
- data/lib/sts/iso_sts/secretariat.rb +2 -0
- data/lib/sts/iso_sts/standard_cross_reference.rb +4 -2
- data/lib/sts/iso_sts/standard_identification.rb +2 -0
- data/lib/sts/iso_sts/standard_ref.rb +16 -0
- data/lib/sts/iso_sts/std.rb +3 -1
- data/lib/sts/iso_sts/std_ref.rb +2 -0
- data/lib/sts/iso_sts/strike.rb +26 -0
- data/lib/sts/iso_sts/styled_content.rb +11 -9
- data/lib/sts/iso_sts/sub.rb +2 -0
- data/lib/sts/iso_sts/sup.rb +2 -0
- data/lib/sts/iso_sts/table_wrap_foot.rb +2 -0
- data/lib/sts/iso_sts/td.rb +7 -7
- data/lib/sts/iso_sts/term.rb +5 -5
- data/lib/sts/iso_sts/th.rb +7 -7
- data/lib/sts/iso_sts/title.rb +6 -4
- data/lib/sts/iso_sts/title_compl.rb +2 -0
- data/lib/sts/iso_sts/title_full.rb +2 -0
- data/lib/sts/iso_sts/title_intro.rb +2 -0
- data/lib/sts/iso_sts/title_main.rb +2 -0
- data/lib/sts/iso_sts/underline.rb +26 -0
- data/lib/sts/iso_sts/uri.rb +32 -0
- data/lib/sts/iso_sts/xref.rb +3 -3
- data/lib/sts/iso_sts.rb +9 -0
- data/lib/sts/mathml.rb +12 -58
- data/lib/sts/namespaces.rb +2 -0
- data/lib/sts/niso_sts/abstract.rb +2 -0
- data/lib/sts/niso_sts/access_date.rb +2 -0
- data/lib/sts/niso_sts/accrediting_organization.rb +2 -0
- data/lib/sts/niso_sts/addr_line.rb +2 -0
- data/lib/sts/niso_sts/address.rb +2 -0
- data/lib/sts/niso_sts/aff_alternatives.rb +3 -0
- data/lib/sts/niso_sts/alt_text.rb +2 -0
- data/lib/sts/niso_sts/alt_title.rb +2 -0
- data/lib/sts/niso_sts/alternatives.rb +2 -0
- data/lib/sts/niso_sts/anonymous.rb +3 -0
- data/lib/sts/niso_sts/app.rb +2 -0
- data/lib/sts/niso_sts/article_title.rb +2 -0
- data/lib/sts/niso_sts/attrib.rb +2 -0
- data/lib/sts/niso_sts/authorization.rb +2 -0
- data/lib/sts/niso_sts/award_group.rb +22 -4
- data/lib/sts/niso_sts/award_id.rb +6 -0
- data/lib/sts/niso_sts/back.rb +22 -4
- data/lib/sts/niso_sts/body.rb +2 -0
- data/lib/sts/niso_sts/boxed_text.rb +38 -4
- data/lib/sts/niso_sts/break.rb +3 -0
- data/lib/sts/niso_sts/caption.rb +8 -0
- data/lib/sts/niso_sts/chapter_title.rb +2 -0
- data/lib/sts/niso_sts/chem_struct.rb +2 -0
- data/lib/sts/niso_sts/citation_alternatives.rb +2 -0
- data/lib/sts/niso_sts/city.rb +2 -0
- data/lib/sts/niso_sts/code.rb +111 -0
- data/lib/sts/niso_sts/collab_alternatives.rb +3 -0
- data/lib/sts/niso_sts/comm_ref_group.rb +3 -0
- data/lib/sts/niso_sts/comment.rb +2 -0
- data/lib/sts/niso_sts/compound_subject.rb +29 -0
- data/lib/sts/niso_sts/compound_subject_part.rb +39 -0
- data/lib/sts/niso_sts/conf_acronym.rb +2 -0
- data/lib/sts/niso_sts/conf_date.rb +2 -0
- data/lib/sts/niso_sts/conf_loc.rb +2 -0
- data/lib/sts/niso_sts/conf_name.rb +2 -0
- data/lib/sts/niso_sts/conf_num.rb +2 -0
- data/lib/sts/niso_sts/conf_sponsor.rb +2 -0
- data/lib/sts/niso_sts/conf_theme.rb +2 -0
- data/lib/sts/niso_sts/conference.rb +2 -0
- data/lib/sts/niso_sts/content_language.rb +2 -0
- data/lib/sts/niso_sts/contrib_id.rb +2 -0
- data/lib/sts/niso_sts/copyright_holder.rb +2 -0
- data/lib/sts/niso_sts/copyright_statement.rb +2 -0
- data/lib/sts/niso_sts/copyright_year.rb +2 -0
- data/lib/sts/niso_sts/country.rb +2 -0
- data/lib/sts/niso_sts/counts.rb +2 -0
- data/lib/sts/niso_sts/custom_meta.rb +2 -0
- data/lib/sts/niso_sts/custom_meta_group.rb +3 -0
- data/lib/sts/niso_sts/data_title.rb +29 -0
- data/lib/sts/niso_sts/date.rb +2 -0
- data/lib/sts/niso_sts/date_in_citation.rb +2 -0
- data/lib/sts/niso_sts/day.rb +2 -0
- data/lib/sts/niso_sts/def.rb +3 -0
- data/lib/sts/niso_sts/def_head.rb +18 -0
- data/lib/sts/niso_sts/def_item.rb +4 -0
- data/lib/sts/niso_sts/def_list.rb +21 -4
- data/lib/sts/niso_sts/degrees.rb +2 -0
- data/lib/sts/niso_sts/disp_formula_group.rb +0 -2
- data/lib/sts/niso_sts/disp_quote.rb +2 -0
- data/lib/sts/niso_sts/display_formula.rb +37 -4
- data/lib/sts/niso_sts/doc_number.rb +2 -0
- data/lib/sts/niso_sts/doc_type.rb +2 -0
- data/lib/sts/niso_sts/editing_instruction.rb +8 -2
- data/lib/sts/niso_sts/edition.rb +2 -0
- data/lib/sts/niso_sts/elocation_id.rb +2 -0
- data/lib/sts/niso_sts/email.rb +2 -0
- data/lib/sts/niso_sts/equation_count.rb +2 -0
- data/lib/sts/niso_sts/era.rb +2 -0
- data/lib/sts/niso_sts/ext_link.rb +16 -0
- data/lib/sts/niso_sts/fax.rb +2 -0
- data/lib/sts/niso_sts/fig_count.rb +2 -0
- data/lib/sts/niso_sts/floats_group.rb +2 -0
- data/lib/sts/niso_sts/fn_group.rb +3 -0
- data/lib/sts/niso_sts/fpage.rb +2 -0
- data/lib/sts/niso_sts/front.rb +15 -0
- data/lib/sts/niso_sts/funding_source.rb +2 -0
- data/lib/sts/niso_sts/given_names.rb +2 -0
- data/lib/sts/niso_sts/gov.rb +2 -0
- data/lib/sts/niso_sts/graphic.rb +4 -0
- data/lib/sts/niso_sts/hr.rb +3 -0
- data/lib/sts/niso_sts/ics.rb +3 -0
- data/lib/sts/niso_sts/ics_desc.rb +2 -0
- data/lib/sts/niso_sts/ics_wrap.rb +9 -0
- data/lib/sts/niso_sts/index.rb +32 -0
- data/lib/sts/niso_sts/index_div.rb +30 -0
- data/lib/sts/niso_sts/index_entry.rb +32 -0
- data/lib/sts/niso_sts/index_title_group.rb +22 -0
- data/lib/sts/niso_sts/inline_formula.rb +29 -4
- data/lib/sts/niso_sts/inline_media.rb +50 -0
- data/lib/sts/niso_sts/institution.rb +2 -0
- data/lib/sts/niso_sts/institution_id.rb +2 -0
- data/lib/sts/niso_sts/institution_wrap.rb +2 -0
- data/lib/sts/niso_sts/intro.rb +2 -0
- data/lib/sts/niso_sts/is_proof.rb +2 -0
- data/lib/sts/niso_sts/isbn.rb +2 -0
- data/lib/sts/niso_sts/issn.rb +2 -0
- data/lib/sts/niso_sts/issn_l.rb +2 -0
- data/lib/sts/niso_sts/issue.rb +2 -0
- data/lib/sts/niso_sts/kwd_group.rb +8 -0
- data/lib/sts/niso_sts/label.rb +4 -0
- data/lib/sts/niso_sts/legend.rb +39 -0
- data/lib/sts/niso_sts/license.rb +2 -0
- data/lib/sts/niso_sts/license_p.rb +2 -0
- data/lib/sts/niso_sts/list.rb +2 -0
- data/lib/sts/niso_sts/list_item.rb +2 -2
- data/lib/sts/niso_sts/long_desc.rb +2 -0
- data/lib/sts/niso_sts/lpage.rb +2 -0
- data/lib/sts/niso_sts/main.rb +2 -0
- data/lib/sts/niso_sts/meta_date.rb +2 -0
- data/lib/sts/niso_sts/metadata_std.rb +0 -2
- data/lib/sts/niso_sts/mml_content.rb +0 -2
- data/lib/sts/niso_sts/month.rb +2 -0
- data/lib/sts/niso_sts/name.rb +2 -0
- data/lib/sts/niso_sts/name_alternatives.rb +5 -0
- data/lib/sts/niso_sts/named_content.rb +51 -1
- data/lib/sts/niso_sts/nat_meta.rb +2 -0
- data/lib/sts/niso_sts/nested_kwd.rb +2 -0
- data/lib/sts/niso_sts/non_normative_note.rb +2 -0
- data/lib/sts/niso_sts/normative_note.rb +2 -0
- data/lib/sts/niso_sts/object_id.rb +4 -0
- data/lib/sts/niso_sts/on_behalf_of.rb +2 -0
- data/lib/sts/niso_sts/open_access.rb +2 -0
- data/lib/sts/niso_sts/originator.rb +2 -0
- data/lib/sts/niso_sts/page_count.rb +2 -0
- data/lib/sts/niso_sts/page_range.rb +2 -0
- data/lib/sts/niso_sts/paragraph.rb +2 -0
- data/lib/sts/niso_sts/part_number.rb +2 -0
- data/lib/sts/niso_sts/part_of_speech.rb +2 -0
- data/lib/sts/niso_sts/patent.rb +2 -0
- data/lib/sts/niso_sts/permissions.rb +6 -1
- data/lib/sts/niso_sts/phone.rb +2 -0
- data/lib/sts/niso_sts/postal_code.rb +2 -0
- data/lib/sts/niso_sts/prefix.rb +2 -0
- data/lib/sts/niso_sts/price.rb +2 -0
- data/lib/sts/niso_sts/principal_award_recipient.rb +2 -0
- data/lib/sts/niso_sts/principal_investigator.rb +2 -0
- data/lib/sts/niso_sts/private_char.rb +2 -0
- data/lib/sts/niso_sts/processing_meta.rb +54 -0
- data/lib/sts/niso_sts/product.rb +2 -0
- data/lib/sts/niso_sts/proj_id.rb +2 -0
- data/lib/sts/niso_sts/pub_date.rb +2 -0
- data/lib/sts/niso_sts/pub_id.rb +2 -0
- data/lib/sts/niso_sts/publisher.rb +2 -0
- data/lib/sts/niso_sts/publisher_loc.rb +2 -0
- data/lib/sts/niso_sts/publisher_name.rb +2 -0
- data/lib/sts/niso_sts/ref_count.rb +2 -0
- data/lib/sts/niso_sts/reference_standard.rb +2 -2
- data/lib/sts/niso_sts/reg_meta.rb +2 -0
- data/lib/sts/niso_sts/related_term.rb +2 -0
- data/lib/sts/niso_sts/release_date.rb +2 -0
- data/lib/sts/niso_sts/release_version.rb +2 -0
- data/lib/sts/niso_sts/release_version_id.rb +2 -0
- data/lib/sts/niso_sts/role.rb +35 -0
- data/lib/sts/niso_sts/sdo.rb +2 -0
- data/lib/sts/niso_sts/season.rb +2 -0
- data/lib/sts/niso_sts/sec_meta.rb +26 -0
- data/lib/sts/niso_sts/secretariat.rb +2 -0
- data/lib/sts/niso_sts/section.rb +8 -0
- data/lib/sts/niso_sts/see_also_entry.rb +26 -0
- data/lib/sts/niso_sts/see_entry.rb +26 -0
- data/lib/sts/niso_sts/self_uri.rb +2 -0
- data/lib/sts/niso_sts/series.rb +2 -0
- data/lib/sts/niso_sts/series_text.rb +2 -0
- data/lib/sts/niso_sts/series_title.rb +2 -0
- data/lib/sts/niso_sts/sig.rb +2 -0
- data/lib/sts/niso_sts/size.rb +2 -0
- data/lib/sts/niso_sts/source.rb +29 -0
- data/lib/sts/niso_sts/speaker.rb +2 -0
- data/lib/sts/niso_sts/standard_identification.rb +2 -0
- data/lib/sts/niso_sts/state.rb +2 -0
- data/lib/sts/niso_sts/std_doc_meta.rb +49 -11
- data/lib/sts/niso_sts/std_id.rb +2 -0
- data/lib/sts/niso_sts/std_id_group.rb +3 -0
- data/lib/sts/niso_sts/std_org_abbrev.rb +2 -0
- data/lib/sts/niso_sts/std_org_group.rb +3 -0
- data/lib/sts/niso_sts/std_org_name.rb +2 -0
- data/lib/sts/niso_sts/std_organization.rb +2 -0
- data/lib/sts/niso_sts/string_conf.rb +2 -0
- data/lib/sts/niso_sts/string_date.rb +2 -0
- data/lib/sts/niso_sts/string_name.rb +2 -0
- data/lib/sts/niso_sts/styled_content.rb +2 -0
- data/lib/sts/niso_sts/subj_group.rb +11 -1
- data/lib/sts/niso_sts/subtitle.rb +2 -0
- data/lib/sts/niso_sts/suffix.rb +2 -0
- data/lib/sts/niso_sts/suppl_number.rb +2 -0
- data/lib/sts/niso_sts/suppl_type.rb +2 -0
- data/lib/sts/niso_sts/suppl_version.rb +2 -0
- data/lib/sts/niso_sts/surname.rb +2 -0
- data/lib/sts/niso_sts/table_count.rb +2 -0
- data/lib/sts/niso_sts/table_wrap_group.rb +32 -0
- data/lib/sts/niso_sts/term_display.rb +22 -1
- data/lib/sts/niso_sts/term_display_string.rb +22 -0
- data/lib/sts/niso_sts/term_head.rb +2 -0
- data/lib/sts/niso_sts/term_source.rb +2 -0
- data/lib/sts/niso_sts/tex_math.rb +2 -0
- data/lib/sts/niso_sts/textual_form.rb +2 -0
- data/lib/sts/niso_sts/time_stamp.rb +2 -0
- data/lib/sts/niso_sts/title.rb +6 -0
- data/lib/sts/niso_sts/title_wrap.rb +2 -0
- data/lib/sts/niso_sts/toc.rb +32 -0
- data/lib/sts/niso_sts/toc_div.rb +30 -0
- data/lib/sts/niso_sts/toc_entry.rb +30 -0
- data/lib/sts/niso_sts/toc_title_group.rb +22 -0
- data/lib/sts/niso_sts/trans_source.rb +2 -0
- data/lib/sts/niso_sts/trans_title.rb +2 -0
- data/lib/sts/niso_sts/trans_title_group.rb +3 -0
- data/lib/sts/niso_sts/uri.rb +2 -0
- data/lib/sts/niso_sts/urn.rb +2 -0
- data/lib/sts/niso_sts/verse_line.rb +2 -0
- data/lib/sts/niso_sts/version.rb +2 -0
- data/lib/sts/niso_sts/volume.rb +2 -0
- data/lib/sts/niso_sts/volume_id.rb +2 -0
- data/lib/sts/niso_sts/volume_issue_group.rb +2 -0
- data/lib/sts/niso_sts/volume_series.rb +2 -0
- data/lib/sts/niso_sts/word_count.rb +2 -0
- data/lib/sts/niso_sts/year.rb +2 -0
- data/lib/sts/niso_sts.rb +35 -10
- data/lib/sts/profiles/iso_iec/constraints.rb +43 -0
- data/lib/sts/profiles/iso_iec/validator.rb +73 -0
- data/lib/sts/profiles/iso_iec.rb +10 -0
- data/lib/sts/profiles.rb +7 -0
- data/lib/sts/tbx_iso_tml/bold.rb +2 -0
- data/lib/sts/tbx_iso_tml/caption.rb +3 -0
- data/lib/sts/tbx_iso_tml/cross_reference.rb +2 -0
- data/lib/sts/tbx_iso_tml/definition.rb +2 -0
- data/lib/sts/tbx_iso_tml/entailed_term.rb +2 -0
- data/lib/sts/tbx_iso_tml/example.rb +0 -2
- data/lib/sts/tbx_iso_tml/external_graphic.rb +2 -0
- data/lib/sts/tbx_iso_tml/external_source.rb +2 -0
- data/lib/sts/tbx_iso_tml/fn_group.rb +3 -0
- data/lib/sts/tbx_iso_tml/geographical_usage.rb +3 -0
- data/lib/sts/tbx_iso_tml/grammatical_gender.rb +2 -0
- data/lib/sts/tbx_iso_tml/grammatical_number.rb +2 -0
- data/lib/sts/tbx_iso_tml/italic.rb +2 -0
- data/lib/sts/tbx_iso_tml/lang_set.rb +2 -0
- data/lib/sts/tbx_iso_tml/mfenced.rb +2 -0
- data/lib/sts/tbx_iso_tml/mfrac.rb +2 -2
- data/lib/sts/tbx_iso_tml/mi.rb +3 -2
- data/lib/sts/tbx_iso_tml/mrow.rb +2 -2
- data/lib/sts/tbx_iso_tml/mspace.rb +2 -0
- data/lib/sts/tbx_iso_tml/mstyle.rb +2 -2
- data/lib/sts/tbx_iso_tml/msub.rb +2 -0
- data/lib/sts/tbx_iso_tml/msup.rb +2 -0
- data/lib/sts/tbx_iso_tml/munder.rb +3 -0
- data/lib/sts/tbx_iso_tml/munderover.rb +2 -0
- data/lib/sts/tbx_iso_tml/normative_authorization.rb +2 -0
- data/lib/sts/tbx_iso_tml/part_of_speech.rb +2 -0
- data/lib/sts/tbx_iso_tml/pronunciation.rb +3 -0
- data/lib/sts/tbx_iso_tml/see.rb +2 -0
- data/lib/sts/tbx_iso_tml/semantics.rb +2 -0
- data/lib/sts/tbx_iso_tml/source.rb +2 -0
- data/lib/sts/tbx_iso_tml/subject_field.rb +2 -0
- data/lib/sts/tbx_iso_tml/sup.rb +3 -2
- data/lib/sts/tbx_iso_tml/table_wrap.rb +0 -1
- data/lib/sts/tbx_iso_tml/table_wrap_foot.rb +2 -0
- data/lib/sts/tbx_iso_tml/td.rb +115 -24
- data/lib/sts/tbx_iso_tml/term_type.rb +2 -0
- data/lib/sts/tbx_iso_tml/th.rb +124 -30
- data/lib/sts/tbx_iso_tml/xref.rb +2 -2
- data/lib/sts/version.rb +1 -1
- data/lib/sts.rb +1 -12
- data/reference-docs/Guidelines for coding ed.2.1.pdf +0 -0
- data/reference-docs/NISO-STS-1-2-compare-1-0.pdf +0 -0
- data/reference-docs/NISOSTS-guidelines-v1.0.pdf +0 -0
- metadata +71 -14
- data/lib/sts/content_groups/helpers.rb +0 -27
- data/lib/sts/enum_values.rb +0 -17
- data/lib/sts/iso_sts/content_groups/highlight_elements.rb +0 -285
- data/lib/sts/niso_sts/content_groups/body_elements.rb +0 -50
- data/lib/sts/niso_sts/content_groups/citation_elements.rb +0 -74
- data/lib/sts/niso_sts/content_groups/emphasized_text.rb +0 -67
- data/lib/sts/niso_sts/content_groups/highlight_elements.rb +0 -51
- data/lib/sts/niso_sts/content_groups/inside_cell.rb +0 -116
- data/lib/sts/niso_sts/content_groups/p_elements.rb +0 -41
- data/lib/sts/niso_sts/content_groups/para_level.rb +0 -67
- data/lib/sts/niso_sts/content_groups/styled_content_elements.rb +0 -93
- data/lib/sts/niso_sts/content_groups/table_group_attributes.rb +0 -62
- data/lib/sts/niso_sts/content_groups.rb +0 -8
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
# Section 7: Formulae and Equations
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
Covers display formulae (`<disp-formula>`), inline formulae (`<inline-formula>`), formula groups (`<disp-formula-group>`), formula keys (`<def-list>`), and MathML (`<mml:math>`).
|
|
5
|
+
|
|
6
|
+
## Element Coverage
|
|
7
|
+
|
|
8
|
+
### Formula Containers
|
|
9
|
+
|
|
10
|
+
| Element | Guidelines Usage | sts-ruby Model | Status | Notes |
|
|
11
|
+
|---------|-----------------|---------------|--------|-------|
|
|
12
|
+
| `<disp-formula>` | Block display formula | `NisoSts::DisplayFormula` | ✅ Supported | In both NisoSts and IsoSts |
|
|
13
|
+
| `<inline-formula>` | Inline formula | `NisoSts::InlineFormula` | ✅ Supported | |
|
|
14
|
+
| `<disp-formula-group>` | Group of formulae | `NisoSts::DispFormulaGroup` | ✅ Supported | |
|
|
15
|
+
|
|
16
|
+
### Display Formula
|
|
17
|
+
|
|
18
|
+
| Attribute/Child | Guidelines Usage | In DisplayFormula | Status | Notes |
|
|
19
|
+
|----------------|-----------------|-------------------|--------|-------|
|
|
20
|
+
| `@id` | Formula identifier (formula_1 / for-1) | ✅ Mapped | OK | |
|
|
21
|
+
| `@content-type` | Content type | ✅ Mapped | OK | |
|
|
22
|
+
| `@specific-use` | Specific use | ✅ Mapped | OK | |
|
|
23
|
+
| `<label>` | Formula number "(1)" | ✅ Mapped | OK | |
|
|
24
|
+
| `<math>` (mml:math) | MathML expression | ✅ Via `TbxIsoTml::Math` | OK | |
|
|
25
|
+
| `<graphic>` | Alternative graphic | ✅ Mapped (collection) | OK | |
|
|
26
|
+
| `<preformat>` | Preformatted formula | ✅ Mapped | OK | |
|
|
27
|
+
| `<tex-math>` | TeX math | ✅ Mapped | OK | |
|
|
28
|
+
| `<alternatives>` | Alternative representations | ✅ Mapped | OK | |
|
|
29
|
+
|
|
30
|
+
### Inline Formula
|
|
31
|
+
|
|
32
|
+
| Attribute/Child | Guidelines Usage | In InlineFormula | Status | Notes |
|
|
33
|
+
|----------------|-----------------|------------------|--------|-------|
|
|
34
|
+
| `@id` | Formula identifier | ✅ Mapped | OK | |
|
|
35
|
+
| `@content-type` | Content type | ✅ Mapped | OK | |
|
|
36
|
+
| `<math>` (mml:math) | MathML expression | ✅ Via `TbxIsoTml::Math` | OK | |
|
|
37
|
+
| `<alternatives>` | Alternative representations | ✅ Mapped | OK | |
|
|
38
|
+
|
|
39
|
+
### Formula Group
|
|
40
|
+
|
|
41
|
+
| Attribute/Child | Guidelines Usage | In DispFormulaGroup | Status | Notes |
|
|
42
|
+
|----------------|-----------------|---------------------|--------|-------|
|
|
43
|
+
| `@id` | Group identifier (forg-informal-X-Y) | ✅ Mapped | OK | |
|
|
44
|
+
| `@content-type` | Content type | ✅ Mapped | OK | |
|
|
45
|
+
| `<label>` | Group label | ✅ Mapped | OK | |
|
|
46
|
+
| `<disp-formula>` | Individual formulae | ✅ Mapped (collection) | OK | |
|
|
47
|
+
| Text between formulae | e.g. ", or" | ⚠️ Needs verification | Mixed content not declared | Guidelines show text between disp-formula children |
|
|
48
|
+
|
|
49
|
+
### Formula Keys (Section 7.5)
|
|
50
|
+
|
|
51
|
+
| Element | Guidelines Usage | sts-ruby Model | Status | Notes |
|
|
52
|
+
|---------|-----------------|---------------|--------|-------|
|
|
53
|
+
| `<def-list list-content="formula">` | Formula key | ⚠️ Partial | `DefList` exists but `@list-content` not mapped | |
|
|
54
|
+
| `<label>` "where" | Key label | ✅ Mapped | OK | |
|
|
55
|
+
| `<def-item>` | Key entries | ✅ Mapped | OK | |
|
|
56
|
+
| `<term>` | Variable symbol | ✅ Mapped | OK | |
|
|
57
|
+
| `<def>` | Definition | ✅ Mapped | OK | |
|
|
58
|
+
| `<def-head>` (IEC legacy) | Key heading | ❌ Not mapped | Legacy | IEC legacy uses `<def-head>` instead of `<label>` |
|
|
59
|
+
|
|
60
|
+
## MathML Coverage
|
|
61
|
+
|
|
62
|
+
The `TbxIsoTml::Math` model supports the following MathML elements:
|
|
63
|
+
|
|
64
|
+
| MathML Element | In `TbxIsoTml::Math` | Status | Notes |
|
|
65
|
+
|---------------|---------------------|--------|-------|
|
|
66
|
+
| `@id` | ✅ | OK | |
|
|
67
|
+
| `@display` | ✅ ("block") | OK | |
|
|
68
|
+
| `<mrow>` | ✅ | OK | |
|
|
69
|
+
| `<msub>` | ✅ | OK | |
|
|
70
|
+
| `<msup>` | ✅ | OK | |
|
|
71
|
+
| `<mn>` | ✅ | OK | |
|
|
72
|
+
| `<mo>` | ✅ | OK | |
|
|
73
|
+
| `<mi>` | ✅ | OK | |
|
|
74
|
+
| `<mtext>` | ✅ | OK | |
|
|
75
|
+
| `<mfrac>` | ✅ | OK | |
|
|
76
|
+
| `<mspace>` | ✅ | OK | |
|
|
77
|
+
| `<semantics>` | ✅ | OK | |
|
|
78
|
+
| `<mstyle>` | ✅ | OK | |
|
|
79
|
+
| `<mfenced>` | ✅ | OK | |
|
|
80
|
+
| `<munderover>` | ✅ | OK | |
|
|
81
|
+
|
|
82
|
+
### MathML Elements Missing from Model
|
|
83
|
+
|
|
84
|
+
| MathML Element | Guidelines Usage | In Model | Status | Notes |
|
|
85
|
+
|---------------|-----------------|----------|--------|-------|
|
|
86
|
+
| `<munder>` | Under scripts | ✅ `TbxIsoTml::Munder` | OK | Exists as separate class |
|
|
87
|
+
| `<mover>` | Over scripts | ❌ Not in Math | Missing | |
|
|
88
|
+
| `<mtable>` | Math tables | ❌ | Missing | |
|
|
89
|
+
| `<mtr>` | Math table rows | ❌ | Missing | |
|
|
90
|
+
| `<mtd>` | Math table cells | ❌ | Missing | |
|
|
91
|
+
| `<maligngroup>` | Alignment groups | ❌ | Missing | |
|
|
92
|
+
| `<malignmark>` | Alignment marks | ❌ | Missing | |
|
|
93
|
+
| `<mglyph>` | Math glyphs | ❌ | Missing | |
|
|
94
|
+
| `<mlongdiv>` | Long division | ❌ | Missing | |
|
|
95
|
+
| `<mscarries>` | Carries | ❌ | Missing | |
|
|
96
|
+
| `<mscarry>` | Carry | ❌ | Missing | |
|
|
97
|
+
| `<msline>` | Stack line | ❌ | Missing | |
|
|
98
|
+
| `<mstack>` | Stack | ❌ | Missing | |
|
|
99
|
+
| `<menclose>` | Enclosure notation | ❌ | Missing | |
|
|
100
|
+
| `<merror>` | Error message | ❌ | Missing | |
|
|
101
|
+
| `<mmultiscripts>` | Multi-scripts | ❌ | Missing | |
|
|
102
|
+
| `<mprescripts>` | Pre-scripts | ❌ | Missing | |
|
|
103
|
+
| `<msubsup>` | Sub-superscript pair | ❌ | Missing | |
|
|
104
|
+
| `<maction>` | Math action | ❌ | Missing | |
|
|
105
|
+
| `<mpadded>` | Padded space | ❌ | Missing | |
|
|
106
|
+
| `<mphantom>` | Phantom space | ❌ | Missing | |
|
|
107
|
+
| `<annotation>` | Annotation | ❌ | Missing | Part of `<semantics>` |
|
|
108
|
+
| `<annotation-xml>` | XML annotation | ❌ | Missing | Part of `<semantics>` |
|
|
109
|
+
|
|
110
|
+
## Attribute Gaps
|
|
111
|
+
|
|
112
|
+
| Attribute | Parent | Guidelines Usage | Modeled | Status |
|
|
113
|
+
|-----------|--------|-----------------|---------|--------|
|
|
114
|
+
| `@list-content` | `<def-list>` | "formula" for formula keys | ❌ Not mapped | Missing |
|
|
115
|
+
|
|
116
|
+
## Key Gaps
|
|
117
|
+
|
|
118
|
+
- [ ] **`@list-content` not mapped on `DefList`**: Guidelines use `<def-list list-content="formula">` for formula keys and `<def-list list-content="figure">` for figure keys. This attribute is critical for distinguishing key types. Currently only `@list-type` and `@specific-use` exist.
|
|
119
|
+
|
|
120
|
+
- [ ] **`<def-head>` (IEC legacy) not supported**: IEC legacy sometimes uses `<def-head>` instead of `<label>` in definition lists.
|
|
121
|
+
|
|
122
|
+
- [ ] **Text content between `<disp-formula>` in `<disp-formula-group>`**: The guidelines show text like ", or" between formula elements. The `DispFormulaGroup` model does not declare mixed content, so this text would be lost.
|
|
123
|
+
|
|
124
|
+
- [ ] **MathML coverage is limited**: Only ~16 MathML presentation elements are modeled out of the ~35+ defined in the NISO STS schema. Complex formulae using `<mover>`, `<mtable>`, `<menclose>`, `<mmultiscripts>`, etc. will not round-trip correctly. The guidelines explicitly note "we assume that this will be handled by a specialized WYSIWYG tool" -- but for XML round-tripping, more complete MathML support is needed.
|
|
125
|
+
|
|
126
|
+
- [ ] **`<annotation>` / `<annotation-xml>` not in `<semantics>`**: The `Semantics` model needs to be checked for completeness.
|
|
127
|
+
|
|
128
|
+
- [ ] **`<mml:math>` namespace handling**: The MathML elements in guidelines use `mml:` prefix. `TbxIsoTml::Math` uses `namespace ::Sts::Namespaces::MathmlNamespace`. Need to verify that this correctly handles the `mml:math`, `mml:mrow`, etc. prefixed elements.
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
# Section 10: References
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
Covers internal cross-references (`<xref>`), external references (`<std>`, `<mixed-citation>`), footnotes (`<fn>`), URLs (`<uri>`, `<ext-link>`), bibliography structure, and reference elements.
|
|
5
|
+
|
|
6
|
+
## Element Coverage
|
|
7
|
+
|
|
8
|
+
### Internal Cross-References (Section 10.1)
|
|
9
|
+
|
|
10
|
+
| Element | Guidelines Usage | sts-ruby Model | Status | Notes |
|
|
11
|
+
|---------|-----------------|---------------|--------|-------|
|
|
12
|
+
| `<xref>` | Cross-reference element | `TbxIsoTml::Xref` | ✅ Supported | |
|
|
13
|
+
| `@ref-type` | Type of target | ✅ Mapped | OK | Values: app, bibr, disp-formula, fig, fn, list, sec, table, table-fn, other |
|
|
14
|
+
| `@rid` | ID of target | ✅ Mapped | OK | |
|
|
15
|
+
| `<sup>` in `<xref>` | Superscript footnote refs | ✅ Mapped | OK | |
|
|
16
|
+
| `text content` | Reference text | ✅ Mapped | OK | |
|
|
17
|
+
|
|
18
|
+
### External References (Section 10.2)
|
|
19
|
+
|
|
20
|
+
| Element | Guidelines Usage | sts-ruby Model | Status | Notes |
|
|
21
|
+
|---------|-----------------|---------------|--------|-------|
|
|
22
|
+
| `<std>` | Reference to a standard | `NisoSts::ReferenceStandard` | ✅ Supported | |
|
|
23
|
+
| `@type` on `<std>` | dated/undated | ✅ Mapped | OK | |
|
|
24
|
+
| `@std-id` on `<std>` | Standard ID | ✅ Mapped | OK | |
|
|
25
|
+
| `<std-ref>` | Standard reference text | `NisoSts::StandardRef` | ✅ Supported | |
|
|
26
|
+
| `<std-id>` in `<std>` | Standard identifier | ✅ Mapped via `StdId` | OK | |
|
|
27
|
+
| `<std-id-group>` | Group of IDs | ✅ Mapped | OK | |
|
|
28
|
+
| `<title>` in `<std>` | Title of referenced standard | ✅ Mapped | OK | |
|
|
29
|
+
| `<mixed-citation>` | Non-standard reference | `NisoSts::MixedCitation` | ✅ Supported | Rich content model |
|
|
30
|
+
| `<uri>` | URL references | `NisoSts::Uri` | ✅ Supported | |
|
|
31
|
+
| `<ext-link>` | External links | `NisoSts::ExtLink` | ✅ Supported | With `@xlink:href` |
|
|
32
|
+
|
|
33
|
+
### Footnotes (Section 10.1.4)
|
|
34
|
+
|
|
35
|
+
| Element | Guidelines Usage | sts-ruby Model | Status | Notes |
|
|
36
|
+
|---------|-----------------|---------------|--------|-------|
|
|
37
|
+
| `<fn>` | Footnote content | `NisoSts::Fn`, `TbxIsoTml::Fn` | ✅ Supported | |
|
|
38
|
+
| `@id` on `<fn>` | Footnote ID | ✅ Mapped | OK | |
|
|
39
|
+
| `<label>` in `<fn>` | Footnote label | ✅ Mapped | OK | |
|
|
40
|
+
| `<p>` in `<fn>` | Footnote text | ✅ Mapped | OK | |
|
|
41
|
+
| `<fn-group>` | Footnote group (IEC legacy) | `NisoSts::FnGroup`, `TbxIsoTml::FnGroup` | ✅ Supported | |
|
|
42
|
+
|
|
43
|
+
### Bibliography (Section 4.4.3)
|
|
44
|
+
|
|
45
|
+
| Element | Guidelines Usage | sts-ruby Model | Status | Notes |
|
|
46
|
+
|---------|-----------------|---------------|--------|-------|
|
|
47
|
+
| `<ref-list>` | Bibliography container | `NisoSts::ReferenceList` | ✅ Supported | |
|
|
48
|
+
| `@content-type="bibl"` | Bibliography marker | ✅ Mapped | OK | |
|
|
49
|
+
| `@id` | Bibliography ID (sec_bibl / sec-bibliography) | ✅ Mapped | OK | |
|
|
50
|
+
| `<title>` | "Bibliography" | ✅ Mapped | OK | |
|
|
51
|
+
| `<ref>` | Individual reference | `NisoSts::Reference` | ✅ Supported | |
|
|
52
|
+
| `@id` on `<ref>` | Reference ID (biblref_1 / bib-1) | ✅ Mapped | OK | |
|
|
53
|
+
| `<label>` in `<ref>` | Reference label "[1]" | ✅ Mapped | OK | |
|
|
54
|
+
| `<std>` in `<ref>` | Standard reference | ✅ Mapped | OK | |
|
|
55
|
+
| `<mixed-citation>` in `<ref>` | Non-standard reference | ✅ Mapped | OK | |
|
|
56
|
+
| Nested `<ref-list>` | Subdivided bibliography | ✅ Mapped (collection) | OK | |
|
|
57
|
+
| `<non-normative-note>` in `<ref>` | Notes on references | ❌ Not mapped in Reference | Missing | Guidelines show this in Section 4.4.3 |
|
|
58
|
+
|
|
59
|
+
### Abbreviations (Section 10.1.5)
|
|
60
|
+
|
|
61
|
+
| Element | Guidelines Usage | sts-ruby Model | Status | Notes |
|
|
62
|
+
|---------|-----------------|---------------|--------|-------|
|
|
63
|
+
| `<def-list list-content="abbreviation">` | Abbreviation list | ⚠️ Partial | DefList exists but `@list-content` not mapped | |
|
|
64
|
+
| `<def-item>` with `@id` | Abbreviation entry | ✅ Mapped (DefItem has `@specific-use` but not `@id`) | ⚠️ Partial | |
|
|
65
|
+
| `<term>` | Abbreviation | ✅ Mapped | OK | |
|
|
66
|
+
| `<def>` | Definition | ✅ Mapped | OK | |
|
|
67
|
+
|
|
68
|
+
## Attribute Gaps
|
|
69
|
+
|
|
70
|
+
| Attribute | Parent Element | Guidelines Usage | Modeled | Status |
|
|
71
|
+
|-----------|---------------|-----------------|---------|--------|
|
|
72
|
+
| `@ref-type` on `<xref>` | All cross-references | ✅ | OK | |
|
|
73
|
+
| `@rid` on `<xref>` | Target ID | ✅ | OK | |
|
|
74
|
+
| `@type` on `<std>` | dated/undated | ✅ | OK | |
|
|
75
|
+
| `@std-id-link-type` on `<std-id>` | Link type (urn, id, ooi) | ✅ | OK | |
|
|
76
|
+
| `@std-id-type` on `<std-id>` | ID type (dated, undated) | ✅ | OK | |
|
|
77
|
+
| `@originator` on `<std-id>` | Originating body | ❌ Not mapped | Missing | IEC metadata example shows this |
|
|
78
|
+
| `@xlink:type` on `<mixed-citation>` | XLink type | ✅ | OK | |
|
|
79
|
+
| `@publication-type` on `<mixed-citation>` | Publication type | ✅ | OK | |
|
|
80
|
+
| `@content-type` on `<ref>` | Reference type | ✅ | OK | |
|
|
81
|
+
| `@specific-use` on `<ref>` | IEC delete marker | ❌ Not mapped | Missing | IEC amendments use `@specific-use="delete"` on `<ref>` |
|
|
82
|
+
| `@list-content` on `<def-list>` | "abbreviation" | ❌ Not mapped | Missing | |
|
|
83
|
+
|
|
84
|
+
## ReferenceStandard Gaps
|
|
85
|
+
|
|
86
|
+
The `ReferenceStandard` model maps `<std>` content:
|
|
87
|
+
|
|
88
|
+
| Feature | Guidelines Usage | In ReferenceStandard | Status |
|
|
89
|
+
|---------|-----------------|---------------------|--------|
|
|
90
|
+
| `<std-ref>` | Standard reference text | ✅ | OK |
|
|
91
|
+
| `<title>` | Standard title | ✅ | OK |
|
|
92
|
+
| `<std-id>` | Standard identifier | ✅ Via `StdId` | OK |
|
|
93
|
+
| `<std-id-group>` | ID group | ✅ | OK |
|
|
94
|
+
| `<fn>` | Footnotes | ✅ | OK |
|
|
95
|
+
| `<xref>` | Cross-references | ✅ | OK |
|
|
96
|
+
| `<bold>` | Bold text | ✅ | OK |
|
|
97
|
+
| `<styled-content>` | Styled content | ❌ Not mapped | IEC amendments use `<styled-content specific-use="delete">` inside `<std>` |
|
|
98
|
+
| `<italic>` | Italic text | ❌ Not mapped | May appear in std content |
|
|
99
|
+
| Mixed text content | e.g. ", 7.3.1" after std-ref | ✅ (via mixed_content) | OK |
|
|
100
|
+
|
|
101
|
+
## Key Gaps
|
|
102
|
+
|
|
103
|
+
- [ ] **`<non-normative-note>` not mapped in `Reference`**: Guidelines show `<non-normative-note>` inside `<ref>` in normative references (Section 4.3.3 case 2 example with "W3C XML Schema").
|
|
104
|
+
|
|
105
|
+
- [ ] **`@list-content` not mapped on `DefList`**: Critical for abbreviation lists (Section 10.1.5), formula keys (Section 7.5), and figure keys (Section 8.3).
|
|
106
|
+
|
|
107
|
+
- [ ] **`@originator` missing on `StdId`**: IEC metadata example shows `<std-id originator="IEC" std-id-link-type="urn" std-id-type="dated">`.
|
|
108
|
+
|
|
109
|
+
- [ ] **`<styled-content>` not in `ReferenceStandard`**: IEC amendments use `<styled-content specific-use="delete">` and `<styled-content specific-use="insert">` inside `<std>` elements (Section 5.5.1 examples).
|
|
110
|
+
|
|
111
|
+
- [ ] **`@specific-use` not on `Reference`**: IEC amendments use `<ref specific-use="delete">` to mark deleted references.
|
|
112
|
+
|
|
113
|
+
- [ ] **`DefItem` missing `@id`**: Abbreviation cross-references use `<def-item id="abb-acsi">` (Section 10.1.5). Currently `DefItem` has `@specific-use` but not `@id`.
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
# Section 9: Terms and Definitions
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
Covers terminological entries using TBX (ISO standard) and `<term-display>` (IEC fallback), including `<term-sec>`, `<tbx:termEntry>`, `<tbx:langSet>`, `<tbx:tig>`, `<tbx:term>`, `<tbx:definition>`, `<tbx:note>`, `<tbx:example>`, `<tbx:source>`, `<tbx:entailedTerm>`, `<tbx:see>`, `<tbx:subjectField>`, and `<term-display>`.
|
|
5
|
+
|
|
6
|
+
## Element Coverage
|
|
7
|
+
|
|
8
|
+
### Terminological Entry Container
|
|
9
|
+
|
|
10
|
+
| Element | Guidelines Usage | sts-ruby Model | Status | Notes |
|
|
11
|
+
|---------|-----------------|---------------|--------|-------|
|
|
12
|
+
| `<term-sec>` | Terminological entry section | `NisoSts::TermSection`, `IsoSts::TermSec` | ✅ Supported | |
|
|
13
|
+
| `@id` on `<term-sec>` | Entry ID (sec_3.1 / con-3.1.3) | ✅ Mapped | OK | |
|
|
14
|
+
| `<label>` in `<term-sec>` | Entry number | ✅ Mapped | OK | |
|
|
15
|
+
| `<tbx:termEntry>` | TBX term entry | `TbxIsoTml::TermEntry` | ✅ Supported | With `@id` |
|
|
16
|
+
| `<term-display>` | Appearance-oriented entry | `NisoSts::TermDisplay` | ✅ Supported | IEC fallback |
|
|
17
|
+
|
|
18
|
+
### TBX langSet
|
|
19
|
+
|
|
20
|
+
| Element | Guidelines Usage | sts-ruby Model | Status | Notes |
|
|
21
|
+
|---------|-----------------|---------------|--------|-------|
|
|
22
|
+
| `<tbx:langSet>` | Language set | `TbxIsoTml::LangSet` | ✅ Supported | |
|
|
23
|
+
| `@xml:lang` on `<tbx:langSet>` | Language | ✅ Mapped (`lang`) | OK | |
|
|
24
|
+
|
|
25
|
+
### TBX Definition
|
|
26
|
+
|
|
27
|
+
| Element | Guidelines Usage | sts-ruby Model | Status | Notes |
|
|
28
|
+
|---------|-----------------|---------------|--------|-------|
|
|
29
|
+
| `<tbx:definition>` | Term definition | `TbxIsoTml::Definition` | ✅ Supported | |
|
|
30
|
+
| `<break/>` in definition | Line break in definition | ⚠️ Needs verification | Definition uses mixed content? | |
|
|
31
|
+
|
|
32
|
+
### TBX Term Information Group
|
|
33
|
+
|
|
34
|
+
| Element | Guidelines Usage | sts-ruby Model | Status | Notes |
|
|
35
|
+
|---------|-----------------|---------------|--------|-------|
|
|
36
|
+
| `<tbx:tig>` | Term information group | `TbxIsoTml::TermInformationGroup` | ✅ Supported | |
|
|
37
|
+
| `@id` on `<tbx:tig>` | TIG identifier | ✅ Mapped | OK | |
|
|
38
|
+
| `<tbx:term>` | Term text | `TbxIsoTml::Term` | ✅ Supported | |
|
|
39
|
+
| `@id` on `<tbx:term>` | Term ID (IEC: ter-sound_pressurep) | ⚠️ Check | Term class exists | |
|
|
40
|
+
| `<tbx:partOfSpeech>` | Part of speech | `TbxIsoTml::PartOfSpeech` | ✅ Supported | With `@value` (noun, verb, adj, adv) |
|
|
41
|
+
| `<tbx:normativeAuthorization>` | Term status | `TbxIsoTml::NormativeAuthorization` | ✅ Supported | With `@value` (preferredTerm, admittedTerm, deprecatedTerm) |
|
|
42
|
+
| `<tbx:termType>` | Term type | `TbxIsoTml::TermType` | ✅ Supported | With `@value` (acronym, abbreviation, fullForm, symbol, formula, equation) |
|
|
43
|
+
| `<tbx:grammaticalNumber>` | Grammatical number | `TbxIsoTml::GrammaticalNumber` | ✅ Supported | |
|
|
44
|
+
| `<tbx:grammaticalGender>` | Grammatical gender | `TbxIsoTml::GrammaticalGender` | ✅ Supported | |
|
|
45
|
+
|
|
46
|
+
### TBX Notes and Examples
|
|
47
|
+
|
|
48
|
+
| Element | Guidelines Usage | sts-ruby Model | Status | Notes |
|
|
49
|
+
|---------|-----------------|---------------|--------|-------|
|
|
50
|
+
| `<tbx:note>` | Notes on terms | `TbxIsoTml::Note` | ✅ Supported | With `@id` |
|
|
51
|
+
| `<tbx:example>` | Examples | `TbxIsoTml::Example` | ✅ Supported | |
|
|
52
|
+
|
|
53
|
+
### TBX Cross-References
|
|
54
|
+
|
|
55
|
+
| Element | Guidelines Usage | sts-ruby Model | Status | Notes |
|
|
56
|
+
|---------|-----------------|---------------|--------|-------|
|
|
57
|
+
| `<tbx:entailedTerm>` | Cross-ref between terms | `TbxIsoTml::EntailedTerm` | ✅ Supported | With `@target` |
|
|
58
|
+
| `@target` | Internal reference | ✅ Mapped | OK | |
|
|
59
|
+
| `@xtarget` | External reference | ⚠️ Check | May not be mapped | Guidelines mention `@xtarget` for external term refs |
|
|
60
|
+
| `<tbx:see>` | Reference to other clauses | `TbxIsoTml::See` | ✅ Supported | With `@target` |
|
|
61
|
+
| `<tbx:crossReference>` | Cross reference | `TbxIsoTml::CrossReference` | ✅ Supported | |
|
|
62
|
+
|
|
63
|
+
### TBX Source and Subject
|
|
64
|
+
|
|
65
|
+
| Element | Guidelines Usage | sts-ruby Model | Status | Notes |
|
|
66
|
+
|---------|-----------------|---------------|--------|-------|
|
|
67
|
+
| `<tbx:source>` | Source of definition | `TbxIsoTml::Source` | ✅ Supported | |
|
|
68
|
+
| `<tbx:subjectField>` | Subject field | `TbxIsoTml::SubjectField` | ✅ Supported | |
|
|
69
|
+
|
|
70
|
+
### term-display (IEC, Section 9.4)
|
|
71
|
+
|
|
72
|
+
| Element | Guidelines Usage | sts-ruby Model | Status | Notes |
|
|
73
|
+
|---------|-----------------|---------------|--------|-------|
|
|
74
|
+
| `<term-display>` | Appearance-oriented entry | `NisoSts::TermDisplay` | ✅ Supported | |
|
|
75
|
+
| `<p>` in term-display | Entry text | ✅ Mapped | OK | |
|
|
76
|
+
| `<term>` in term-display | Term | ✅ Via `NisoSts::Term` | OK | But check if `term-display` maps `<term>` -- currently only maps `<p>` and `<non-normative-note>` |
|
|
77
|
+
| `<def>` in term-display | Definition | ❌ Not mapped | Missing | Guidelines show `<def>` inside `<term-display>` |
|
|
78
|
+
| `<list>` in term-display | Lists in definitions | ❌ Not mapped | Missing | |
|
|
79
|
+
| `<xref>` in term-display | Cross-references | ❌ Not mapped | Missing | |
|
|
80
|
+
|
|
81
|
+
## Attribute Gaps
|
|
82
|
+
|
|
83
|
+
| Attribute | Parent Element | Guidelines Usage | Modeled | Status |
|
|
84
|
+
|-----------|---------------|-----------------|---------|--------|
|
|
85
|
+
| `@id` on `<tbx:note>` | Note ID (nte-3.1.3-1) | ✅ Mapped | OK | |
|
|
86
|
+
| `@id` on `<tbx:term>` | Term ID (IEC: ter-rated_capacity) | ⚠️ Check | Need to verify `Term` has `@id` | |
|
|
87
|
+
| `@value` on `<tbx:partOfSpeech>` | noun, verb, adj, adv | ✅ Mapped | OK | |
|
|
88
|
+
| `@value` on `<tbx:normativeAuthorization>` | preferredTerm, admittedTerm, deprecatedTerm | ✅ Mapped | OK | |
|
|
89
|
+
| `@value` on `<tbx:termType>` | acronym, abbreviation, fullForm, symbol, formula, equation | ✅ Mapped | OK | |
|
|
90
|
+
| `@target` on `<tbx:entailedTerm>` | Internal term ref | ✅ Mapped | OK | |
|
|
91
|
+
| `@xtarget` on `<tbx:entailedTerm>` | External term ref | ⚠️ Check | May not be mapped | |
|
|
92
|
+
| `@target` on `<tbx:see>` | See target | ✅ Mapped | OK | |
|
|
93
|
+
|
|
94
|
+
## TermDisplay Content Gaps
|
|
95
|
+
|
|
96
|
+
The `TermDisplay` model is severely limited. Guidelines Section 9.4 shows rich content:
|
|
97
|
+
|
|
98
|
+
| Element | In Guidelines `<term-display>` | In TermDisplay model | Status |
|
|
99
|
+
|---------|-------------------------------|---------------------|--------|
|
|
100
|
+
| `<p>` | Paragraph text | ✅ | OK |
|
|
101
|
+
| `<non-normative-note>` | Notes | ✅ | OK |
|
|
102
|
+
| `<term>` | Term text with `@id` | ❌ Not mapped | Missing |
|
|
103
|
+
| `<def>` | Definition with `<p>` children | ❌ Not mapped | Missing |
|
|
104
|
+
| `<list>` | Lists in definition | ❌ Not mapped | Missing |
|
|
105
|
+
| `<xref>` | Cross-references | ❌ Not mapped | Missing |
|
|
106
|
+
| `<label>` | Labels | ❌ Not mapped | Missing |
|
|
107
|
+
| `<styled-content>` | Styled content | ❌ Not mapped | Missing |
|
|
108
|
+
| `<italic>` | Italic text | ❌ Not mapped | Missing |
|
|
109
|
+
| `<fig>` | Figure references | ❌ Not mapped | Missing |
|
|
110
|
+
|
|
111
|
+
## Key Gaps
|
|
112
|
+
|
|
113
|
+
- [ ] **`TermDisplay` is severely incomplete**: Only has `<p>` and `<non-normative-note>`. Missing `<term>`, `<def>`, `<list>`, `<xref>`, `<label>`, `<styled-content>`, `<italic>`, `<fig>`. IEC documents that use `<term-display>` (amendments, special series) will lose content.
|
|
114
|
+
|
|
115
|
+
- [ ] **`<def>` not in `TermDisplay`**: The guidelines (Section 9.4) clearly show `<def><p>...</p></def>` inside `<term-display>`.
|
|
116
|
+
|
|
117
|
+
- [ ] **`<term>` not in `TermDisplay`**: Guidelines show `<term id="ter-normal_load">normal load</term>` inside `<term-display>`.
|
|
118
|
+
|
|
119
|
+
- [ ] **`@xtarget` on `EntailedTerm`**: Guidelines mention `@xtarget` for cross-references to terms external to the document. Need to verify this is mapped.
|
|
120
|
+
|
|
121
|
+
- [ ] **`<std>` inside `<tbx:source>`**: Guidelines show `<tbx:source>SOURCE: <std>...</std></tbx:source>`. Need to verify that the `Source` model supports inline `<std>` elements.
|
|
122
|
+
|
|
123
|
+
- [ ] **`<tbx:geographicalUsage>` and `<tbx:grammaticalGender>`**: Guidelines note these "will probably be used in the future". Currently modeled (both classes exist), which is good preparation.
|
|
124
|
+
|
|
125
|
+
- [ ] **`<tbx:pronunciation>`**: Not mentioned heavily in guidelines but exists in `TermInformationGroup`. Acceptable as prepared for future use.
|
|
126
|
+
|
|
127
|
+
- [ ] **`Section` missing `<term-sec>` children in `IsoSts::Sec`**: `IsoSts::Sec` does have `term_sec` mapped, so this is OK.
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
# Section A: Metadata Usage
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
Covers the detailed metadata structures used by ISO (Section A.1), IEC (Section A.2), and National bodies (Section A.3), including specific elements and attributes shown in the complete metadata examples.
|
|
5
|
+
|
|
6
|
+
## ISO Metadata (Section A.1)
|
|
7
|
+
|
|
8
|
+
### `<std-meta>` Complete Element Set
|
|
9
|
+
|
|
10
|
+
| Element | In Guidelines Example | In MetadataStd | Status | Notes |
|
|
11
|
+
|---------|----------------------|---------------|--------|-------|
|
|
12
|
+
| `<title-wrap xml:lang="en">` | Multi-language titles | ✅ Collection | OK | |
|
|
13
|
+
| `<intro>` | Title intro | ✅ | OK | |
|
|
14
|
+
| `<main>` | Title main | ✅ | OK | |
|
|
15
|
+
| `<compl>` | Title complementary | ✅ | OK | |
|
|
16
|
+
| `<full>` | Title full | ✅ | OK | |
|
|
17
|
+
| `<proj-id>` | Project ID | ✅ | OK | |
|
|
18
|
+
| `<release-version>` | DIS/FIS/IS | ✅ | OK | |
|
|
19
|
+
| `<std-ident>` | Standard identification | ✅ | OK | |
|
|
20
|
+
| `<originator>` | ISO/IEC | ✅ | OK | |
|
|
21
|
+
| `<doc-type>` | IS, TR, TS, etc. | ✅ | OK | |
|
|
22
|
+
| `<doc-number>` | Document number | ✅ | OK | |
|
|
23
|
+
| `<part-number/>` | Part number (can be empty) | ✅ | OK | |
|
|
24
|
+
| `<edition>` | Edition number | ✅ | OK | |
|
|
25
|
+
| `<version>` | Version number | ✅ | OK | |
|
|
26
|
+
| `<std-org>` | Standards organization | ✅ | OK | |
|
|
27
|
+
| `@std-org-type` | sdo | ✅ | OK | |
|
|
28
|
+
| `<std-org-abbrev>` | ISO | ✅ | OK | |
|
|
29
|
+
| `<content-language>` | en | ✅ | OK | |
|
|
30
|
+
| `<std-ref type="dated">` | Dated reference | ✅ | OK | |
|
|
31
|
+
| `<std-ref type="undated">` | Undated reference | ✅ | OK | |
|
|
32
|
+
| `<doc-ref>` | ISO/DIS 16936-1(en) | ✅ | OK | |
|
|
33
|
+
| `<comm-ref>` | Committee reference | ✅ | OK | |
|
|
34
|
+
| `<secretariat>` | Secretariat | ✅ | OK | |
|
|
35
|
+
| `<ics>` | ICS code | ✅ | OK | |
|
|
36
|
+
| `<page-count count="8"/>` | Page count | ✅ | OK | |
|
|
37
|
+
| `<std-xref type="revises">` | Cross-reference | ✅ | OK | |
|
|
38
|
+
| `<permissions>` | Copyright | ✅ | OK | |
|
|
39
|
+
| `<copyright-statement>` | Copyright statement | ✅ (string) | OK | |
|
|
40
|
+
| `<copyright-year>` | Copyright year | ✅ | OK | |
|
|
41
|
+
| `<copyright-holder>` | Copyright holder | ✅ | OK | |
|
|
42
|
+
| `<self-uri>` | Self URI | ✅ | OK | |
|
|
43
|
+
| `<custom-meta-group>` | Custom metadata | ✅ | OK | |
|
|
44
|
+
| `<custom-meta>` | Custom metadata entry | ✅ | OK | |
|
|
45
|
+
| `<meta-name>` | Metadata key | ✅ | OK | |
|
|
46
|
+
| `<meta-value>` | Metadata value | ✅ | OK | |
|
|
47
|
+
| `<abstract>` | Abstract | ❌ Not in MetadataStd | Missing | ISO example does NOT show this, but IEC does |
|
|
48
|
+
| `<release-date>` | Release date | ✅ | OK | But ISO example does not show `@date-type` |
|
|
49
|
+
|
|
50
|
+
## IEC Metadata (Section A.2)
|
|
51
|
+
|
|
52
|
+
### IEC-Specific Elements in `<std-meta>`
|
|
53
|
+
|
|
54
|
+
| Element | In Guidelines Example | In MetadataStd | Status | Notes |
|
|
55
|
+
|---------|----------------------|---------------|--------|-------|
|
|
56
|
+
| `<permissions>` with `<license>` | License block | ⚠️ Permissions missing `<license>` | Missing | IEC requires full license text |
|
|
57
|
+
| `<inline-graphic/>` in copyright-statement | Copyright symbol | ❌ copyright-statement is string | Missing | Cannot contain inline-graphic |
|
|
58
|
+
| `<br/>` in copyright-statement | Line break | ❌ copyright-statement is string | Missing | |
|
|
59
|
+
| `<license>` | License block | ❌ Not in Permissions | Missing | |
|
|
60
|
+
| `<license-p>` | License paragraph | ❌ Not in Permissions | Missing | |
|
|
61
|
+
| `<address>` in `<license-p>` | Contact address | ❌ Not available | Missing | |
|
|
62
|
+
| `<addr-line>` in `<address>` | Address line | `NisoSts::AddrLine` exists | OK class but not in permissions context | |
|
|
63
|
+
| `<license_ref>` | License reference URL | ❌ Not in Permissions | Missing | |
|
|
64
|
+
| `<proj-id>` with namespace prefix | "iec:proj:19106" | ✅ | OK | |
|
|
65
|
+
| `<release-version>` | IS | ✅ | OK | |
|
|
66
|
+
| `<std-id-group>` inside `<std-ident>` | Group of IDs | ✅ | OK | |
|
|
67
|
+
| `<std-id>` with `@originator` | Originator attribute | ❌ Not on StdId | Missing | |
|
|
68
|
+
| `<isbn>` in `<std-ident>` | ISBN | ❌ Not in StandardIdentification | Missing | IEC shows `<isbn>9782832263464</isbn>` inside `<std-ident>` |
|
|
69
|
+
| `<suppl-type/>` | Supplement type | ❌ Not in StandardIdentification | Missing | |
|
|
70
|
+
| `<suppl-number/>` | Supplement number | ❌ Not in StandardIdentification | Missing | |
|
|
71
|
+
| `<std-org>` | Organization | ✅ | OK | |
|
|
72
|
+
| `<std-org-abbrev>` | IEC | ✅ | OK | |
|
|
73
|
+
| `<content-language>` | en | ✅ | OK | |
|
|
74
|
+
| `<release-date date-type="published">` | Release date with type | ✅ Has `@date-type` | OK | |
|
|
75
|
+
| `<meta-date type="stability-date">` | Meta date | ✅ Has `@type` | OK | |
|
|
76
|
+
| `<comm-ref>` with `@id` | Committee with ID | ❌ comm-ref is plain string | Missing | IEC: `<comm-ref id="id_1215">TC 25</comm-ref>` |
|
|
77
|
+
| Multiple `<ics>` | Multiple ICS codes | ✅ Collection | OK | |
|
|
78
|
+
| `<counts>` | Counts wrapper | ❌ Not modeled | Missing | IEC: `<counts><page-count count="149"/></counts>` |
|
|
79
|
+
| `<self-uri xlink:type="simple">` | Self URI with xlink type | ✅ Has SelfUri | OK | |
|
|
80
|
+
| `<abstract xml:lang="en">` | Abstract | ❌ Not in MetadataStd | Missing | |
|
|
81
|
+
| `<custom-meta-group>` | Custom metadata | ✅ | OK | |
|
|
82
|
+
|
|
83
|
+
## National Metadata (Section A.3)
|
|
84
|
+
|
|
85
|
+
The guidelines mention national metadata can use multiple `<std-meta>` instances. The `NatMeta` class exists and has similar structure to `RegMeta`.
|
|
86
|
+
|
|
87
|
+
| Feature | In NatMeta | Status | Notes |
|
|
88
|
+
|---------|-----------|--------|-------|
|
|
89
|
+
| `<title-wrap>` | ✅ Collection | OK | |
|
|
90
|
+
| `<std-ident>` | ✅ | OK | |
|
|
91
|
+
| `<permissions>` | ✅ | OK | |
|
|
92
|
+
| `<custom-meta-group>` | ✅ Collection | OK | |
|
|
93
|
+
| `@id` on nat-meta | ❌ Not mapped | Missing | |
|
|
94
|
+
|
|
95
|
+
## Key Gaps
|
|
96
|
+
|
|
97
|
+
- [ ] **`<license>` block missing from `Permissions`**: The IEC metadata example (Section A.2) shows a full license block with `<license>`, `<license-p>`, `<address>`, `<addr-line>`, and `<license_ref>`. The `License` and `LicenseP` classes exist but are NOT wired into the `Permissions` model.
|
|
98
|
+
|
|
99
|
+
- [ ] **`<copyright-statement>` needs rich content**: Currently modeled as plain string. IEC example shows it containing `<inline-graphic/>`, `<br/>`, and mixed text. Needs to be a structured element.
|
|
100
|
+
|
|
101
|
+
- [ ] **`<copyright-holder>` should be collection**: ISO example shows multiple `<copyright-holder>` elements in a single `<permissions>` block.
|
|
102
|
+
|
|
103
|
+
- [ ] **`<isbn>` missing from `StandardIdentification`**: IEC example shows `<isbn>` inside `<std-ident>`.
|
|
104
|
+
|
|
105
|
+
- [ ] **`<suppl-type>`, `<suppl-number>` missing from `StandardIdentification`**: IEC shows these empty elements inside `<std-ident>`.
|
|
106
|
+
|
|
107
|
+
- [ ] **`<counts>` wrapper not modeled**: IEC uses `<counts><page-count/></counts>` instead of bare `<page-count>`. Neither `MetadataStd` nor `MetadataIso` maps `<counts>`.
|
|
108
|
+
|
|
109
|
+
- [ ] **`<abstract>` not in metadata models**: IEC shows `<abstract xml:lang="en"><p>...</p></abstract>` inside `<std-meta>`.
|
|
110
|
+
|
|
111
|
+
- [ ] **`<comm-ref>` should support `@id`**: IEC: `<comm-ref id="id_1215">TC 25</comm-ref>`. Currently plain string.
|
|
112
|
+
|
|
113
|
+
- [ ] **`@originator` missing from `StdId`**: IEC: `<std-id originator="IEC" std-id-link-type="id" std-id-type="dated">`.
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
# Section 10: ISO-IEC Variant and Amendments
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
Covers the ISO/IEC-specific features: IEC amendments with `<editing-instruction>`, ISO amendments, IEC Corrigenda, IEC Interpretation Sheets (ISH), IEC Software supplements, and the ID schemes for both IEC and ISO.
|
|
5
|
+
|
|
6
|
+
## ISO vs IEC Variant Support
|
|
7
|
+
|
|
8
|
+
### Structural Differences
|
|
9
|
+
|
|
10
|
+
| Feature | ISO Variant | IEC Variant | sts-ruby Support | Notes |
|
|
11
|
+
|---------|------------|-------------|-----------------|-------|
|
|
12
|
+
| Root element | `<standard>` | `<standard>` | ✅ Both | NisoSts and IsoSts variants |
|
|
13
|
+
| Metadata element | `<iso-meta>` (legacy), `<std-meta>` | `<std-meta>` | ✅ Both | |
|
|
14
|
+
| ID separator | Underscore (`sec_1`) | Dash (`sec-1`) | ✅ Values in `@id` | IDs are free-form strings |
|
|
15
|
+
| `<annex-type>` | Text: "(informative)" | Not rendered (from `@content-type`) | ✅ Both approaches | |
|
|
16
|
+
| `@content-type` on `<app>` | "inform-annex" / "normative-annex" | "inform" / "norm" (legacy), "informative" / "normative" (future) | ✅ Mapped | |
|
|
17
|
+
| `<bold>` in table headers | Yes | No (auto-bold, use `<roman>` for plain) | ✅ Both elements exist | |
|
|
18
|
+
| Footnote placement | At point of use | `<fn-group>` in `<back>` (legacy) | ✅ Both approaches | |
|
|
19
|
+
| Amendment style | Separate text, no semantic instructions | `<editing-instruction>` with types | ⚠️ Partial | EditingInstruction model incomplete |
|
|
20
|
+
| Formula groups | Not used | Used (IEC) | ✅ DispFormulaGroup exists | |
|
|
21
|
+
|
|
22
|
+
### ID Schemes
|
|
23
|
+
|
|
24
|
+
#### ISO ID Scheme (from guidelines Annex)
|
|
25
|
+
|
|
26
|
+
| Element | Pattern | sts-ruby Support | Notes |
|
|
27
|
+
|---------|---------|-----------------|-------|
|
|
28
|
+
| Section: `sec_1`, `sec_1.2.1` | `sec_{number}` | ✅ String IDs | Free-form string attribute |
|
|
29
|
+
| Foreword: `sec_foreword` | `sec_foreword` | ✅ | |
|
|
30
|
+
| Introduction: `sec_intro` | `sec_intro` | ✅ | |
|
|
31
|
+
| Bibliography: `sec_bibl` | `sec_bibl` | ✅ | |
|
|
32
|
+
| Annex: `sec_A`, `sec_B.1` | `sec_{letter}` | ✅ | |
|
|
33
|
+
| Bibliography ref: `biblref_1` | `biblref_{label}` | ✅ | |
|
|
34
|
+
| Term: `term_3.1` | `term_{number}` | ✅ | |
|
|
35
|
+
| Table: `tab_1` | `tab_{number}` | ✅ | |
|
|
36
|
+
| Figure: `fig_1` | `fig_{number}` | ✅ | |
|
|
37
|
+
| Formula: `formula_1` | `formula_{number}` | ✅ | |
|
|
38
|
+
| Footnote: `fn_1` | `fn_{number}` | ✅ | |
|
|
39
|
+
| Table footnote: `table-fn_1.1` | `table-fn_{table}.{n}` | ✅ | |
|
|
40
|
+
|
|
41
|
+
#### IEC ID Scheme
|
|
42
|
+
|
|
43
|
+
| Element | Pattern | sts-ruby Support | Notes |
|
|
44
|
+
|---------|---------|-----------------|-------|
|
|
45
|
+
| Section: `sec-1` | `sec-{number}` | ✅ String IDs | |
|
|
46
|
+
| Foreword: `sec-foreword` | `sec-foreword` | ✅ | |
|
|
47
|
+
| Introduction: `sec-introduction` | `sec-introduction` | ✅ | |
|
|
48
|
+
| Bibliography: `sec-bibliography` | `sec-bibliography` | ✅ | |
|
|
49
|
+
| Index: `sec-index` | `sec-index` | ✅ | |
|
|
50
|
+
| Annex: `anx-A` | `anx-{letter}` | ✅ | |
|
|
51
|
+
| Bibliography ref: `bib-1` | `bib-{label or seq}` | ✅ | |
|
|
52
|
+
| Concept: `con-3.2.1` | `con-{number}` | ✅ | |
|
|
53
|
+
| Term entry: `te-3.2.1` | `te-{number}` | ✅ | |
|
|
54
|
+
| Term: `ter-broadcast` | `ter-{term_text}` | ✅ | |
|
|
55
|
+
| Note to entry: `nte-3.4-1` | `nte-{section}-{seq}` | ✅ | |
|
|
56
|
+
| Table: `tab-1` | `tab-{number}` | ✅ | |
|
|
57
|
+
| Informal table: `tab-informal-5.3-1` | `tab-informal-{section}-{seq}` | ✅ | |
|
|
58
|
+
| Figure: `fig-1` | `fig-{number}` | ✅ | |
|
|
59
|
+
| Formula: `for-1` | `for-{number}` | ✅ | |
|
|
60
|
+
| Formula (unnumbered): `for-informal-5.6-1` | `for-informal-{section}-{seq}` | ✅ | |
|
|
61
|
+
| Formula group: `forg-informal-5.3.1-1` | `forg-informal-{section}-{seq}` | ✅ | |
|
|
62
|
+
| Math: `mml-1` | `mml-{seq}` | ✅ | |
|
|
63
|
+
| Footnote: `foo-1` | `foo-{number}` | ✅ | |
|
|
64
|
+
| Symbol footnote: `fos-1` | `fos-{seq}` | ✅ | |
|
|
65
|
+
| Table footnote: `tfn-1-1` | `tfn-{table}-{seq}` | ✅ | |
|
|
66
|
+
| Symbol table fn: `tfs-4-1` | `tfs-{table}-{seq}` | ✅ | |
|
|
67
|
+
| Figure note: `fno-4-1` | `fno-{figure}-{seq}` | ✅ | |
|
|
68
|
+
| Table note: `tno-4-1` | `tno-{table}-{seq}` | ✅ | |
|
|
69
|
+
| List item: `lis-5.6-L1-2` | `lis-{sec}-L{list}-{item}` | ✅ | |
|
|
70
|
+
| Note: `not-3.5-1` | `not-{sec}-{seq}` | ✅ | |
|
|
71
|
+
| Paragraph: `p-450` | `p-{seq}` | ✅ | |
|
|
72
|
+
|
|
73
|
+
## IEC Amendments (Annex C)
|
|
74
|
+
|
|
75
|
+
| Element | Guidelines Usage | sts-ruby Model | Status | Notes |
|
|
76
|
+
|---------|-----------------|---------------|--------|-------|
|
|
77
|
+
| `<editing-instruction>` | Amendment instructions | `NisoSts::EditingInstruction` | ⚠️ Partial | Missing `@content-type` and `<p>` child |
|
|
78
|
+
| `@content-type="addition"` | Addition instruction | ❌ Not mapped | Missing | |
|
|
79
|
+
| `@content-type="replacement"` | Replacement instruction | ❌ Not mapped | Missing | |
|
|
80
|
+
| `@content-type="deletion"` | Deletion instruction | ❌ Not mapped | Missing | |
|
|
81
|
+
| `@content-type="modification"` | Modification instruction | ❌ Not mapped | Missing | |
|
|
82
|
+
| `<p>` inside editing-instruction | Instruction text (e.g. "Addition:", "Replace:") | ❌ Not mapped | Missing | Guidelines show `<p><italic>Addition:</italic></p>` |
|
|
83
|
+
| `<italic>` inside editing-instruction `<p>` | Formatting | ❌ Not applicable | Missing because `<p>` not in model | |
|
|
84
|
+
| `<std>` inside editing-instruction | Standard references | ❌ Not applicable | Missing | |
|
|
85
|
+
| `<term-sec>` after editing-instruction | New terms in amendment | ✅ In parent section | OK | |
|
|
86
|
+
|
|
87
|
+
## ISO Amendments
|
|
88
|
+
|
|
89
|
+
| Feature | Guidelines Usage | sts-ruby Support | Status | Notes |
|
|
90
|
+
|---------|-----------------|-----------------|--------|-------|
|
|
91
|
+
| Separate document text | No semantic markup | ✅ Sections handle plain text | OK | |
|
|
92
|
+
| TBX terms in amendments | `<term-sec>` with `<tbx:termEntry>` | ✅ | OK | |
|
|
93
|
+
|
|
94
|
+
## IEC Corrigenda
|
|
95
|
+
|
|
96
|
+
| Feature | Guidelines Usage | sts-ruby Support | Status |
|
|
97
|
+
|---------|-----------------|-----------------|--------|
|
|
98
|
+
| Integrated into base publication | Content updated inline | N/A | Not a separate XML structure |
|
|
99
|
+
|
|
100
|
+
## IEC Interpretation Sheets (ISH)
|
|
101
|
+
|
|
102
|
+
| Element | Guidelines Usage | sts-ruby Model | Status | Notes |
|
|
103
|
+
|---------|-----------------|---------------|--------|-------|
|
|
104
|
+
| `<supplementary-material>` | Link to ISH PDF | `NisoSts::SupplementaryMaterial` | ✅ Class exists | With `@xlink:href` |
|
|
105
|
+
| `<supplementary-material>` in `<p>` (foreword) | Mentioning ISH inclusion | ❌ Not in Paragraph | Missing | Paragraph does not map `<supplementary-material>` |
|
|
106
|
+
|
|
107
|
+
## IEC Software Supplements
|
|
108
|
+
|
|
109
|
+
| Element | Guidelines Usage | sts-ruby Model | Status | Notes |
|
|
110
|
+
|---------|-----------------|---------------|--------|-------|
|
|
111
|
+
| `<supplementary-material xlink:href="asset/...">` | Link to supplement files | ✅ Class exists | OK | |
|
|
112
|
+
| `<supplementary-material>` in `<p>` | In foreword text | ❌ Not in Paragraph | Missing | Same as ISH above |
|
|
113
|
+
|
|
114
|
+
## Key Gaps
|
|
115
|
+
|
|
116
|
+
- [ ] **`EditingInstruction` is critically incomplete for IEC amendments**: Missing `@content-type` (values: addition, replacement, deletion, modification) and `<p>` child element. IEC amendments rely entirely on this element.
|
|
117
|
+
|
|
118
|
+
- [ ] **`<supplementary-material>` not available in `<p>`**: Both IEC ISH and Software supplements need `<supplementary-material>` inside `<p>` in the foreword. `Paragraph` model does not include this element.
|
|
119
|
+
|
|
120
|
+
- [ ] **`Graphic` missing `id`, `label`, `caption` children for ISO sub-figures**: ISO uses `<graphic id="fig_1.1"><label>a)</label><caption><title>...</title></caption></graphic>` for sub-figure captions. The `Graphic` model only has `@xlink:href` and `<object-id>`.
|
|
121
|
+
|
|
122
|
+
- [ ] **IEC legacy `<tfoot>` not fully supported**: Legacy IEC tables may use `<tfoot>` element inside `<table>`. `TbxIsoTml::Table` does map `<tfoot>`, so this is OK.
|
|
123
|
+
|
|
124
|
+
- [ ] **No explicit support for amendment metadata**: Amendments have their own metadata structure (referencing the base publication). No specific amendment metadata model exists beyond standard `<std-meta>`.
|
|
125
|
+
|
|
126
|
+
- [ ] **`TableWrapFoot` missing legacy `<tr>/<td>` children**: Legacy IEC uses `<tr><td>` directly inside `<table-wrap-foot>`, not currently supported.
|
|
127
|
+
|
|
128
|
+
## Summary: ISO-IEC Variant Priority Gaps
|
|
129
|
+
|
|
130
|
+
Priority items for ISO-IEC variant support:
|
|
131
|
+
|
|
132
|
+
1. **HIGH**: `EditingInstruction` completion (`@content-type`, `<p>` child) -- critical for IEC amendments
|
|
133
|
+
2. **HIGH**: `<supplementary-material>` in `<p>` -- needed for IEC ISH and software supplements
|
|
134
|
+
3. **HIGH**: `<code>` element -- needed for technical standards content
|
|
135
|
+
4. **MEDIUM**: `@list-content` on `DefList` -- needed for formula keys, figure keys, abbreviation lists
|
|
136
|
+
5. **MEDIUM**: `Permissions` completion (`<license>`, rich `<copyright-statement>`) -- needed for IEC metadata
|
|
137
|
+
6. **MEDIUM**: `Graphic` sub-figure support (ISO) -- `id`, `label`, `caption` children
|
|
138
|
+
7. **MEDIUM**: `<index>` element hierarchy -- needed for back matter
|
|
139
|
+
8. **LOW**: MathML element coverage -- partial coverage exists, complex formulae may not round-trip
|
|
140
|
+
9. **LOW**: `<std-doc-meta>` wiring into `Front` -- used in adoption documents
|
|
141
|
+
10. **LOW**: `TermDisplay` completion -- IEC fallback for certain document types
|