Subject: Re: [xsl] XML Namespaces and <xsl:output> don´t work From: "Alejandro" <alexcontini@xxxxxxxx> Date: Sat, 18 Oct 2008 20:22:21 +0100 |
<xsl:template name="barra_nav"> <xsl:param name="codmenu"></xsl:param> ..... <div class="clear"></div> --> Ignored - Why? ...
( Is it the solution? <div class="clear"> </div> )
Alejandro,
you can control the doctype and the xml declaration by configuring the cocoon serializer. Take a look at:
http://cocoon.apache.org/2.1/userdocs/xhtml-serializer.html
if you are using cocoon 2.2 read
http://cocoon.apache.org/2.2/core-modules/core/2.2/1259_1_1.html
as well.
The configuration didn't change from 2.1 to 2.2 but you should do it in another place.
good luck
Martin.
Alejandro schrieb:Thank you, David
***********
<xsl:text disable-output-escaping="yes"><![CDATA[<!DOCTYPE html PUBL
don't do that!
use doctype-system and doctype-public on xsl:output.
*****
xsl:output dont4t work.
<xsl:output method="xml" media-type="text/html;charset=ISO-8859-1" indent="yes" encoding="ISO-8859-1" omit-xml-declaration="yes" doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" />
<xsl:text disable-output-escaping="yes"><![CDATA[<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">]]></xsl:text>
If i remove:
<xsl:text disable-output-escaping="yes"><![CDATA[<!DOCTYPE html PUBL
then DocType declaration not appear and then the browser enter in quirks mode
<html xmlns="http://www.w3.org/1999/xhtml" lang="es" xml:lang="es"> <head> <title>Biblioteca Insular</title> <meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"/> <link href="css/BIB-INS-external.css" type="text/css" rel="stylesheet"/> <script xmlns="" type="text/javascript" src="js/BINS-funciones.js"></script> ....
in the xmap file (JBOSS)
...
<?xml version="1.0"?>
<map:sitemap xmlns:map="http://apache.org/cocoon/sitemap/1.0">
<!-- =========================== Components ================================ -->
<map:components>
<map:matchers default="wildcard"/>
<map:selectors default="browser"/>
<map:generators default="persistant"/>
<map:transformers default="eadmin"/>
<map:readers default="resource"/>
<map:serializers default="html"/>
<map:actions default="eadm-action"/>
</map:components>
<map:views>
<map:view name="ent" from-position="last">
<map:serialize type="html"/>
</map:view>
<map:view from-position="last" name="links">
<map:serialize type="links"/>
</map:view>
</map:views>
<!-- =========================== Pipelines ================================= -->
<map:pipelines>
<map:pipeline>
<!-- HOME -->
<map:match pattern="home.bin">
<map:aggregate element="listado">
<map:part element="menus" src="cocoon:/menuXMLNavegacion.bin"/>
<map:part element="busqueda" src="cocoon://home-principal.bin"/>
....
</map:aggregate>
<map:transform src="xsl/binsular/home.xsl">
<map:parameter name="use-request-parameters" value="true"/>
</map:transform>
<map:serialize type="html"/> ****
</map:match>
....
</map:pipeline>
</map:pipelines>
</map:sitemap>
I i put **** <map:serialize type="xml"/> then xsl:output work, and Doctype is added but the result is xml, don4t html
what can i do?
best regards, Alex
----- Mensaje original ----- De: "David Carlisle" <davidc@xxxxxxxxx> Para: <xsl-list@xxxxxxxxxxxxxxxxxxxxxx> Enviado: miircoles, 15 de octubre de 2008 17:36 Asunto: Re: [xsl] XML Namespaces and <xsl:output> don4t work
<!-- WHY xmlns="" -->
because you have generated an element h1 in no namespace so that has to have xmlns=" because it is in a different namespace than its parent.
What you should do is generate a h1 in the xhtmml namespace http://www.w3.org/1999/xhtml then no xmlns will be added.
easiest way to do this is to put
xmlns="http://www.w3.org/1999/xhtml"
onto all your xsl:stylesheet elements.
In the stylesheet don't put the xmlns just on html <html xmlns="http://www.w3.org/1999/xhtml" as that only makes the elements in that template be xhtml, all other elements generated are in no-namespace. move that declaration to the top of the stylesheet (all the stylesheets) so that all elements are in the right namespace.
<xsl:text disable-output-escaping="yes"><![CDATA[<!DOCTYPE html PUBL
don't do that!
use doctype-system and doctype-public on xsl:output.
(almost) never use disable-output-escaping="yes".
David
________________________________________________________________________ The Numerical Algorithms Group Ltd is a company registered in England and Wales with company number 1249803. The registered office is: Wilkinson House, Jordan Hill Road, Oxford OX2 8DR, United Kingdom.
This e-mail has been scanned for all viruses by Star. The service is powered by MessageLabs. ________________________________________________________________________
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] XML Namespaces and <xsl:o, Martin Heiden | Thread | [xsl] generating ID strings that ar, Trevor Nicholls |
Re: [xsl] Single transformation usi, Giacomo | Date | Re: [xsl] Single transformation usi, Colin Paul Adams |
Month |