Warning: because this renderer doesn't directly create the output, but rather
an XML tree representation, it is impossible to render pre-escaped text. This
means that preEscapedString will produce the same output as string. This
also applies to the functions preEscapedText, preEscapedTextValue...