El mar, 27-09-2005 a las 15:31 +0100, Ross Gardler escribió:
> Thorsten Scherler wrote:
> > El mar, 27-09-2005 a las 11:39 +0100, Ross Gardler escribió:
>
> ...
>
> > Hmm, I do not see the complexity. ;-)
> > in voice.fv:
> > <forrest:contract name="voice-markup">
> > <forrest:properties contract="voice-markup">
> > <forrest:property name="voice-markup" nugget="get.body">
> > <url>#{$cocoon/parameters/getRequest}.mxml</url>
> > </forrest:property>
> > </forrest:properties>
> > </forrest:contract>
>
> No, this is not correct a request for *.mxml gives a complete HTML page,
> not just the section needed for head. Although it would be possible to
> change the stylesheets accordingly I do not think this is the right
> approach since it splits control of the content generation between the
> view and the plugin.
Hmm, I know what you mean:
<xsl:template match="document">
<html>
<head>
<xsl:apply-templates select="//header"/>
<xsl:apply-templates select="//body"/>
</head>
<body ev:event="load" ev:handler="#main">
</body>
</html>
</xsl:template>
...but changing
>
> > in voice-markup.ft
> > <xsl:template name="voice-markup-head">
> > <xsl:param name="voice-markup"/>
> > <xsl:copy-of select="$voice-markup"/>
> > </xsl:template>
> >
to:
<xsl:copy-of select="$voice-markup/html/head/*"/>
Would solve this problem very nicely without touching the voice plugins
xsl. The other problem which is actually bigger, is to pass the
@attributes of the body tag.
When I started the first implementation I decided to kindly ignore it
for the moment till I have a proof of concept. Now it is time to think
about it again. ;-) We need a trigger.
Not only here we need a trigger. We need to change the body="false"
head="true" on the <forrest:template/> as well to make it more flexible.
Ideas?
> > OR:
> > See the attached patch. It is basically the same only that the contract
> > is now doing exactly what the xsl before does.
>
> Yes, this is the approach we are after since we now only have one place
> (the contract) controlling the generation of the voiceML files. Thanks
> for finding the time to put this together Thorsten.
No problem, I would check it in but like I said it is not working yet,
it is based on jx and I did not want to open another construction site.
Seeing the patch solution I have to admit that the above contract seems
to be way cleaner because the voice plugin is the data model producer
and the contract is transforming it.
> > Either way the *real* problem that you have is that the last pipe in
> > views is stripping the namespaces which prevent that the content of the
> > voice markup is rendered correctly. I did not had time (and will not in
> > the near future) to fix the strip_namespaces.xsl to let the voice ns
> > through. Sorry. For your development comment it out and build views
> > again.
>
> Why do we strip namespaces? Is it safe to let the voiceML one through?
I cannot remember anymore exactly *why* but it had something to do with
validation of the xhtml output.
Could it be because of xhtml strict/traditional?
http://www.w3.org/TR/xhtml1/#well-formed
"The XHTML namespace may be used with other XML namespaces as per
[XMLNS], although such documents are not strictly conforming XHTML 1.0
documents as defined above."
There is an example for other markup within xhmtl but I guess that
adding namespaces in general make the validation test failing.
"XHTML plus Math 1.1 DTD", "A.2 MathML as a DTD Module", Mathematical
Markup Language (MathML) Version 2.0. Available at:
http://www.w3.org/TR/MathML2/dtd/xhtml-math11-f.dtd
> If we need to strip some namespaces and not others we need a way of
> configuring the strip-namespaces.xsl from a plugin otherwise plugin
> developers will have to edit this XSL in core. Any sugestions how HANAX
> (or someone) can patch this namespace stripping in a more manageable way?
We could change it and explicitly strip internal namespaces like xi: or
forrest: and allow all other, but see above.
salu2
--
thorsten
"Together we stand, divided we fall!"
Hey you (Pink Floyd)