struct 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, &block)
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
Emits the given attributes with their values.
-
#cdata(text : String) : Nil
Emits a
CDATA
section. -
#cdata(&block)
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(&block)
Emits the start of a comment, invokes the block and then emits the end of the comment.
-
#document(version = nil, encoding = nil, &block)
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, &block) : Nil
Emits the start of a
DTD
, invokes the block and then emits the end of theDTD
. -
#element(__name__ : String, **attributes, &block)
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, &block)
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, &block)
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, &block)
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 struct Struct
==(other) : Bool
==,
hash(hasher)
hash,
inspect(io : IO) : Nil
inspect,
pretty_print(pp) : Nil
pretty_print,
to_s(io)
to_s
Instance methods inherited from struct Value
==(other : JSON::Any)==(other : YAML::Any)
==(other) ==, dup dup
Instance methods inherited from class Object
!=(other)
!=,
!~(other)
!~,
==(other)
==,
===(other : JSON::Any)===(other : YAML::Any)
===(other) ===, =~(other) =~, class class, dup dup, hash(hasher)
hash hash, inspect(io : IO)
inspect inspect, itself itself, not_nil! not_nil!, pretty_inspect(width = 79, newline = "\n", indent = 0) : String pretty_inspect, pretty_print(pp : PrettyPrint) : Nil pretty_print, tap(&block) tap, to_json(io : IO)
to_json to_json, to_pretty_json(indent : String = " ")
to_pretty_json(io : IO, indent : String = " ") to_pretty_json, to_s
to_s(io : IO) to_s, to_yaml(io : IO)
to_yaml to_yaml, try(&block) try, unsafe_as(type : T.class) forall T unsafe_as
Constructor methods inherited from class Object
from_json(string_or_io, root : String) : selffrom_json(string_or_io) : self from_json, from_yaml(string_or_io : String | IO) : self 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 the start of a CDATA
section, invokes the block
and then emits the end of the CDATA
section.
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.