forrest-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Thorsten Scherler <>
Subject [Summary] Recent proposals around v2
Date Tue, 22 Nov 2005 22:05:07 GMT
Hi all,

trying to summarize a wee bit the recent discussion around v2.

forrest:contracts & forrest:properties
1) nuggets (extra data requested by the contract)
Nuggets are now defined in the contract element instead of in the
forrest:properties. As well the former @nugget is now called @dataURI to
reflect better the function of the attribute.
<forrest:contract name="nav-main-testing" 

2) The properties have lost their parent node. 
<forrest:contract name="nav-main-testing" 
  <forrest:property name="nav-main-testing-test1" >x</forrest:property>
  <forrest:property name="nav-main-testing-test2" >
  <forrest:property name="nav-main-testing-test3"

Contract implementation
1) contracts are now standalone, which means that they need to

a) If raw data (dataURI) is requested it matches the first element of
the dataURI. 

b) If no dataURI is requested the dispatcher passes a dummy document to
the transformation containing only one element: forrest:foo.
<xsl:stylesheet version="1.1"
  <xsl:param name="nav-main-testing" select="/"/>
  <xsl:template match="/" >
      <div id="tabs">
        <xsl:comment>+ |start Tabs new +</xsl:comment>
        <xsl:comment>+ |end Tabs +</xsl:comment>

2) the resulting transformation have to go into a container element
named "content".

a) We proposed two new attributes for the "content" element (@xpath and
Actually I gave it a second thought and I think it would be better to
only apply @xpath under the new circumstances of path-prefixing hooks.

The attribute @xpath determines that the elements within the content
container should be insert in a given location. In html for example some
function need to be inserted into the /html/head and/or /html/body. 

The location of the /html/body *normally* is defined through a
forrest:hook path (we called it structureAware="true"). So I propose
stands for structureAware="true" -> the contract will be injected in the
path determined by the forrest:hooks.

When the @xpath it set, the container content will be added to the value
of the @xpath. 
<content xpath="/html/head">
Like element("/html/head").appendChild(newChild).

b) Till now we assumed that all hooks go
into /html/body but this need to be more flexible. I propose to add a
new attribute @hooksXpath to the forrest:view. I propose this attribute
@hooksXpath as required.

<forrest:view type="html" hooksXpath="/html/body">
 <forrest:hook name="htmlBodyHook"/>

that will be transformed into 
  <forrest:hook name="htmlBodyHook"/>

c) We need another attribute in hooks @element which would not create
a div but the value of @element:
<forrest:hook element="html">
 <forrest:hook element="body">
  <forrest:hook name="htmlBodyHook"/>

 that will be transformed into 
   <forrest:hook name="htmlBodyHook"/>


"Together we stand, divided we fall!" 
Hey you (Pink Floyd)

View raw message