RE: [xsl] namespace in html tags

Subject: RE: [xsl] namespace in html tags
From: "Stephen Tredrea" <stephen.tredrea@xxxxxxxxxxxxx>
Date: Wed, 16 Jun 2004 20:07:13 +0200
Thanks.

What I'm doing is generating a whole lot of html fragments (as xml) by
transforming xml source data (that uses the RDF and DC namespaces) using
appropriate templates. These fragments I then wrap in xml tags corresponding
the placeholders in an xsl which is used to perform a final transform to
xhtml.

For example, the "<h1>Hello world</h1>" output below would get wrapped in a
<heading> tag and then written to the final html using <xsl:copy-of
select="/root/heading/*">

I'm only interested (at this stage) in using namespaces in the source xml.
Currently the only thing missing from the final HTML is the document type
declaration simply because I don't know how to put it in. Baby steps - half
the time I don't really know what I'm doing because I find it very
confusing.

Stephen

-----Original Message-----
From: Passin, Tom [mailto:tpassin@xxxxxxxxxxxx]
Sent: 16 June 2004 07:05 PM
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: RE: [xsl] namespace in html tags


> From: Stephen Tredrea [mailto:stephen.tredrea@xxxxxxxxxxxxx]
>
> Is there any way to stop a transformation putting the
> namespace declarations into html tags?
>
> For example, this XSL...
>
> <xsl:stylesheet version="1.0"
>   xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
>   xmlns:dc="http://purl.org/dc/elements/1.1/";
>   >
> <xsl:output method="xml" omit-xml-declaration="yes"/>
>
> <xsl:template match="/">
> 	<h1>Hello world</h1>
> </xsl:template>
>
> </xsl:stylesheet>
>
> ...produces this html...
>
> <h1 xmlns:dc="http://purl.org/dc/elements/1.1/";>Hello world</h1>
>

You can suppress specific namespace prefixes like this -

<xsl:stylesheet version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
  xmlns:dc="http://purl.org/dc/elements/1.1/";
  exclude-result-prefixes='dc'>

However, you might want to tell us a little more about what you want to
achieve here.  True html is not xml and does not support namespaces.  If
you want xhtml, you should be including a document type declaration that
says so, but then it won't be so easy to insert elements from the dc
namespace.

I speculate that you want to produce something that looks enough like
html to get by a browser, but isn't literally either html or xhtml.  Is
that right?

Cheers,

Tom P

--+------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe@xxxxxxxxxxxxxxxxxxxxxx>
--+--



Current Thread