[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

RE: is it possible to construct new xml with xsl ?

Subject: RE: is it possible to construct new xml with xsl ?
From: "Julian Reschke" <julian.reschke@xxxxxx>
Date: Mon, 17 Jun 2002 08:54:23 +0200
xpath 1.0 xml processing instruction
Hi.

1) The XML declaration is not a PI, correct. In the XPath data model, the
XML processing instruction is not available, so there's no way for a
portable XSLT 1.0 transformation to access it.

2) The DOM *allows* to report the XML declaration as PI, and this is what
MSXML's DOM does.

3) Microsofts "WD-XSL" language (and this is what the builtin stylesheet
uses) is not XSLT and does not use XPath (and this is why it can access the
XML declaration).


> -----Original Message-----
> From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx]On Behalf Of Michael
> Leditschke
> Sent: Monday, June 17, 2002 4:05 AM
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: RE:  is it possible to construct new xml with xsl ?
>
>
> <snip/>
>
> > IE will assume the output of the transformation is meant to be
> > interpreted as
> > HTML. If you want collapsible views, you need to use a stylesheet
> > that will
> > produce the (D)HTML that makes the browser produce the view you
> want. See
> >   http://www.dpawson.co.uk/xsl/sect2/microsoft.html#d58e229
>
>
> I had a look at this stylesheet and have a concern about the
> way in which the XML declaration is being generated.
>
>
>
> To my knowledge, the XML Declaration is not a PI per the XML 1.0
> spec (section 2.6). Correct?
>
> Is it illegal for a parser to pass it through as a PI? I would
> have thought it was illegal given the BNF in the XML 1.0 spec.
>
>
> Conclusion -> No parser should pass the XML declaration to
>               an application.
>
>
>
> The XPath 1.0 data model is explicit in section 5.5 that
>
> "The XML declaration is not a processing instruction.
> Therefore, there is no processing instruction node
> corresponding to the XML declaration."
>
> The XSL spec adopts the XPath data model without mention
> of adding the XML declaration as a PI.
>
> Conclusion -> Even if a parser were allowed to pass the
>               XML declaration through as a PI, it is not
>               represented as such in the XSLT data model.
>
>
>
> Now, when displaying a file in IE using the referenced template,
> it does show the xml declaration as provided in the file. If
> no declaration in the file, there's none in the display, etc.
>
> The stylesheet has a template that starts
>
> <xsl:template match="pi('xml')">
>
> Given the above references, and the operation of IE,
> am I correct in assuming
>
>
> 1. MSXML is (incorrectly) passing through the XML declaration
> as a PI in order to render it per the stylesheet.
>
>
> OR
>
>
> 2. It's not just the stylesheet contributing to the displayed
> information. Some additional code must be being invoked to
> detect this stylesheet, and somehow get at and render the XML
> declaration information, which to my knowledge is supposed
> to be hidden from the application by the parser.
>
>
> I tried writing a stylesheet of my own looking
> for an 'xml' PI and tested it with IE, the results of which
> suggested MSXML is not passing through the declaration as a PI,
> so 2) above looks more likely.
>
> Source document
>
> <?xml version="1.0" encoding="UTF-8"?>
> <?xml-stylesheet type="text/xsl" href="hello.xsl"?>
> <greeting>Hello, world!</greeting>
>
>
> Stylesheet
>
> <xsl:stylesheet version="1.0"
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
>   <xsl:template match="/">
>     <html>
>       <head>
>         <title>XML Declaration test</title>
>       </head>
>       <body>
>         <p>
>           <xsl:choose>
>             <xsl:when test="processing-instruction('xml')">
> XML Declaration passed through as PI.</xsl:when>
>             <xsl:otherwise>
> XML Declaration not passed through as PI.</xsl:otherwise>
>           </xsl:choose>
>         </p>
>       </body>
>     </html>
>   </xsl:template>
> </xsl:stylesheet>
>
>
> Result
>
> <html>
> <head>
> <META http-equiv="Content-Type" content="text/html; charset=UTF-16">
> <title>XML Declaration test</title>
> </head>
> <body>
> <p>XML Declaration not passed through as PI.</p>
> </body>
> </html>
>
>
> If the stylesheet authors/modifiers are out there (Nate Austin or
> Jonathan Marsh), would you care to comment?
>
>
> Regards
> Michael
>
>
>
> BTW I tried the MS stylesheet out with SAXON 5.6.2, and as expected,
> the xml declaration information was missing in the resulting
> HTML.
>
>
>
>  XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
>


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.