xsl-list
[Top] [All Lists]

XSLT2 Character Maps

2004-07-24 04:54:05
Hi,

I've had a look at XSLT 2's character maps feature. In the tool I am
working on (upCast from infinity-loop), we have that very concept
implemented now for several releases and added some convenience options
(like the ability to easily define a range of Unicode positions that
should be output as numerical decimal/hexadecimal entities) - but that's
not the issue here.

The point is that we resp. some of our users also use character maps to
create (mainly empty) elements in the output. For example a line in our
maps like

  0x2028="<linebreak/>"

creates a linebreak element in the output for every instance of Unicode
character &#x2028;. The problem that arises for us is attribute values:
If these contain a 0x2028 character, they get malformed:

<element attr="a&#x2028;b">
  gets
<element attr="a<linebreak/>b">,

which is not valid XML.

From what I see, character maps in XSLT2 do not provide a way to specify
different character mappings for text and attribute nodes, so it is not
possible to only replace 0x2028 with <linebreak/> in text nodes, but not
in attribute nodes.

We therefore consider adding additional flags for each character mapping
rule in our character map implementation that lets the user specify
whether the rule should be applied to

 - text nodes
 - comment nodes
 - attribute nodes

or any combination of these, with additional ones being added if needed.
Have similar thoughts been given to XSLT2's character maps, or am I
simply overlooking something obvious?

Kind regards
Christian




<Prev in Thread] Current Thread [Next in Thread>