blockly > utils > xml

utils.xml namespace

Functions

Function Description
createElement(tagName) Create DOM element for XML.
createTextNode(text) Create text element for XML.
domToText(dom)

Converts a DOM structure into plain text. Currently the text format is fairly ugly: all one line with no whitespace.

Control characters are escaped using their decimal encodings. This includes U+0000 even though it is technically never a valid XML character (even in XML 1.1). https://www.w3.org/TR/xml11/#charsets

When decoded U+0000 will be parsed as U+FFFD (the "replacement character").

injectDependencies(dependencies)

Inject implementations of document, DOMParser and/or XMLSerializer to use instead of the default ones.

Used by the Node.js wrapper for Blockly (see scripts/package/node/core.js) to supply implementations from the jsdom package instead.

While they may be set individually, it is normally the case that all three will be sourced from the same JSDOM instance. They MUST at least come from the same copy of the jsdom package. (Typically this is hard to avoid satsifying this requirement, but it can be inadvertently violated by using webpack to build multiple bundles containing Blockly and jsdom, and then loading more than one into the same JavaScript runtime. See https://github.com/google/blockly-samples/pull/1452#issuecomment-1364442135 for an example of how this happened.)

textToDom(text)

Converts an XML string into a DOM structure.

Control characters should be escaped. (But we will try to best-effort parse unescaped characters.)

Note that even when escaped, U+0000 will be parsed as U+FFFD (the "replacement character") because U+0000 is never a valid XML character (even in XML 1.1). https://www.w3.org/TR/xml11/#charsets

Variables

Variable Description
NAME_SPACE Namespace for Blockly's XML.