Subject: Re: XML Namespaces and <xsl:output> don´t work
From: Martin Heiden <martin.heiden@xxxxxxxxxxxxx>
Date: Thu, 16 Oct 2008 00:15:47 +0200
|
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: 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.
>> ________________________________________________________________________
|