Class: Lutaml::Xml::Decisions::Rules::InheritFromParentRule
- Inherits:
-
DecisionRule
- Object
- DecisionRule
- Lutaml::Xml::Decisions::Rules::InheritFromParentRule
- Defined in:
- lib/lutaml/xml/decisions/rules/inherit_from_parent_rule.rb
Overview
Priority 0: Inherit parent’s default namespace
When parent uses default format (xmlns=“uri”), children in same namespace should inherit by having NO prefix (not parent’s prefix!)
This handles two cases:
-
Parent has explicit namespace_class in same namespace
-
Parent has default namespace declared (child’s namespace matches parent’s default)
Instance Method Summary collapse
-
#applies?(context) ⇒ Boolean
Applies when: - Parent uses default format - Element is in same namespace as parent (explicit OR via default) - Child does NOT have its own prefix from deserialization (if child has its own prefix, FormatPreservationRule should handle it).
-
#decide(context) ⇒ Object
Decision: Use default format to inherit.
-
#priority ⇒ Object
Priority 0 - Highest priority.
Methods inherited from DecisionRule
Instance Method Details
#applies?(context) ⇒ Boolean
Applies when:
-
Parent uses default format
-
Element is in same namespace as parent (explicit OR via default)
-
Child does NOT have its own prefix from deserialization (if child has its own prefix, FormatPreservationRule should handle it)
26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/lutaml/xml/decisions/rules/inherit_from_parent_rule.rb', line 26 def applies?(context) return false unless context.has_namespace? return false unless context.parent_uses_default_format? # If child has its own used prefix from deserialization, don't inherit. # Let FormatPreservationRule handle it to preserve the child's prefix. return false if context.element_used_prefix # Case 1: Both parent and child have explicit namespace_class in same namespace return true if context.same_namespace_as_parent? # Case 2: Parent has default namespace declared and child's namespace matches it context.namespace_matches_parent_default? end |
#decide(context) ⇒ Object
Decision: Use default format to inherit
42 43 44 45 46 47 |
# File 'lib/lutaml/xml/decisions/rules/inherit_from_parent_rule.rb', line 42 def decide(context) Decision.default( namespace_class: context.namespace_class, reason: "Priority 0: Inherit parent's default namespace", ) end |
#priority ⇒ Object
Priority 0 - Highest priority
17 18 19 |
# File 'lib/lutaml/xml/decisions/rules/inherit_from_parent_rule.rb', line 17 def priority 0 end |