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
participants (1)
-
Meer, Hans van der