Re: cdata output and different xslt processors
I have been porting my presentation layer to use different backend processors. So far using saxon-java has been the easiest except for it's handling of cdata. I was wondering if the was a standard way of handling it, specifically "<" and ">"? To me, it would seem that the xslt processor should supply the markup without escaping it. I have seen a response on this from Mike Kay in a post on Oct 2000 saying: "Because the angle brackets are in a CDATA section, they are ordinary characters, not markup, so they have to be output as ordinary characters." My understanding is that whatever is between cdata brackets should be passed "as-is". Wouldn't this be easiest for people to understand? I realize there must be some reason for Saxon not doing this. What is it? WHy do the other processors I have used not do this? To any XSLT system (and any XML application) input of <![CDATA[<aaa>]]> should be the same as input of <aaa> an XSLT system just can't tell which form the source file had. That is the whole point of CDATAS marked sections it's a convenience feature for an author to save quoting each < and & individually but the whole point is taht it should be equivalent to the quoted form. In a situation I have the workaround (xsl:text disable-out-put-escaping="yes") is ugly and does not produce the same results as cdata (that does not escape "<" or ">"). I have to (???) use cdata because i am trying to output some non-standard browser stuff, here is a snippet using xsl:text: Why are you outputting this as text rather than as an element with attributes????????? <xsl:text disable-output-escaping="yes"> <DIV STYLE="position:absolute; padding:5px; background:menu; border:2px outset #cccccc;"> <myMenu:menu id="Site" onsubmenu_click="doFunction()" >Site <myMenu:menu id="mnItem_GenSite">Generate Site</myMenu:menu> <myMenu:menu id="mnItem_PromoteSite">Promote Site</myMenu:menu> <myMenu:menu id="mnItem_EditProps_Site">Properties</myMenu:menu> <myMenu:menu id="mnItem_SiteMap">View Sitemap</myMenu:menu> <myMenu:menu id="mnItem_New_Site">Edit Another Site</myMenu:menu> </myMenu:menu> ....snip..... maybe the answer to my question above is in the paragraph below, but if so I don't understand. Given that your stylesheet is using the myMenu namespace why do you want to avoid declaring it? Is there another way I can handle this? I don't want to declare the namespace for the transformation on the server. I want it to be used only on the client. thanks for any help/insight, -Rob David _____________________________________________________________________ This message has been checked for all known viruses by Star Internet delivered through the MessageLabs Virus Scanning Service. For further information visit http://www.star.net.uk/stats.asp or alternatively call Star Internet for details on the Virus Scanning Service. XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
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