|
Subject: Re: [xsl] XSL embedded in XML From: Chris Maloney <voldrani@xxxxxxxxx> Date: Mon, 18 Apr 2011 09:21:34 -0400 |
I think it's because your top-level element:
<target xmlns="urn:asdf">
declares the default (no-prefix) namespace for the entire xml+xslt
document. That has the effect of putting the <html> and all the other
HTML tags into this "urn:asdf" namespace. Whereas, if you look at the
stand-alone xsl, you have no default namespace defined, so <html> is
in "no namespace".
Try adding xmlns:html='http://www.w3.org/1999/xhtml', and then using
<html:html>, <html:body>, etc.
On Mon, Apr 18, 2011 at 8:16 AM, Gabriel Kleinoscheg
<gabriel.kleinoscheg@xxxxxx> wrote:
> Hello Everybody!
>
> I'm still struggling with the following XML and XSL files. In the first
> example I've separated the XML and the XSL:
>
> XML:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <?xml-stylesheet type='text/xsl' href='test02.xsl'?>
> <target xmlns="urn:asdf">
> B <title>This is the title</title>
> </target>
>
> XSL:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <xsl:stylesheet xmlns:n="urn:asdf" version="1.0"
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
> B <xsl:output method="html"/>
> B <xsl:template match="/">
> B B <html>
> B B B <head>
> B B B B <title>
> B B B B B <xsl:value-of select="n:target/n:title"/>
> B B B B </title>
> B B B </head>
> B B B <body>
> B B B B <h1>
> B B B B B <center>
> B B B B B B <xsl:value-of select="n:target/n:title"/>
> B B B B B </center>
> B B B B </h1>
> B B B </body>
> B B </html>
> B </xsl:template>
> B <!--xsl:template match="xsl:stylesheet"/-->
> </xsl:stylesheet>
>
> The example above works quite well in every browser. Now comes the
> challenge - embedding the XSL into the XML:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <?xml-stylesheet type='text/xsl' href='#test'?>
> <!DOCTYPE target [<!ATTLIST xsl:stylesheet id ID #REQUIRED>]>
> <target xmlns="urn:asdf">
> B <xsl:stylesheet id="test" xmlns:n1="urn:asdf" version="1.0"
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
> B B <xsl:output method="html"/>
> B B <!-- CDA document -->
> B B <xsl:template match="/">
> B B B <html>
> B B B B <head>
> B B B B B <meta content="text/html; charset=UTF-8"
> http-equiv="Content-Type" />
> B B B B B <title>
> B B B B B B <xsl:value-of select="n1:target/n1:title"/>
> B B B B B </title>
> B B B B </head>
> B B B B <body>
> B B B B B <h1>
> B B B B B B <center>
> B B B B B B B <xsl:value-of select="n1:target/n1:title"/>
> B B B B B B </center>
> B B B B B </h1>
> B B B B </body>
> B B B </html>
> B B </xsl:template>
> B B <xsl:template match="xsl:stylesheet"/>
> B </xsl:stylesheet>
> B <title>This is the title</title>
> </target>
>
> I've tested this example - it doesn't show correctly in Firefox and IE
> but in Safari. Although when I check the generated source with
> WebDeveloper in Firefox I see the correct html-code.
>
> If I write
>
> <n1:target xmlns:n1="urn:asdf">
> B <n1:title> ... </n1:title>
> </n1:title>
>
> everything works perfectly. But why isn't it possible without the
> prefixes in the XML? Why does it work, if XML and XSL are separated but
> not when they are within one document?
>
> Hope you can help me. Thank you anyway.
>
> regards, Gabriel
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| [xsl] XSL embedded in XML, Gabriel Kleinoscheg | Thread | [xsl] A problem with concat(), Bridger Dyson-Smith |
| [xsl] XSL embedded in XML, Gabriel Kleinoscheg | Date | Re: Was: [xsl] mode and moved to Na, ac |
| Month |