dcc 0.2.0
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 +7 -0
- data/.gitignore +16 -0
- data/.rspec +3 -0
- data/.rubocop.yml +16 -0
- data/.rubocop_todo.yml +10 -0
- data/CHANGELOG.adoc +54 -0
- data/CONTRIBUTING.adoc +64 -0
- data/Gemfile +25 -0
- data/LICENSE +21 -0
- data/README.adoc +69 -0
- data/Rakefile +13 -0
- data/dcc.gemspec +41 -0
- data/docs/cli-reference.adoc +67 -0
- data/docs/getting-started.adoc +117 -0
- data/docs/schema-versions.adoc +65 -0
- data/examples/build_minimal_dcc.rb +23 -0
- data/examples/convert_all_formats.rb +19 -0
- data/examples/parse_and_inspect.rb +19 -0
- data/examples/quantity_math_demo.rb +32 -0
- data/examples/validate_full.rb +27 -0
- data/exe/dcc +7 -0
- data/lib/dcc/base/administrative_data.rb +43 -0
- data/lib/dcc/base/byte_data.rb +36 -0
- data/lib/dcc/base/calibration_laboratory.rb +29 -0
- data/lib/dcc/base/comment.rb +23 -0
- data/lib/dcc/base/condition.rb +34 -0
- data/lib/dcc/base/contact.rb +38 -0
- data/lib/dcc/base/contact_not_strict.rb +38 -0
- data/lib/dcc/base/core_data.rb +44 -0
- data/lib/dcc/base/data.rb +42 -0
- data/lib/dcc/base/digital_calibration_certificate.rb +32 -0
- data/lib/dcc/base/equipment_class.rb +24 -0
- data/lib/dcc/base/formula.rb +33 -0
- data/lib/dcc/base/hash_type.rb +34 -0
- data/lib/dcc/base/identification.rb +27 -0
- data/lib/dcc/base/identifications.rb +27 -0
- data/lib/dcc/base/influence_condition.rb +16 -0
- data/lib/dcc/base/influence_condition_list.rb +40 -0
- data/lib/dcc/base/item.rb +38 -0
- data/lib/dcc/base/item_list.rb +38 -0
- data/lib/dcc/base/list.rb +44 -0
- data/lib/dcc/base/location.rb +36 -0
- data/lib/dcc/base/measurement_meta_data.rb +15 -0
- data/lib/dcc/base/measurement_meta_data_list.rb +27 -0
- data/lib/dcc/base/measurement_result.rb +41 -0
- data/lib/dcc/base/measurement_result_list.rb +28 -0
- data/lib/dcc/base/measuring_equipment.rb +41 -0
- data/lib/dcc/base/measuring_equipment_list.rb +38 -0
- data/lib/dcc/base/quantity.rb +61 -0
- data/lib/dcc/base/ref_type_definition.rb +36 -0
- data/lib/dcc/base/ref_type_definition_list.rb +21 -0
- data/lib/dcc/base/resp_person.rb +38 -0
- data/lib/dcc/base/resp_person_list.rb +27 -0
- data/lib/dcc/base/result.rb +31 -0
- data/lib/dcc/base/result_list.rb +27 -0
- data/lib/dcc/base/rich_content.rb +34 -0
- data/lib/dcc/base/software.rb +35 -0
- data/lib/dcc/base/software_list.rb +27 -0
- data/lib/dcc/base/statement.rb +50 -0
- data/lib/dcc/base/statement_list.rb +27 -0
- data/lib/dcc/base/string_with_lang.rb +24 -0
- data/lib/dcc/base/text.rb +33 -0
- data/lib/dcc/base/used_method.rb +31 -0
- data/lib/dcc/base/used_method_list.rb +27 -0
- data/lib/dcc/base/xml_blob.rb +20 -0
- data/lib/dcc/base.rb +58 -0
- data/lib/dcc/builder/dsl.rb +10 -0
- data/lib/dcc/builder/session.rb +170 -0
- data/lib/dcc/builder.rb +34 -0
- data/lib/dcc/cli/cli.rb +149 -0
- data/lib/dcc/cli/formatters.rb +77 -0
- data/lib/dcc/cli.rb +7 -0
- data/lib/dcc/common_elements.rb +20 -0
- data/lib/dcc/context_configuration.rb +167 -0
- data/lib/dcc/context_options.rb +47 -0
- data/lib/dcc/convert/csv.rb +129 -0
- data/lib/dcc/convert/html.rb +127 -0
- data/lib/dcc/convert/json.rb +62 -0
- data/lib/dcc/convert/result.rb +51 -0
- data/lib/dcc/convert/yaml.rb +21 -0
- data/lib/dcc/convert.rb +14 -0
- data/lib/dcc/diff/change.rb +21 -0
- data/lib/dcc/diff/result.rb +58 -0
- data/lib/dcc/diff.rb +83 -0
- data/lib/dcc/error.rb +54 -0
- data/lib/dcc/extract/file.rb +143 -0
- data/lib/dcc/extract/ring.rb +28 -0
- data/lib/dcc/extract.rb +9 -0
- data/lib/dcc/i18n/text_lookup.rb +67 -0
- data/lib/dcc/i18n.rb +12 -0
- data/lib/dcc/inspect/report.rb +139 -0
- data/lib/dcc/inspect.rb +9 -0
- data/lib/dcc/migrate.rb +41 -0
- data/lib/dcc/namespace/dcc.rb +30 -0
- data/lib/dcc/namespace/dsig.rb +15 -0
- data/lib/dcc/namespace/math_ml.rb +14 -0
- data/lib/dcc/namespace/qudt.rb +15 -0
- data/lib/dcc/namespace/si.rb +26 -0
- data/lib/dcc/namespace.rb +18 -0
- data/lib/dcc/plugin/registry.rb +45 -0
- data/lib/dcc/plugin.rb +42 -0
- data/lib/dcc/quantity_format/formatter.rb +90 -0
- data/lib/dcc/quantity_format.rb +10 -0
- data/lib/dcc/quantity_math/quantity.rb +46 -0
- data/lib/dcc/quantity_math/real.rb +116 -0
- data/lib/dcc/quantity_math.rb +14 -0
- data/lib/dcc/schema/resources/dcc/dsi/v1.0.1.xsd +415 -0
- data/lib/dcc/schema/resources/dcc/dsi/v1.3.0.xsd +814 -0
- data/lib/dcc/schema/resources/dcc/dsi/v1.3.1.xsd +814 -0
- data/lib/dcc/schema/resources/dcc/dsi/v2.0.0.xsd +869 -0
- data/lib/dcc/schema/resources/dcc/dsi/v2.1.0.xsd +1031 -0
- data/lib/dcc/schema/resources/dcc/dsi/v2.2.1.xsd +1574 -0
- data/lib/dcc/schema/resources/dcc/qudt/v2.2.1.xsd +44 -0
- data/lib/dcc/schema/resources/dcc/v2.1.0/dcc.xsd +650 -0
- data/lib/dcc/schema/resources/dcc/v2.1.1/dcc.xsd +669 -0
- data/lib/dcc/schema/resources/dcc/v2.2.0/dcc.xsd +730 -0
- data/lib/dcc/schema/resources/dcc/v2.3.0/dcc.xsd +708 -0
- data/lib/dcc/schema/resources/dcc/v2.4.0/dcc.xsd +725 -0
- data/lib/dcc/schema/resources/dcc/v3.0.0/dcc.xsd +749 -0
- data/lib/dcc/schema/resources/dcc/v3.1.0/dcc.xsd +843 -0
- data/lib/dcc/schema/resources/dcc/v3.1.1/dcc.xsd +843 -0
- data/lib/dcc/schema/resources/dcc/v3.1.2/dcc.xsd +844 -0
- data/lib/dcc/schema/resources/dcc/v3.2.0/dcc.xsd +940 -0
- data/lib/dcc/schema/resources/dcc/v3.2.1/dcc.xsd +963 -0
- data/lib/dcc/schema/resources/dcc/v3.3.0/dcc.xsd +1008 -0
- data/lib/dcc/schema/resources/dcc/xmldsig-core-schema.xsd +312 -0
- data/lib/dcc/schema/resources/dsi/qudt/v2.2.1.xsd +44 -0
- data/lib/dcc/schema/resources/dsi/v1.0.1/SI_Format.xsd +415 -0
- data/lib/dcc/schema/resources/dsi/v1.3.0/SI_Format.xsd +814 -0
- data/lib/dcc/schema/resources/dsi/v1.3.1/SI_Format.xsd +814 -0
- data/lib/dcc/schema/resources/dsi/v2.0.0/SI_Format.xsd +869 -0
- data/lib/dcc/schema/resources/dsi/v2.1.0/SI_Format.xsd +1031 -0
- data/lib/dcc/schema/resources/dsi/v2.2.1/SI_Format.xsd +1574 -0
- data/lib/dcc/schema/resources/qudt/qudt.xsd +44 -0
- data/lib/dcc/schema/resources/schematron/dcc.sch +523 -0
- data/lib/dcc/schema/resources/schematron/dcc.svrl +2302 -0
- data/lib/dcc/schema/resources/xmldsig/xmldsig-core-schema.xsd +312 -0
- data/lib/dcc/schema/version.rb +94 -0
- data/lib/dcc/schema.rb +35 -0
- data/lib/dcc/server/app.rb +133 -0
- data/lib/dcc/server/storage/entry.rb +15 -0
- data/lib/dcc/server/storage/memory.rb +57 -0
- data/lib/dcc/server/storage.rb +13 -0
- data/lib/dcc/server.rb +33 -0
- data/lib/dcc/si/base/complex.rb +43 -0
- data/lib/dcc/si/base/complex_list_xml_list.rb +39 -0
- data/lib/dcc/si/base/constant.rb +39 -0
- data/lib/dcc/si/base/coverage_interval_mu.rb +31 -0
- data/lib/dcc/si/base/expanded_mu.rb +29 -0
- data/lib/dcc/si/base/expanded_unc_xml_list.rb +30 -0
- data/lib/dcc/si/base/hybrid.rb +42 -0
- data/lib/dcc/si/base/measurement_uncertainty_univariate.rb +28 -0
- data/lib/dcc/si/base/real.rb +48 -0
- data/lib/dcc/si/base/real_list_xml_list.rb +45 -0
- data/lib/dcc/si/base/si_list.rb +37 -0
- data/lib/dcc/si/base/standard_mu.rb +25 -0
- data/lib/dcc/si/base.rb +24 -0
- data/lib/dcc/si/common_elements.rb +13 -0
- data/lib/dcc/si/namespace.rb +7 -0
- data/lib/dcc/si/v1/common_elements.rb +13 -0
- data/lib/dcc/si/v1/complex.rb +8 -0
- data/lib/dcc/si/v1/complex_list_xml_list.rb +8 -0
- data/lib/dcc/si/v1/configuration.rb +13 -0
- data/lib/dcc/si/v1/constant.rb +8 -0
- data/lib/dcc/si/v1/coverage_interval_mu.rb +8 -0
- data/lib/dcc/si/v1/expanded_mu.rb +8 -0
- data/lib/dcc/si/v1/expanded_unc.rb +23 -0
- data/lib/dcc/si/v1/expanded_unc_xml_list.rb +8 -0
- data/lib/dcc/si/v1/hybrid.rb +8 -0
- data/lib/dcc/si/v1/measurement_uncertainty_univariate.rb +8 -0
- data/lib/dcc/si/v1/namespace.rb +9 -0
- data/lib/dcc/si/v1/real.rb +8 -0
- data/lib/dcc/si/v1/real_list_xml_list.rb +8 -0
- data/lib/dcc/si/v1/si_list.rb +8 -0
- data/lib/dcc/si/v1/standard_mu.rb +8 -0
- data/lib/dcc/si/v1.rb +46 -0
- data/lib/dcc/si/v2/common_elements.rb +13 -0
- data/lib/dcc/si/v2/complex.rb +8 -0
- data/lib/dcc/si/v2/complex_list_xml_list.rb +8 -0
- data/lib/dcc/si/v2/configuration.rb +13 -0
- data/lib/dcc/si/v2/constant.rb +8 -0
- data/lib/dcc/si/v2/coverage_interval_mu.rb +8 -0
- data/lib/dcc/si/v2/coverage_interval_mu_xml_list.rb +24 -0
- data/lib/dcc/si/v2/expanded_mu.rb +8 -0
- data/lib/dcc/si/v2/expanded_mu_xml_list.rb +22 -0
- data/lib/dcc/si/v2/expanded_unc_xml_list.rb +8 -0
- data/lib/dcc/si/v2/hybrid.rb +8 -0
- data/lib/dcc/si/v2/measurement_uncertainty_univariate.rb +8 -0
- data/lib/dcc/si/v2/namespace.rb +9 -0
- data/lib/dcc/si/v2/real.rb +8 -0
- data/lib/dcc/si/v2/real_list_xml_list.rb +8 -0
- data/lib/dcc/si/v2/si_list.rb +8 -0
- data/lib/dcc/si/v2/standard_mu.rb +8 -0
- data/lib/dcc/si/v2/standard_mu_xml_list.rb +18 -0
- data/lib/dcc/si/v2.rb +49 -0
- data/lib/dcc/si.rb +34 -0
- data/lib/dcc/signature/result.rb +43 -0
- data/lib/dcc/signature/signer.rb +36 -0
- data/lib/dcc/signature/verifier.rb +41 -0
- data/lib/dcc/signature.rb +13 -0
- data/lib/dcc/transform/result.rb +24 -0
- data/lib/dcc/transform/xslt.rb +72 -0
- data/lib/dcc/transform.rb +12 -0
- data/lib/dcc/type/base64_binary.rb +55 -0
- data/lib/dcc/type/decimal_xml_list.rb +47 -0
- data/lib/dcc/type/iso_country_code.rb +23 -0
- data/lib/dcc/type/iso_language_code.rb +23 -0
- data/lib/dcc/type/schema_version.rb +37 -0
- data/lib/dcc/type/si_unit.rb +26 -0
- data/lib/dcc/type.rb +16 -0
- data/lib/dcc/type_guards.rb +140 -0
- data/lib/dcc/v2/administrative_data.rb +8 -0
- data/lib/dcc/v2/byte_data.rb +8 -0
- data/lib/dcc/v2/calibration_laboratory.rb +8 -0
- data/lib/dcc/v2/comment.rb +8 -0
- data/lib/dcc/v2/common_elements.rb +13 -0
- data/lib/dcc/v2/condition.rb +8 -0
- data/lib/dcc/v2/configuration.rb +17 -0
- data/lib/dcc/v2/contact.rb +8 -0
- data/lib/dcc/v2/contact_not_strict.rb +8 -0
- data/lib/dcc/v2/core_data.rb +8 -0
- data/lib/dcc/v2/data.rb +8 -0
- data/lib/dcc/v2/digital_calibration_certificate.rb +8 -0
- data/lib/dcc/v2/equipment_class.rb +8 -0
- data/lib/dcc/v2/formula.rb +8 -0
- data/lib/dcc/v2/hash_type.rb +8 -0
- data/lib/dcc/v2/identification.rb +8 -0
- data/lib/dcc/v2/identifications.rb +8 -0
- data/lib/dcc/v2/influence_condition.rb +7 -0
- data/lib/dcc/v2/influence_condition_list.rb +8 -0
- data/lib/dcc/v2/item.rb +8 -0
- data/lib/dcc/v2/item_list.rb +8 -0
- data/lib/dcc/v2/list.rb +8 -0
- data/lib/dcc/v2/location.rb +8 -0
- data/lib/dcc/v2/measurement_meta_data.rb +8 -0
- data/lib/dcc/v2/measurement_meta_data_list.rb +8 -0
- data/lib/dcc/v2/measurement_result.rb +8 -0
- data/lib/dcc/v2/measurement_result_list.rb +8 -0
- data/lib/dcc/v2/measuring_equipment.rb +8 -0
- data/lib/dcc/v2/measuring_equipment_list.rb +8 -0
- data/lib/dcc/v2/namespace.rb +8 -0
- data/lib/dcc/v2/quantity.rb +49 -0
- data/lib/dcc/v2/ref_type_definition.rb +11 -0
- data/lib/dcc/v2/ref_type_definition_list.rb +15 -0
- data/lib/dcc/v2/resp_person.rb +8 -0
- data/lib/dcc/v2/resp_person_list.rb +8 -0
- data/lib/dcc/v2/result.rb +8 -0
- data/lib/dcc/v2/result_list.rb +8 -0
- data/lib/dcc/v2/rich_content.rb +12 -0
- data/lib/dcc/v2/software.rb +8 -0
- data/lib/dcc/v2/software_list.rb +8 -0
- data/lib/dcc/v2/statement.rb +8 -0
- data/lib/dcc/v2/statement_list.rb +8 -0
- data/lib/dcc/v2/string_with_lang.rb +8 -0
- data/lib/dcc/v2/text.rb +8 -0
- data/lib/dcc/v2/used_method.rb +8 -0
- data/lib/dcc/v2/used_method_list.rb +8 -0
- data/lib/dcc/v2/xml_blob.rb +8 -0
- data/lib/dcc/v2.rb +84 -0
- data/lib/dcc/v3/administrative_data.rb +8 -0
- data/lib/dcc/v3/byte_data.rb +8 -0
- data/lib/dcc/v3/calibration_laboratory.rb +8 -0
- data/lib/dcc/v3/comment.rb +8 -0
- data/lib/dcc/v3/common_elements.rb +11 -0
- data/lib/dcc/v3/condition.rb +8 -0
- data/lib/dcc/v3/configuration.rb +17 -0
- data/lib/dcc/v3/contact.rb +8 -0
- data/lib/dcc/v3/contact_not_strict.rb +8 -0
- data/lib/dcc/v3/core_data.rb +8 -0
- data/lib/dcc/v3/data.rb +8 -0
- data/lib/dcc/v3/digital_calibration_certificate.rb +8 -0
- data/lib/dcc/v3/equipment_class.rb +8 -0
- data/lib/dcc/v3/formula.rb +8 -0
- data/lib/dcc/v3/hash_type.rb +8 -0
- data/lib/dcc/v3/identification.rb +8 -0
- data/lib/dcc/v3/identifications.rb +8 -0
- data/lib/dcc/v3/influence_condition.rb +7 -0
- data/lib/dcc/v3/influence_condition_list.rb +8 -0
- data/lib/dcc/v3/item.rb +8 -0
- data/lib/dcc/v3/item_list.rb +8 -0
- data/lib/dcc/v3/list.rb +8 -0
- data/lib/dcc/v3/location.rb +8 -0
- data/lib/dcc/v3/measurement_meta_data.rb +8 -0
- data/lib/dcc/v3/measurement_meta_data_list.rb +8 -0
- data/lib/dcc/v3/measurement_result.rb +8 -0
- data/lib/dcc/v3/measurement_result_list.rb +8 -0
- data/lib/dcc/v3/measuring_equipment.rb +8 -0
- data/lib/dcc/v3/measuring_equipment_list.rb +8 -0
- data/lib/dcc/v3/namespace.rb +7 -0
- data/lib/dcc/v3/quantity.rb +49 -0
- data/lib/dcc/v3/ref_type_definition.rb +8 -0
- data/lib/dcc/v3/ref_type_definition_list.rb +8 -0
- data/lib/dcc/v3/resp_person.rb +8 -0
- data/lib/dcc/v3/resp_person_list.rb +8 -0
- data/lib/dcc/v3/result.rb +8 -0
- data/lib/dcc/v3/result_list.rb +8 -0
- data/lib/dcc/v3/rich_content.rb +8 -0
- data/lib/dcc/v3/software.rb +8 -0
- data/lib/dcc/v3/software_list.rb +8 -0
- data/lib/dcc/v3/statement.rb +8 -0
- data/lib/dcc/v3/statement_list.rb +8 -0
- data/lib/dcc/v3/string_with_lang.rb +8 -0
- data/lib/dcc/v3/text.rb +8 -0
- data/lib/dcc/v3/used_method.rb +8 -0
- data/lib/dcc/v3/used_method_list.rb +8 -0
- data/lib/dcc/v3/xml_blob.rb +8 -0
- data/lib/dcc/v3.rb +111 -0
- data/lib/dcc/validate/business_rules.rb +121 -0
- data/lib/dcc/validate/issue.rb +56 -0
- data/lib/dcc/validate/result.rb +105 -0
- data/lib/dcc/validate/schematron/profile.rb +64 -0
- data/lib/dcc/validate/schematron/rule.rb +49 -0
- data/lib/dcc/validate/schematron/rules/administrative_data_completeness.rb +42 -0
- data/lib/dcc/validate/schematron/rules/base.rb +15 -0
- data/lib/dcc/validate/schematron/rules/date_range_check.rb +41 -0
- data/lib/dcc/validate/schematron/rules/id_refid_linking.rb +61 -0
- data/lib/dcc/validate/schematron/rules/influence_conditions_placement.rb +58 -0
- data/lib/dcc/validate/schematron/rules/iso_code_validation.rb +53 -0
- data/lib/dcc/validate/schematron/rules/language_code_dedup.rb +39 -0
- data/lib/dcc/validate/schematron/rules/non_si_declaration.rb +82 -0
- data/lib/dcc/validate/schematron/rules/release_format_check.rb +44 -0
- data/lib/dcc/validate/schematron/rules/schema_version_check.rb +31 -0
- data/lib/dcc/validate/schematron/rules/uncertainty_consistency.rb +58 -0
- data/lib/dcc/validate/schematron/rules/unit_format_check.rb +74 -0
- data/lib/dcc/validate/schematron/rules/used_methods_placement.rb +65 -0
- data/lib/dcc/validate/schematron/rules/used_software_placement.rb +43 -0
- data/lib/dcc/validate/schematron/rules/xml_list_spacing.rb +42 -0
- data/lib/dcc/validate/schematron/rules.rb +30 -0
- data/lib/dcc/validate/schematron.rb +22 -0
- data/lib/dcc/validate/severity.rb +39 -0
- data/lib/dcc/validate/xsd.rb +97 -0
- data/lib/dcc/validate.rb +15 -0
- data/lib/dcc/version.rb +5 -0
- data/lib/dcc/versioned_parser.rb +48 -0
- data/lib/dcc.rb +141 -0
- metadata +425 -0
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Dcc::V2
|
|
4
|
+
# V2 Quantity: declares DCC admin attributes + D-SI v1.x quantity
|
|
5
|
+
# element references in a single `xml do` block. Follows the same
|
|
6
|
+
# pattern as V3::Quantity but wires D-SI v1 classes.
|
|
7
|
+
class Quantity < CommonElements
|
|
8
|
+
attribute :id, :string
|
|
9
|
+
attribute :ref_id, :string
|
|
10
|
+
attribute :ref_type, :string
|
|
11
|
+
attribute :name, :text
|
|
12
|
+
attribute :no_quantity, :string
|
|
13
|
+
attribute :used_methods, :usedMethods
|
|
14
|
+
attribute :used_software, :softwareList
|
|
15
|
+
attribute :influence_conditions, :influenceConditions
|
|
16
|
+
attribute :measurement_meta_data, :measurementMetaData
|
|
17
|
+
# D-SI v1 quantity substitutions (Option B)
|
|
18
|
+
attribute :real, ::Dcc::Si::V1::Real, collection: true
|
|
19
|
+
attribute :complex, ::Dcc::Si::V1::Complex, collection: true
|
|
20
|
+
attribute :constant, ::Dcc::Si::V1::Constant, collection: true
|
|
21
|
+
attribute :hybrid, ::Dcc::Si::V1::Hybrid, collection: true
|
|
22
|
+
attribute :real_list_xml_list, ::Dcc::Si::V1::RealListXmlList, collection: true
|
|
23
|
+
attribute :complex_list_xml_list, ::Dcc::Si::V1::ComplexListXmlList, collection: true
|
|
24
|
+
attribute :list, ::Dcc::Si::V1::SiList, collection: true
|
|
25
|
+
|
|
26
|
+
xml do
|
|
27
|
+
namespace ::Dcc::Namespace::Dcc
|
|
28
|
+
element "quantity"
|
|
29
|
+
ordered
|
|
30
|
+
map_attribute "id", to: :id
|
|
31
|
+
map_attribute "refId", to: :ref_id
|
|
32
|
+
map_attribute "refType", to: :ref_type
|
|
33
|
+
map_element "name", to: :name
|
|
34
|
+
map_element "noQuantity", to: :no_quantity
|
|
35
|
+
map_element "usedMethods", to: :used_methods
|
|
36
|
+
map_element "usedSoftware", to: :used_software
|
|
37
|
+
map_element "influenceConditions", to: :influence_conditions
|
|
38
|
+
map_element "measurementMetaData", to: :measurement_meta_data
|
|
39
|
+
map_element "real", to: :real
|
|
40
|
+
map_element "complex", to: :complex
|
|
41
|
+
map_element "constant", to: :constant
|
|
42
|
+
map_element "hybrid", to: :hybrid
|
|
43
|
+
map_element "realListXMLList", to: :real_list_xml_list
|
|
44
|
+
map_element "complexListXMLList", to: :complex_list_xml_list
|
|
45
|
+
map_element "list", to: :list
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
Configuration.register_model(Quantity, id: :quantity)
|
|
49
|
+
end
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# DCC v2.x has no `dcc:refTypeDefinitionType`; this is a v3.x addition. We
|
|
4
|
+
# register an empty V2 placeholder so documents that happen to include the
|
|
5
|
+
# element (mixed-version transitional documents) parse without error.
|
|
6
|
+
module Dcc::V2
|
|
7
|
+
class RefTypeDefinition < CommonElements
|
|
8
|
+
# Deliberately empty; v2 has no refTypeDefinition structure.
|
|
9
|
+
end
|
|
10
|
+
Configuration.register_model(RefTypeDefinition, id: :refTypeDefinition)
|
|
11
|
+
end
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Dcc::V2
|
|
4
|
+
class RefTypeDefinitionList < CommonElements
|
|
5
|
+
attribute :ref_type_definition, :refTypeDefinition, collection: true
|
|
6
|
+
|
|
7
|
+
xml do
|
|
8
|
+
namespace ::Dcc::Namespace::Dcc
|
|
9
|
+
element "refTypeDefinitions"
|
|
10
|
+
ordered
|
|
11
|
+
map_element "refTypeDefinition", to: :ref_type_definition
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
Configuration.register_model(RefTypeDefinitionList, id: :refTypeDefinitions)
|
|
15
|
+
end
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# DCC v2.x has no `dcc:richContentType`; the v3.4+ type doesn't apply. For
|
|
4
|
+
# forward compatibility we register a V2 `RichContent` that simply reuses
|
|
5
|
+
# the V2 `Text` mapping so documents parsed under `:dcc_v2` context resolve
|
|
6
|
+
# the `:richContent` symbol.
|
|
7
|
+
module Dcc::V2
|
|
8
|
+
class RichContent < CommonElements
|
|
9
|
+
include ::Dcc::Base::Text
|
|
10
|
+
end
|
|
11
|
+
Configuration.register_model(RichContent, id: :richContent)
|
|
12
|
+
end
|
data/lib/dcc/v2/text.rb
ADDED
data/lib/dcc/v2.rb
ADDED
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# `Dcc::V2` hosts all DCC v2.x element wrapper classes. They share the same
|
|
4
|
+
# `lib/dcc/base/*.rb` mapping modules as V3 but live in their own class
|
|
5
|
+
# hierarchy and register in their own type context (`:dcc_v2`), so V2 and V3
|
|
6
|
+
# can coexist in one process without symbol clashes.
|
|
7
|
+
module Dcc
|
|
8
|
+
module V2
|
|
9
|
+
autoload :Configuration, "dcc/v2/configuration"
|
|
10
|
+
autoload :Namespace, "dcc/v2/namespace"
|
|
11
|
+
autoload :CommonElements, "dcc/v2/common_elements"
|
|
12
|
+
|
|
13
|
+
autoload :StringWithLang, "dcc/v2/string_with_lang"
|
|
14
|
+
autoload :Text, "dcc/v2/text"
|
|
15
|
+
autoload :ByteData, "dcc/v2/byte_data"
|
|
16
|
+
autoload :Formula, "dcc/v2/formula"
|
|
17
|
+
autoload :RichContent, "dcc/v2/rich_content"
|
|
18
|
+
autoload :XmlBlob, "dcc/v2/xml_blob"
|
|
19
|
+
autoload :Comment, "dcc/v2/comment"
|
|
20
|
+
autoload :EquipmentClass, "dcc/v2/equipment_class"
|
|
21
|
+
autoload :Location, "dcc/v2/location"
|
|
22
|
+
autoload :Contact, "dcc/v2/contact"
|
|
23
|
+
autoload :ContactNotStrict, "dcc/v2/contact_not_strict"
|
|
24
|
+
autoload :HashType, "dcc/v2/hash_type"
|
|
25
|
+
autoload :Identification, "dcc/v2/identification"
|
|
26
|
+
autoload :Identifications, "dcc/v2/identifications"
|
|
27
|
+
autoload :Software, "dcc/v2/software"
|
|
28
|
+
autoload :SoftwareList, "dcc/v2/software_list"
|
|
29
|
+
autoload :RefTypeDefinition, "dcc/v2/ref_type_definition"
|
|
30
|
+
autoload :RefTypeDefinitionList, "dcc/v2/ref_type_definition_list"
|
|
31
|
+
autoload :CoreData, "dcc/v2/core_data"
|
|
32
|
+
autoload :Item, "dcc/v2/item"
|
|
33
|
+
autoload :ItemList, "dcc/v2/item_list"
|
|
34
|
+
autoload :CalibrationLaboratory, "dcc/v2/calibration_laboratory"
|
|
35
|
+
autoload :RespPerson, "dcc/v2/resp_person"
|
|
36
|
+
autoload :RespPersonList, "dcc/v2/resp_person_list"
|
|
37
|
+
autoload :Statement, "dcc/v2/statement"
|
|
38
|
+
autoload :StatementList, "dcc/v2/statement_list"
|
|
39
|
+
autoload :MeasuringEquipment, "dcc/v2/measuring_equipment"
|
|
40
|
+
autoload :MeasuringEquipmentList, "dcc/v2/measuring_equipment_list"
|
|
41
|
+
autoload :UsedMethod, "dcc/v2/used_method"
|
|
42
|
+
autoload :UsedMethodList, "dcc/v2/used_method_list"
|
|
43
|
+
autoload :Condition, "dcc/v2/condition"
|
|
44
|
+
autoload :InfluenceCondition, "dcc/v2/influence_condition"
|
|
45
|
+
autoload :InfluenceConditionList, "dcc/v2/influence_condition_list"
|
|
46
|
+
autoload :Result, "dcc/v2/result"
|
|
47
|
+
autoload :ResultList, "dcc/v2/result_list"
|
|
48
|
+
autoload :Data, "dcc/v2/data"
|
|
49
|
+
autoload :Quantity, "dcc/v2/quantity"
|
|
50
|
+
autoload :List, "dcc/v2/list"
|
|
51
|
+
autoload :MeasurementMetaData, "dcc/v2/measurement_meta_data"
|
|
52
|
+
autoload :MeasurementMetaDataList, "dcc/v2/measurement_meta_data_list"
|
|
53
|
+
autoload :MeasurementResult, "dcc/v2/measurement_result"
|
|
54
|
+
autoload :MeasurementResultList, "dcc/v2/measurement_result_list"
|
|
55
|
+
autoload :AdministrativeData, "dcc/v2/administrative_data"
|
|
56
|
+
autoload :DigitalCalibrationCertificate, "dcc/v2/digital_calibration_certificate"
|
|
57
|
+
|
|
58
|
+
ROOT_ELEMENT_TAG = "digitalCalibrationCertificate"
|
|
59
|
+
|
|
60
|
+
extend ::Dcc::VersionedParser
|
|
61
|
+
|
|
62
|
+
ELEMENT_CLASSES = %i[
|
|
63
|
+
StringWithLang Text ByteData Formula RichContent XmlBlob Comment
|
|
64
|
+
EquipmentClass Location Contact ContactNotStrict HashType
|
|
65
|
+
Identification Identifications Software SoftwareList
|
|
66
|
+
RefTypeDefinition RefTypeDefinitionList
|
|
67
|
+
CoreData Item ItemList CalibrationLaboratory
|
|
68
|
+
RespPerson RespPersonList Statement StatementList
|
|
69
|
+
MeasuringEquipment MeasuringEquipmentList
|
|
70
|
+
UsedMethod UsedMethodList
|
|
71
|
+
Condition InfluenceCondition InfluenceConditionList
|
|
72
|
+
Result ResultList Data Quantity List
|
|
73
|
+
MeasurementMetaData MeasurementMetaDataList
|
|
74
|
+
MeasurementResult MeasurementResultList
|
|
75
|
+
AdministrativeData DigitalCalibrationCertificate
|
|
76
|
+
].freeze
|
|
77
|
+
|
|
78
|
+
def self.load_all!
|
|
79
|
+
ELEMENT_CLASSES.each { |name| const_get(name) }
|
|
80
|
+
Configuration.populate_context!
|
|
81
|
+
true
|
|
82
|
+
end
|
|
83
|
+
end
|
|
84
|
+
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Dcc
|
|
4
|
+
module V3
|
|
5
|
+
module Configuration
|
|
6
|
+
extend ::Dcc::ContextConfiguration
|
|
7
|
+
|
|
8
|
+
CONTEXT_ID = :dcc_v3
|
|
9
|
+
|
|
10
|
+
# V3 DCC imports D-SI v2.x for quantity expressions. Returned as
|
|
11
|
+
# instance method (becomes class method via `extend`).
|
|
12
|
+
def fallback_contexts
|
|
13
|
+
[:dsi_v2, :default]
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
data/lib/dcc/v3/data.rb
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Dcc::V3
|
|
4
|
+
class DigitalCalibrationCertificate < CommonElements
|
|
5
|
+
include ::Dcc::Base::DigitalCalibrationCertificate
|
|
6
|
+
end
|
|
7
|
+
Configuration.register_model(DigitalCalibrationCertificate, id: :digitalCalibrationCertificate)
|
|
8
|
+
end
|
data/lib/dcc/v3/item.rb
ADDED
data/lib/dcc/v3/list.rb
ADDED