I did not succeed in on-the-fly loading data from an xml-buffer and subsequently executing its content.
The accompanying minimal example of a <document> shows what I strive to accomplish.
The node <buffer> contains the buffered data (abc meant to be set in bold) and node <getbuffer> executing the typesetting. As can be seen the output the <b>xyz</b> outside <buffer> is correctly set in bold, but the contents of <buffer> is not processed: the
xml is just reproduced. Obviously there is some misunderstanding on my part.
I would like to be pointed in the right direction.
Hans van der Meer
\startbuffer[demo-xml]
<?xml version="1.0" encoding="UTF-8"?>
<document>
<buffer name="name">
<b>abc</b>
</buffer>
<!-- other stuff in real application -->
<getbuffer name="name"/>
<b>xyz</b>
</document>
\stopbuffer
\enabletrackers[lxml.loading,lxml.setups]
\startxmlsetups xml:demo:base
\xmlsetsetup{#1}{document|buffer|getbuffer|execbuffer|b}{xml:demo:*}
\stopxmlsetups
\xmlregisterdocumentsetup{demo}{xml:demo:base}
\startxmlsetups xml:demo:buffer
... enter <buffer> for "\xmlatt{#1}{name}"\crlf
\xmltobuffer{#1}{.}{\xmlatt{#1}{name}}
\stopxmlsetups
\startxmlsetups xml:demo:getbuffer
... enter <getbuffer> for "\xmlatt{#1}{name}"\crlf
\xmlprocessbuffer{}{\xmlatt{#1}{name}}{xml:demo:execbuffer}
\stopxmlsetups
\startxmlsetups xml:demo:execbuffer
... enter <execbuffer>\crlf
\xmlall{#1}{buffer/*}
\stopxmlsetups
\startxmlsetups xml:demo:b
\xmlstripnolines{#1}{.}
{\bf\xmlflush{#1}}
\stopxmlsetups
\startxmlsetups xml:demo:document
\writestatus{TEST}{start document}
start document "\xmldocument"\blank
\xmlflush{#1}\blank
stop document "\xmldocument"\blank
\writestatus{TEST}{stop document}
\stopxmlsetups
\starttext
\textrule{Demo of buffer: demo.xml}
==========\crlf
\xmlprocessbuffer{demo}{demo-xml}{}
==========\crlf
\stoptext