Class: Lutaml::Xml::HoistingAlgorithm::NamespaceScopeOnly
- Defined in:
- lib/lutaml/xml/hoisting_algorithm.rb
Overview
NamespaceScopeOnly Algorithm
Only hoists namespaces that are in namespace_scope. Non-scope namespaces are declared at first usage.
This is the strictest interpretation of namespace_scope semantics.
Instance Method Summary collapse
Instance Method Details
#should_hoist_here?(element, namespace_class, needs, context) ⇒ Boolean
121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 |
# File 'lib/lutaml/xml/hoisting_algorithm.rb', line 121 def should_hoist_here?(element, namespace_class, needs, context) return false if already_hoisted?(namespace_class, context) scope_config = needs.scope_config_for(namespace_class) if scope_config # In namespace_scope - eligible for hoisting, use LCA logic element_needs_namespace?(element, namespace_class) else # Not in namespace_scope - only at first usage element.namespace_class == namespace_class || element.attributes.any? do |a| a.namespace_class == namespace_class end end end |