Re: saxon xmlspy discrepancy in whitespace handling
<xsl:variable name="newline" select=" ' ' " />
I tend to solve my own whitespace problems with character maps, so that I can use a private use character everywhere in my code. That way I do not need to think about the whitespace removal of the stylesheet:
inside a stylesheet dtd:
<!ENTITY newline "&#x0A;" > <!ENTITY newline_substitute "" > <!-- mapped to newline --> <!ENTITY nsub "&newline_substitute;" > <!-- alias -->
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xsl:stylesheet SYSTEM "../../xslt-common/dtd/webitor-transformation.dtd" >
<xsl:stylesheet version = "2.0" xmlns:xsl = "http://www.w3.org/1999/XSL/Transform" >
<xsl:output-character character="&newline_substitute;" string="&newline;"/>
<xsl:output use-character-map="substitutes" />
<xsl:template match="/"> <xsl:value-of select=" '⊄' " /> </xsl:template> </xsl:stylesheet>
In the example above there is no reason at all of course for using &nbsub; instead of unless for readability (but you could use &newline; too). However, when passing around variables, doing copy-of, value-of etc, or even a normalice-space, you can loose the newlines. This way you can preserve them more easily and, the better part, when I place an ⊄ anywhere, it will always be output (which is not so for )
There are other possibilities that have to do with linebreaking and proper indentation that are otherwise hard to achieve or may get lost in parameter passing as value-of instead of copy-of etc., but I am drifting too far away now from the OP's question....
(I wonder if this technique is used by others, too and for what purposes; I use similar tricks for easier handling of quote-escapes in source documents and outputting tab characters for indentation when normal indentation does not suffice)
-- Abel Braaksma
PURCHASE STYLUS STUDIO ONLINE TODAY!
Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!
Download The World's Best XML IDE!
Accelerate XML development with our award-winning XML IDE - Download a free trial today!
Subscribe in XML format