From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.io/gmane.comp.tex.context/5800 Path: main.gmane.org!not-for-mail From: Hans Hagen Newsgroups: gmane.comp.tex.context Subject: Re: Some XML typesetting questions Date: Tue, 09 Oct 2001 09:40:50 +0200 Sender: owner-ntg-context@let.uu.nl Message-ID: <5.1.0.14.1.20011009093502.02690f50@server-1> References: <5.1.0.14.1.20011008112132.031f8528@server-1> <878zemy5d7.fsf@dellius.nederware.nl> <5.1.0.14.1.20011008112132.031f8528@server-1> NNTP-Posting-Host: coloc-standby.netfonds.no Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; format=flowed X-Trace: main.gmane.org 1035396368 4680 80.91.224.250 (23 Oct 2002 18:06:08 GMT) X-Complaints-To: usenet@main.gmane.org NNTP-Posting-Date: Wed, 23 Oct 2002 18:06:08 +0000 (UTC) Cc: ntg-context@ntg.nl Original-To: Simon Pepping In-Reply-To: <20011008223350.A763@scaprea> Xref: main.gmane.org gmane.comp.tex.context:5800 X-Report-Spam: http://spam.gmane.org/gmane.comp.tex.context:5800 At 10:33 PM 10/8/2001 +0200, Simon Pepping wrote: >Interesting, this looks like your API for XML programming. How do I go >about to understand this? Is there documentation, or should I just >work my way through the expansions produced by \tracingcommands=1? Or >should I not try to understand this? in a couple of days i will release the new xtag modules, most of the interfac eis described in eXaMpLe.pdf but not yet this 'written in 5 minutes' api. >Simon > >On Mon, Oct 08, 2001 at 11:25:50AM +0200, Hans Hagen wrote: > > \unprotect > > > > \def\@@XMLescape {\@@XML esc} everything xml has a namespace, this is the prefix, not for users > > \def\defineXMLescape[#1]#2{\long\setvalue{\@@XMLescape:#1}{#2}} > > > > \defineXMLescape [--] {\gobbleuntil{-->}} > > \defineXMLescape [CDATA] {\skipfirstverbatimlinefalse > > \processtaggeddisplayverbatim{]]>}} > > \defineXMLescape [\s!default] {\gobbleuntil{>}} these are default def's, using a couple of context system macros, described in syst-*.tex (it may be worth printing the documentation for syst-gen.tex and alike: texexec --pdf --modu syst-tex.tex > > \def\executeXMLescape#1% > > {\executeifdefined{\@@XMLescape:#1}{\getvalue{\@@XMLescape:\s!default}}} again, something not for the user, this hooks into the element handler (which captures ? ! and the rest) > > \protect > > > > \long\def\xdoXMLelement !#1 % !-- --> or !xyz > > > {\endgroup\executeXMLescape{#1}} > > > > Now, given that you have a file, and a ! handler like: > > > > \defineXMLescape [DOCTYPE] {\handleXMLescapeDOCTYPE} > > \defineXMLescape [ENTITY] {\handleXMLescapeENTITY} > > > > \def\handleXMLescapeDOCTYPE#1[#2]>% > > {#2} > > > > \def\handleXMLescapeENTITY#1 #2 "#3"#4>% > > {\doif{#2}{SYSTEM}{\defineXMLentity[#1]{\readfile{#3}{}{}}}} this is the kind of stuff that users can write to extend the parser, btu i will probably add reasonable thinsg to the kernel what happens here is that (since or ]> ior whatever. Here a little knowledge of tex and xml helps -) > > then: > > > > \defineXMLsingular [test] {WHOW} > > \defineXMLsingular [hello] {Hello} > > \defineXMLsingular [world] {World} this is described in example.pdf Hans ------------------------------------------------------------------------- Hans Hagen | PRAGMA ADE | pragma@wxs.nl Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: +31 (0)38 477 53 69 | fax: +31 (0)38 477 53 74 | www.pragma-ade.com -------------------------------------------------------------------------