class XML::Builder
Overview
An XML builder generates valid XML.
An XML::Error
is raised if attempting to generate
an invalid XML (for example, if invoking #end_element
without a matching #start_element
, or trying to use
a non-string value as an object's field name)
Defined in:
xml/builder.crConstructors
-
.new(io : IO)
Creates a builder that writes to the given io.
Instance Method Summary
-
#attribute(name : String, value) : Nil
Emits an attribute with a value.
-
#attribute(prefix : String?, name : String, namespace_uri : String?, value) : Nil
Emits an attribute with namespace info and a value.
-
#attribute(*args, **nargs, &)
Emits the start of an attribute, invokes the block, and then emits the end of the attribute.
-
#attributes(attributes : Hash | NamedTuple)
Emits the given attributes with their values.
-
#attributes(**attributes)
Emits the given attributes with their values.
-
#cdata(text : String) : Nil
Emits a
CDATA
section. -
#cdata(&)
Emits the start of a
CDATA
section, invokes the block and then emits the end of theCDATA
section. -
#comment(text : String) : Nil
Emits a comment.
-
#comment(&)
Emits the start of a comment, invokes the block and then emits the end of the comment.
-
#document(version = nil, encoding = nil, &)
Emits the start of the document, invokes the block, and then emits the end of the document.
-
#dtd(name : String, pubid : String, sysid : String, subset : String? = nil) : Nil
Emits a
DTD
. -
#dtd(name : String, pubid : String, sysid : String, &) : Nil
Emits the start of a
DTD
, invokes the block and then emits the end of theDTD
. -
#element(__name__ : String, **attributes, &)
Emits the start of an element with the given attributes, invokes the block and then emits the end of the element.
-
#element(prefix : String?, name : String, namespace_uri : String?, attributes : Hash | NamedTuple)
Emits an element with namespace info with the given attributes.
-
#element(prefix : String?, name : String, namespace_uri : String?, **attributes)
Emits an element with namespace info with the given attributes.
-
#element(name : String, attributes : Hash | NamedTuple)
Emits an element with the given attributes.
-
#element(__name__ : String, **attributes)
Emits an element with the given attributes.
-
#element(__name__ : String, attributes : Hash | NamedTuple, &)
Emits the start of an element with the given attributes, invokes the block and then emits the end of the element.
-
#element(__prefix__ : String?, __name__ : String, __namespace_uri__ : String?, **attributes, &)
Emits the start of an element with namespace info with the given attributes, invokes the block and then emits the end of the element.
-
#element(__prefix__ : String?, __name__ : String, __namespace_uri__ : String?, attributes : Hash | NamedTuple, &)
Emits the start of an element with namespace info with the given attributes, invokes the block and then emits the end of the element.
-
#end_attribute : Nil
Emits the end of an attribute.
-
#end_cdata : Nil
Emits the end of a
CDATA
section. -
#end_comment : Nil
Emits the end of a comment.
-
#end_document : Nil
Emits the end of a document.
-
#end_dtd : Nil
Emits the end of a
DTD
. -
#end_element : Nil
Emits the end of an element.
-
#flush
Forces content written to this writer to be flushed to this writer's
IO
. -
#indent=(level : Int)
Sets the indent level (number of spaces).
-
#indent=(str : String)
Sets the indent string.
-
#namespace(prefix, uri)
Emits a namespace.
-
#quote_char=(char : Char)
Sets the quote char to use, either
'
or"
. -
#start_attribute(name : String) : Nil
Emits the start of an attribute.
-
#start_attribute(prefix : String?, name : String, namespace_uri : String?)
Emits the start of an attribute with namespace info.
-
#start_cdata : Nil
Emits the start of a
CDATA
section. -
#start_comment : Nil
Emits the start of a comment.
-
#start_document(version = nil, encoding = nil) : Nil
Emits the start of the document.
-
#start_dtd(name : String, pubid : String, sysid : String) : Nil
Emits the start of a
DTD
. -
#start_element(name : String) : Nil
Emits the start of an element.
-
#start_element(prefix : String?, name : String, namespace_uri : String?) : Nil
Emits the start of an element with namespace info.
-
#text(content : String) : Nil
Emits text content.
Instance methods inherited from class Reference
==(other : self)==(other : JSON::Any)
==(other : YAML::Any)
==(other) ==, dup dup, hash(hasher) hash, inspect(io : IO) : Nil inspect, object_id : UInt64 object_id, pretty_print(pp) : Nil pretty_print, same?(other : Reference)
same?(other : Nil) same?, to_s(io : IO) : Nil to_s
Constructor methods inherited from class Reference
new
new
Instance methods inherited from class Object
! : Bool
!,
!=(other)
!=,
!~(other)
!~,
==(other)
==,
===(other : JSON::Any)===(other : YAML::Any)
===(other) ===, =~(other) =~, as(type : Class) as, as?(type : Class) as?, class class, dup dup, hash(hasher)
hash hash, in?(*values : Object) : Bool
in?(collection) : Bool in?, inspect : String
inspect(io : IO) : Nil inspect, is_a?(type : Class) : Bool is_a?, itself itself, nil? : Bool nil?, not_nil! not_nil!, pretty_inspect(width = 79, newline = "\n", indent = 0) : String pretty_inspect, pretty_print(pp : PrettyPrint) : Nil pretty_print, responds_to?(name : Symbol) : Bool responds_to?, tap(&) tap, to_json(io : IO)
to_json to_json, to_pretty_json(io : IO, indent : String = " ")
to_pretty_json(indent : String = " ") to_pretty_json, to_s : String
to_s(io : IO) : Nil to_s, to_yaml(io : IO)
to_yaml to_yaml, try(&) try, unsafe_as(type : T.class) forall T unsafe_as
Class methods inherited from class Object
from_json(string_or_io, root : String)from_json(string_or_io) from_json, from_yaml(string_or_io : String | IO) from_yaml
Constructor Detail
Instance Method Detail
Emits an attribute with namespace info and a value.
Emits the start of an attribute, invokes the block, and then emits the end of the attribute.
Emits the given attributes with their values.
Emits a CDATA
section. Escapes nested CDATA
end sequences.
Emits the start of a CDATA
section, invokes the block
and then emits the end of the CDATA
section.
NOTE CDATA
end sequences written within the block
need to be escaped manually.
Emits the start of a comment, invokes the block and then emits the end of the comment.
Emits the start of the document, invokes the block, and then emits the end of the document.
Emits a DTD
.
Emits the start of a DTD
, invokes the block
and then emits the end of the DTD
.
Emits the start of an element with the given attributes, invokes the block and then emits the end of the element.
Emits an element with namespace info with the given attributes.
Emits an element with namespace info with the given attributes.
Emits an element with the given attributes.
Emits an element with the given attributes.
Emits the start of an element with the given attributes, invokes the block and then emits the end of the element.
Emits the start of an element with namespace info with the given attributes, invokes the block and then emits the end of the element.
Emits the start of an element with namespace info with the given attributes, invokes the block and then emits the end of the element.
Emits the start of an attribute with namespace info.
Emits the start of the document.
Emits the start of a DTD
.
Emits the start of an element with namespace info.
Emits text content.
Text content can happen inside of an #element
, #attribute
value, #cdata
, #dtd
, etc.