Class: Lutaml::Xml::DataModel::XmlAttribute

Inherits:
Object
  • Object
show all
Defined in:
lib/lutaml/xml/data_model.rb

Overview

Represents an XML attribute with optional namespace.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name, value, namespace_class = nil) ⇒ XmlAttribute

Initialize a new XML attribute

Parameters:

  • name (String)

    Attribute local name

  • value (String)

    Attribute value

  • namespace_class (Class, nil) (defaults to: nil)

    XmlNamespace class



184
185
186
187
188
# File 'lib/lutaml/xml/data_model.rb', line 184

def initialize(name, value, namespace_class = nil)
  @name = name
  @value = value
  @namespace_class = namespace_class
end

Instance Attribute Details

#nameString (readonly)

Returns Attribute local name.

Returns:

  • (String)

    Attribute local name



171
172
173
# File 'lib/lutaml/xml/data_model.rb', line 171

def name
  @name
end

#namespace_classClass? (readonly)

Returns XmlNamespace class (not instance).

Returns:

  • (Class, nil)

    XmlNamespace class (not instance)



174
175
176
# File 'lib/lutaml/xml/data_model.rb', line 174

def namespace_class
  @namespace_class
end

#valueString (readonly)

Returns Attribute value.

Returns:

  • (String)

    Attribute value



177
178
179
# File 'lib/lutaml/xml/data_model.rb', line 177

def value
  @value
end

Instance Method Details

#inspectString

Detailed inspection for debugging

Returns:

  • (String)


215
216
217
218
# File 'lib/lutaml/xml/data_model.rb', line 215

def inspect
  ns_info = namespace_class ? " (ns: #{namespace_class})" : ""
  "#<#{self.class.name} #{self}#{ns_info}>"
end

#qualified_name(prefix = nil) ⇒ String

Get qualified name (prefix:name or name)

Parameters:

  • prefix (String, nil) (defaults to: nil)

    Optional prefix override

Returns:

  • (String)


194
195
196
197
198
199
200
201
202
203
# File 'lib/lutaml/xml/data_model.rb', line 194

def qualified_name(prefix = nil)
  if prefix
    "#{prefix}:#{name}"
  elsif namespace_class.respond_to?(:prefix_default)
    ns_prefix = namespace_class.prefix_default
    ns_prefix ? "#{ns_prefix}:#{name}" : name
  else
    name
  end
end

#to_sString

String representation for debugging

Returns:

  • (String)


208
209
210
# File 'lib/lutaml/xml/data_model.rb', line 208

def to_s
  "#{qualified_name}=\"#{value}\""
end