Module: Chemicalml::Schema

Defined in:
lib/chemicalml/schema.rb,
lib/chemicalml/schema/registry.rb,
lib/chemicalml/schema/definition.rb

Overview

Schema version registry. Maps version symbols (e.g. :schema3, :schema24) to their canonical metadata: XSD path, default XML namespace, and the Ruby sub-namespace that holds the wire classes.

The two XSDs are source-of-truth archival files under reference-docs/schemas/. They are never modified or regenerated from code.

Defined Under Namespace

Modules: Registry Classes: Definition

Constant Summary collapse

CML_XML_NAMESPACE =
"http://www.xml-cml.org/schema"
BUILTIN =

Built-in versions registered at load time. Adding a new CML schema version = appending an entry here and creating the matching Chemicalml::Cml::SchemaXxx namespace. No existing code changes.

{
  schema24: Definition.new(
    version: :schema24,
    xsd_path: "reference-docs/schemas/schema24/schema.xsd",
    xml_namespace: CML_XML_NAMESPACE,
    ruby_namespace: "Chemicalml::Cml::Schema24"
  ),
  schema3: Definition.new(
    version: :schema3,
    xsd_path: "reference-docs/schemas/schema3/schema.xsd",
    xml_namespace: CML_XML_NAMESPACE,
    ruby_namespace: "Chemicalml::Cml::Schema3"
  )
}.freeze