Class: Lutaml::Xml::DeclarationPlan::AttributeNode
- Inherits:
-
Object
- Object
- Lutaml::Xml::DeclarationPlan::AttributeNode
- Defined in:
- lib/lutaml/xml/declaration_plan/attribute_node.rb
Overview
AttributeNode represents the namespace prefix decision for a single XML attribute
This is a PURE DATA structure - it stores the W3C-compliant prefix decision made by DeclarationPlanner but contains NO decision-making logic itself.
The key field is ‘use_prefix`:
-
nil => attribute has NO prefix (W3C :unqualified or blank namespace)
-
String => attribute uses this specific prefix
Instance Attribute Summary collapse
-
#local_name ⇒ String
readonly
Attribute local name (without prefix).
-
#namespace_uri ⇒ String?
readonly
Namespace URI for this attribute.
-
#use_prefix ⇒ String?
readonly
Prefix to use for this attribute nil = no prefix (W3C :unqualified or blank namespace) String = use this prefix.
Instance Method Summary collapse
-
#initialize(local_name:, use_prefix:, namespace_uri: nil) ⇒ AttributeNode
constructor
Initialize an attribute node.
-
#prefixed? ⇒ Boolean
Check if attribute has a prefix.
-
#qualified_name ⇒ String
Get the qualified attribute name (with prefix if applicable).
-
#unqualified? ⇒ Boolean
Check if attribute is unqualified (no prefix).
Constructor Details
#initialize(local_name:, use_prefix:, namespace_uri: nil) ⇒ AttributeNode
Initialize an attribute node
50 51 52 53 54 |
# File 'lib/lutaml/xml/declaration_plan/attribute_node.rb', line 50 def initialize(local_name:, use_prefix:, namespace_uri: nil) @local_name = local_name @use_prefix = use_prefix @namespace_uri = namespace_uri end |
Instance Attribute Details
#local_name ⇒ String (readonly)
Returns Attribute local name (without prefix).
35 36 37 |
# File 'lib/lutaml/xml/declaration_plan/attribute_node.rb', line 35 def local_name @local_name end |
#namespace_uri ⇒ String? (readonly)
Returns Namespace URI for this attribute.
43 44 45 |
# File 'lib/lutaml/xml/declaration_plan/attribute_node.rb', line 43 def namespace_uri @namespace_uri end |
#use_prefix ⇒ String? (readonly)
Returns Prefix to use for this attribute nil = no prefix (W3C :unqualified or blank namespace) String = use this prefix.
40 41 42 |
# File 'lib/lutaml/xml/declaration_plan/attribute_node.rb', line 40 def use_prefix @use_prefix end |
Instance Method Details
#prefixed? ⇒ Boolean
Check if attribute has a prefix
68 69 70 |
# File 'lib/lutaml/xml/declaration_plan/attribute_node.rb', line 68 def prefixed? !use_prefix.nil? end |
#qualified_name ⇒ String
Get the qualified attribute name (with prefix if applicable)
This is what adapters should use when creating XML attributes.
61 62 63 |
# File 'lib/lutaml/xml/declaration_plan/attribute_node.rb', line 61 def qualified_name use_prefix ? "#{use_prefix}:#{local_name}" : local_name end |
#unqualified? ⇒ Boolean
Check if attribute is unqualified (no prefix)
75 76 77 |
# File 'lib/lutaml/xml/declaration_plan/attribute_node.rb', line 75 def unqualified? use_prefix.nil? end |