cocoon-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jason Johnston" <coc...@lojjic.net>
Subject Re: XInclude problem
Date Sat, 20 May 2006 04:22:10 GMT
> Hi!
>
> I have a problem with the xinclude transformer: When I call the
> transformer in my sitemap I get the error message:
> 'A xml document must have a root element.' My result xml document has a
> root element, so I think that the error is
> perhaps another.
> Here are my files:
>
> Sitemap:
> =========
> <map:match pattern="pdf_bskonzept">
>     <map:generate type="Tamino" src="*[@ID={request-param:gid} or
> @gebaeude_id={request-param:gid} or gebaeude_id={request-param:gid} or
> //Gebaeude_ID={request-param:gid}]"/>
>     <map:transform type="xslt" src="styles/result.xsl"/>
>     <map:transform type="xslt" src="styles/include_gesetze.xsl">
>         <map:parameter name="gesetzeserver"
> value="{global:gesetze-server}"/>
>     </map:transform>
>     <map:serialize type="xml"/>
> </map:match>

The XInclude transformer isn't being called in that snippet... I assume
that's just a copy-paste error, and that it comes right before the
map:serialize line.

>
> Inside the xslt file there is the xinclude command. The generator and
> the transformer before are working!
> The gesetzesserver parameter is: "http://localhost/tamino/Gesetze/Bau",
> its an url to my xml database
>
> include_gesetze.xsl:
> ====================
> <?xml version="1.0"?>
> <xsl:stylesheet version="1.0"
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>
>  xmlns:ino='http://namespaces.softwareag.com/tamino/response2'
>
>  xmlns:xql='http://metalab.unc.edu/xql/'
>
>  xmlns:xi="http://www.w3.org/2001/XInclude">
> <xsl:param name="gesetzeserver"/>
> <xsl:template match="tamino-result">
>     <tamino-result>
>         <xsl:copy-of select ="*" />
>         <data>
>             <xi:include>
>                 <xsl:attribute name="href">
>                     <xsl:value-of select="$gesetzeserver"/>
>
>  <xsl:text>?_XQL=Gesetze/Gesetz[@URI='hbo']/Bezeichnung</xsl:text>
>                 </xsl:attribute>
>             </xi:include>
>         </data>
>     </tamino-result>
> </xsl:template>
> </xsl:stylesheet>
>
> After this file I have the following xml in my pipeline:
> -------------------------------------------------------
> <?xml version="1.0"?>
> <tamino-result>
>     ...
>     <data>
>         <xi:include
> href="http://localhost/tamino/Gesetze/Bau?_XQL=Gesetze/Gesetz[@URI='hbo']/Bezeichnung"></xi:include>
>     </data>
> </tamino-result>
>
> When I type the url
> http://localhost/tamino/Gesetze/Bau?_XQL=Gesetze/Gesetz[@URI='hbo']/Bezeichnung
> into my browser, I get the following:
> ---------------------------------------------------------------------------------------------------------------------------------------------------
> <?xml version="1.0"?>
> <ino:response ...>
>     <xql:result>
>         <Bezeichnung>Hessische Bauordnung (HBO)</Bezeichnung>
>     </xql:result>
> </ino:response>

One possible idea: the URL might need to have the special characters ([,
@, ], ', etc.) URL-encoded.

Do you have a way to verify that the request to your XML server is
actually being correctly executed... access logs or something?  That would
tell you if the correct URL is being requested.

> The error comes directly after the line <map:transform
> type="xinclude"/>. So what is wrong here? I have another pipeline with
> such a xinclude command to my xml database
> and it works!

What are the differences between the one that works and the one that doesn't?



---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
For additional commands, e-mail: users-help@cocoon.apache.org


Mime
View raw message