David Carlisle
In addition to Michael's reasons, there is also the fact that 2.0 has
character maps that can be used for many of the things that d-o-e is
used for in a slightly less disruptive way architecturally.
To expand on that, one of the problems with d-o-e is that you can go <xsl:value-of select="'<br>'"/>
<xsl:value-of disable-output-escaping="yes"
select="'<br>'"/>
and the model is that that puts something into the result tree which when linearised at the end of the process produces
<br><br> The trouble is that, as specified, there isn't really anything that can go into result tree text nodes that can have that effect, so systems that support d-o-e have to have some private internal annotations to record those bits of the tree where d-o-e is in effect.
In 2.0 you can always replace this by
<xsl:value-of select="'<br>'"/>
<xsl:value-of
select="translate('<br>',
'<>&',
'')"/> Together with a character mao that maps back:
<xsl:output-character character=" string="<"/>
<xsl:output-character character=" string=">"/>
<xsl:output-character character=" string="&"/>
This works the same way except that now the information is stored in the result tree using a mechanism that is actually allowed by the specification of the datamodel (just three otherwise unused characters).
Of course the other problems with d-o-e remain, that this still only works if serialisation is tightly controlled by the XSLT engine and that in nine times out of ten it is only being used by mistake, when the stylesheet could have gone
<br/>
and used an element node directly. > The way I read the w3c spec, it looked like you'd have to enclose
> those three output-character definitions in a named character map and
> make the serializer aware of that map by specifying the name in the
> use-character-map attribute of xsl:output. Did you assume that or am
> I missing something?
That's correct sorry I didn't make that clearer.
Rather than using translate explictly, if I were doing thjis I'd define a function xsl:my:d-o-e in some namespace that took a string and replaced < > and & as I suggested so you could just do <xsl:value-of select="my:d-o-e(.)"/> where you needed to this.
>
Then anywhere I use  in my XSL I get < in my output?
yes > Can I map « to < if I'm confident that my XML
> won't contain «? yes you can map any single character
> Can I map ¤ to "some really long string I'm sick of typing" or is
> that just going to far? (I'm really trying to give Wendell heart
> attacks here) yes |