Module: Dcc::VersionedParser

Included in:
Si::V1, Si::V2, V2, V3
Defined in:
lib/dcc/versioned_parser.rb

Instance Method Summary collapse

Instance Method Details

#parse(input, context: ::Dcc::UNSPECIFIED_CONTEXT, register: nil) ⇒ Lutaml::Model::Serializable

Parse an XML document into the version's typed object tree.

Parameters:

  • input (String, IO)

    XML string or readable IO.

  • context (Symbol, String, nil) (defaults to: ::Dcc::UNSPECIFIED_CONTEXT)

    substitution context.

  • register (Symbol, String, nil) (defaults to: nil)

    deprecated alias for context.

Returns:

  • (Lutaml::Model::Serializable)

    parsed root element.



22
23
24
25
26
27
28
29
30
31
# File 'lib/dcc/versioned_parser.rb', line 22

def parse(input, context: ::Dcc::UNSPECIFIED_CONTEXT, register: nil)
  context_id = resolve_context_id(context, register)
  root_class = Lutaml::Model::GlobalContext.resolve_type(
    root_element_symbol,
    context_id,
  )

  xml = ::Dcc.read_input(input)
  root_class.from_xml(xml, register: context_id)
end