## Underscore characters are rewritten to two underscores (<code>__</code>).
## A character that cannot be represented as NCName character is rewritten to an underscore and its four-digit Unicode.
# As arrays have no names, {@<code ><value/><value/code>} is used as element name.
# JSON values are represented as text nodes.
# The types of values are represented in attributes: