Class: Lutaml::Xml::TypeNamespace::Resolver
- Inherits:
-
Object
- Object
- Lutaml::Xml::TypeNamespace::Resolver
- Defined in:
- lib/lutaml/xml/type_namespace/resolver.rb
Overview
Resolves type namespace prefixes for elements
Type namespaces are declared on parent elements and used as prefixes on child elements. This resolver determines which prefix to use for a given type namespace.
Instance Method Summary collapse
-
#needs_declaration?(type_namespace_class, element_namespace_class) ⇒ Boolean
Check if a type namespace needs to be declared.
-
#prefix_for(type_namespace_class, declaration_plan) ⇒ String?
Get the prefix for a type namespace on an element.
Instance Method Details
#needs_declaration?(type_namespace_class, element_namespace_class) ⇒ Boolean
Check if a type namespace needs to be declared
34 35 36 37 38 39 |
# File 'lib/lutaml/xml/type_namespace/resolver.rb', line 34 def needs_declaration?(type_namespace_class, element_namespace_class) return true unless element_namespace_class # If element and type have same namespace, element handles it type_namespace_class != element_namespace_class end |
#prefix_for(type_namespace_class, declaration_plan) ⇒ String?
Get the prefix for a type namespace on an element
17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/lutaml/xml/type_namespace/resolver.rb', line 17 def prefix_for(type_namespace_class, declaration_plan) return nil unless type_namespace_class return nil unless declaration_plan # Look up namespace in plan ns_info = declaration_plan.namespace_for_class(type_namespace_class) return nil unless ns_info # Return the prefix ns_info[:prefix] end |