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.cr

Constructors

Instance Method Summary

Instance methods inherited from class Reference

==(other : self)
==(other : JSON::Any)
==(other : YAML::Any)
==(other)
==
, dup dup, hash(hasher) hash, initialize initialize, inspect(io : IO) : Nil inspect, object_id : UInt64 object_id, pretty_print(pp) : Nil pretty_print, same?(other : Reference) : Bool
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?(collection : Object) : Bool
in?(*values : Object) : Bool
in?
, inspect(io : IO) : Nil
inspect : String
inspect
, is_a?(type : Class) : Bool is_a?, itself itself, nil? : Bool nil?, not_nil!(message)
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) : Nil
to_json : String
to_json
, to_pretty_json(indent : String = " ") : String
to_pretty_json(io : IO, indent : String = " ") : Nil
to_pretty_json
, to_s(io : IO) : Nil
to_s : String
to_s
, to_yaml(io : IO) : Nil
to_yaml : String
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

def self.new(io : IO) #

Creates a builder that writes to the given io.


[View source]

Instance Method Detail

def attribute(*args, **nargs, &) #

Emits the start of an attribute, invokes the block, and then emits the end of the attribute.


[View source]
def attribute(prefix : String | Nil, name : String, namespace_uri : String | Nil, value) : Nil #

Emits an attribute with namespace info and a value.


[View source]
def attribute(name : String, value) : Nil #

Emits an attribute with a value.


[View source]
def attributes(attributes : Hash | NamedTuple) : Nil #

Emits the given attributes with their values.


[View source]
def attributes(**attributes) #

Emits the given attributes with their values.


[View source]
def cdata(&) #

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.


[View source]
def cdata(text : String) : Nil #

Emits a CDATA section. Escapes nested CDATA end sequences.


[View source]
def comment(&) #

Emits the start of a comment, invokes the block and then emits the end of the comment.


[View source]
def comment(text : String) : Nil #

Emits a comment.


[View source]
def document(version = nil, encoding = nil, &) #

Emits the start of the document, invokes the block, and then emits the end of the document.


[View source]
def dtd(name : String, pubid : String, sysid : String, &) : Nil #

Emits the start of a DTD, invokes the block and then emits the end of the DTD.


[View source]
def dtd(name : String, pubid : String, sysid : String, subset : String | Nil = nil) : Nil #

Emits a DTD.


[View source]
def element(__prefix__ : String | Nil, __name__ : String, __namespace_uri__ : String | Nil, 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.


[View source]
def element(__prefix__ : String | Nil, __name__ : String, __namespace_uri__ : String | Nil, **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.


[View source]
def 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.


[View source]
def 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.


[View source]
def element(prefix : String | Nil, name : String, namespace_uri : String | Nil, attributes : Hash | NamedTuple) : Nil #

Emits an element with namespace info with the given attributes.


[View source]
def element(prefix : String | Nil, name : String, namespace_uri : String | Nil, **attributes) : Nil #

Emits an element with namespace info with the given attributes.


[View source]
def element(name : String, attributes : Hash | NamedTuple) : Nil #

Emits an element with the given attributes.


[View source]
def element(__name__ : String, **attributes) #

Emits an element with the given attributes.


[View source]
def end_attribute : Nil #

Emits the end of an attribute.


[View source]
def end_cdata : Nil #

Emits the end of a CDATA section.


[View source]
def end_comment : Nil #

Emits the end of a comment.


[View source]
def end_document : Nil #

Emits the end of a document.


[View source]
def end_dtd : Nil #

Emits the end of a DTD.


[View source]
def end_element : Nil #

Emits the end of an element.


[View source]
def flush : Nil #

Forces content written to this writer to be flushed to this writer's IO.


[View source]
def indent=(str : String) #

Sets the indent string.


[View source]
def indent=(level : Int) #

Sets the indent level (number of spaces).


[View source]
def namespace(prefix, uri) : Nil #

Emits a namespace.


[View source]
def quote_char=(char : Char) #

Sets the quote char to use, either ' or ".


[View source]
def start_attribute(prefix : String | Nil, name : String, namespace_uri : String | Nil) #

Emits the start of an attribute with namespace info.


[View source]
def start_attribute(name : String) : Nil #

Emits the start of an attribute.


[View source]
def start_cdata : Nil #

Emits the start of a CDATA section.


[View source]
def start_comment : Nil #

Emits the start of a comment.


[View source]
def start_document(version = nil, encoding = nil) : Nil #

Emits the start of the document.


[View source]
def start_dtd(name : String, pubid : String, sysid : String) : Nil #

Emits the start of a DTD.


[View source]
def start_element(prefix : String | Nil, name : String, namespace_uri : String | Nil) : Nil #

Emits the start of an element with namespace info.


[View source]
def start_element(name : String) : Nil #

Emits the start of an element.


[View source]
def text(content : String) : Nil #

Emits text content.

Text content can happen inside of an #element, #attribute value, #cdata, #dtd, etc.


[View source]