Subject: RE: Accessing the XML declaration, the namespace-uri() function From: Dylan Walsh <Dylan.Walsh@xxxxxx> Date: Fri, 5 Nov 1999 14:11:01 -0000 |
>Date: Thu, 4 Nov 1999 17:48:58 -0700 >From: Mike Brown <mbrown@xxxxxxxxxxxxx> >Subject: RE: Accessing the XML declaration, the namespace-uri() function > >Dylan Walsh wrote: >> Is it possible to somehow access the attributes of the <?xml >> version="1.0"?> tag? > >No. An XML parser looks at the XML declaration so that it can know how to go >about interpreting the character data that comprises the rest of the >document. The declaration is not fed by the XML parser into your XSL >processor. It seems you can with IE5. The default XML viewer stylesheet uses <xsl:template match="pi('xml')> as I've mentioned in another post. Alas this isn't possible with up to date XSL. >> I'm trying to create a stylesheet that will generate a >> HTML view of any XML code > >A stylesheet that generates an HTML view of XML *code* is one thing. A >stylesheet that generates an HTML view of the *node tree* that XML code >*represents* is something altogether different. What I have created is a stylesheet which gives you a view of your XML file in your web browser via standard HTML. The code is indented and highlighted i.e. the output when viewed in a brower looks like your XML code, only indented & color coded. Mine does everything except show the <?XML?> declaration and the namespaces. >> Would it be safe to assume that the declaration is always >> <?xml version="1.0"?> and hard code it, i.e.: >> <?xml version="1.0"?> ? > >No, it's not safe to assume. If you are trying to HTMLize the code (of which >the XML declaration and entity references are a part) and not the node tree, >then you need to avoid feeding the XML source document to your XSL processor >in a manner that causes the document to be split up into the tree of nodes >that the document represents. (i.e., good luck.) I suspect that you are >actually trying to HTMLize the node tree, which doesn't contain the XML >declaration or the DTD (yet), so you need to not be worrying about it. Perhaps I've explained my goal more clearly above ("What I have created is..."). What I am proposing here is a cheat, which assumes we'll be using <?xml version="1.0"?> for a while to come. >> Also, does the namespace-uri() function work in XT? [...] >> I can't get it to produce anything (using <xsl:value-of >> select="namespace-uri()> ). ><xsl:value-of select="namespace-uri(foo)"/> will create in the result tree a >text node containing the namespace URI of the first node in the node-set >identified by the XPath location path 'foo'. >http://www.w3.org/TR/xpath#section-Node-Set-Functions explains several >situations which will cause this function to return an empty string. And if >you omit the argument, then the context node will be used. Are you sure your >context node has a namespace? > >- -Mike I'd like elements which declare names spaces to have xmlns:foo="uri" in my output, as they do in the source. I've made some progress with namespace-uri(), but I don't think I'll be able to do what I want to until XT supports the namespace axis (which will allow me to show the name of the namespace). XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: Accessing the XML declaration, , Mike Brown | Thread | RE: Accessing the XML declaration, , Dylan Walsh |
RE: Stylesheet to view XML code in , Dylan Walsh | Date | RE: Accessing the XML declaration, , Dylan Walsh |
Month |