xsl-list
[Top] [All Lists]

Re: [xsl] XML Namespaces and <xsl:output> don´t work

2008-10-15 18:16:21
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 dont´t 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, don´t html

what can i do?

best regards,
Alex


----- Mensaje original ----- De: "David Carlisle" 
<davidc(_at_)nag(_dot_)co(_dot_)uk>
Para: <xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com>
Enviado: miércoles, 15 de octubre de 2008 17:36
Asunto: Re: [xsl] XML Namespaces and <xsl:output> don´t 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.
________________________________________________________________________

--~------------------------------------------------------------------
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(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



--~------------------------------------------------------------------
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(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



--~------------------------------------------------------------------
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(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--