At 11:08 PM 10/13/2001 +0200, Simon Pepping wrote:
>I have been experimenting a bit with attributes, e.g. in this phrase:
><item>And even worse<ref/>, <ref name="att"/> attributes <ref/> will not
>be the
>same as in &context;.</item>
>
>1. In the third ref element, the value \XMLpar{ref}{name}{\relax} is
> not relax. Because the element has no (rather an implicit)
> attribute name, the context value is left as it was set by the
> preceding ref element. I think it would be better if attribute
> values are local to the element, and there exists a command that
> lets the user store the value in a control sequence, much like
> \defXMLstring\command.
>
>2. When I use the attribute like this:
> \doifXMLparelse{ref}{name}{(ref:\XMLpar{ref}{name}{})}{}, it would
> be nice to have a shorter way to access the attribute value, say
> \XMLattvalue. The above code contains two implicit if/then branches
> for the attribute, the second not very useful.
locality is a bit of a problem since you don't want tex's grouping to
interfere;
this is why the following method is to be used (eg):
\defineXMLenvironment[whatever][bla=,junk=]
now, each time the element is encountered, 'bla' and 'junk' are set to
nothing, so you start afresh.
concerning the second question: there is \XMLpar{element}{name}{default}
and there will be a \XMLparself too as well as a \XMLNSpar one for
namespaced pars (this kind of works now). There are (in the release that
will be posted soon) now severel modes of operandi with respect to handling
element namespaces and attribute namespaces. I just implemented &#number;
things and there are methods to turn thngs like
key="value&value;and&tex;and{andworseé"
into tex robust things (again several methods) which is handy when they are
used in for instance cross referencing.
[as a bonus the module is sped up a bit; i use the maps biblography as
reference run: some 139 sec now, while 150 last month).
Hans
-------------------------------------------------------------------------
Hans Hagen | PRAGMA ADE | [EMAIL PROTECTED]
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
-------------------------------------------------------------------------