haul 01/12/19 06:17:12 Modified: . changes.xml webapp sitemap.xmap src/org/apache/cocoon/components/language/markup/sitemap/java sitemap.xsl documentation/xdocs/userdocs/concepts matchers_selectors.xml sitemap.xml documentation/xdocs/dtd sitemap-v02.dtd Log: At long last map:redirect-to resource is now deprecated. A warning is issued on sitemap generation and for every request that still uses the old syntax. Hopefully, all docs are updated. Revision Changes Path 1.60 +10 -1 xml-cocoon2/changes.xml Index: changes.xml =================================================================== RCS file: /home/cvs/xml-cocoon2/changes.xml,v retrieving revision 1.59 retrieving revision 1.60 diff -u -r1.59 -r1.60 --- changes.xml 2001/12/17 14:29:00 1.59 +++ changes.xml 2001/12/19 14:17:12 1.60 @@ -4,7 +4,7 @@ <!-- History of Cocoon changes - $Id: changes.xml,v 1.59 2001/12/17 14:29:00 cziegeler Exp $ + $Id: changes.xml,v 1.60 2001/12/19 14:17:12 haul Exp $ --> <changes title="History of Changes"> @@ -15,6 +15,7 @@ <person name="Ross Burton" email="[EMAIL PROTECTED]" id="RB"/> <person name="Pierpaolo Fumagalli" email="[EMAIL PROTECTED]" id="PF"/> <person name="Vadim Gritsenko" email="[EMAIL PROTECTED]" id="VG"/> + <person name="Christian Haul" email="[EMAIL PROTECTED]" id="CH"/> <person name="Berin Loritsch" email="[EMAIL PROTECTED]" id="BL"/> <person name="Stefano Mazzocchi" email="[EMAIL PROTECTED]" id="SM"/> <person name="Giacomo Pati" email="[EMAIL PROTECTED]" id="GP"/> @@ -28,6 +29,14 @@ </devs> <release version="@version@" date="@date@"> + <action dev="CH" type="add"> + Changed invokation syntax of sitemap resources. Now <call resource/> + is used instead of <redirect-to resource/>. Affects only resources, + other redirections still use "old" syntax. New syntax does not take "target" + attribute but allows to set arbitrary parameters by using + <map-parameter/> Always creates new map while old syntax only did + when "target" was present. Old syntax still available but deprecated. + </action> <action dev="VG" type="fix" due-to="Eisert, Wolfram" due-to-email="[EMAIL PROTECTED]"> XSP page were called twice if used as a source of XSLT stylesheet due to multiple calls to Source.getInputSource() in XSLProcessorImpl. 1.68 +89 -62 xml-cocoon2/webapp/sitemap.xmap Index: sitemap.xmap =================================================================== RCS file: /home/cvs/xml-cocoon2/webapp/sitemap.xmap,v retrieving revision 1.67 retrieving revision 1.68 diff -u -r1.67 -r1.68 --- sitemap.xmap 2001/12/17 17:27:23 1.67 +++ sitemap.xmap 2001/12/19 14:17:12 1.68 @@ -100,7 +100,7 @@ <map:readers default="resource"> <map:reader name="resource" src="org.apache.cocoon.reading.ResourceReader"/> - <map:reader name="jsp" src="org.apache.cocoon.reading.JSPReader"/> + <map:reader name="jsp" src="org.apache.cocoon.reading.JSPReader"/> </map:readers> <!-- @@ -272,23 +272,28 @@ <map:resource name="dynamic-page1"> <!-- print all current sitemap parameters to log --> <map:act type="session-state"> - <map:parameter name="new-state" value="{../0}"/> + <map:parameter name="new-state" value="{../0}" /> <!-- use the complete string that was matched as a parameter. Compare - this with @target below. There the third sitemap parameter refers to - the very same string. Very this by looking at the log. This - irritating effect stems from the fact, that the above map:parameter - belongs conceptually still to the parent element while all other - nested tags are, well, nested. + this with the target parameter below. There the third + sitemap parameter refers to the very same string. Verfy this + by looking at the log. This irritating effect stems from + the fact, that the above map:parameter belongs conceptually + still to the parent element while all other nested tags + are, well, nested. --> - <map:redirect-to resource="dynamic-page" target="{../target}/state{../../../0}{../../0}"/> + <map:call resource="dynamic-page"> + <map:parameter name="target" value="{../target}/state{../../../0}{../../0}"/> + </map:call> </map:act> </map:resource> <map:resource name="dynamic-page2"> <map:act type="session-state"> <map:parameter name="new-state" value="1"/> - <map:redirect-to resource="dynamic-page" target="{../target}1"/> + <map:call resource="dynamic-page"> + <map:parameter name="target" value="{../target}1"/> + </map:call> </map:act> </map:resource> @@ -460,7 +465,7 @@ <map:mount uri-prefix="mount/{1}" src="mount/{1}/" check-reload="yes"/> <!-- This is an example of using a sitemap variable: "{1}" Curly - brackets denote sitemap variables, here the one named "1". + brackets denote sitemap variables, here the one named "1". --> </map:match> </map:pipeline> @@ -661,30 +666,30 @@ all parts are just concatenated in this order to a new document. - Several things to note here: + Several things to note here: - "cocoon:" is a pseudo protocol and refers to another - pipeline. "cocoon:/" refers to a pipeline from the current - sitemap while "cocoon://" refers to a pipeline from the root - sitemap. + "cocoon:" is a pseudo protocol and refers to another + pipeline. "cocoon:/" refers to a pipeline from the current + sitemap while "cocoon://" refers to a pipeline from the root + sitemap. - Other pseudo protocols exist: + Other pseudo protocols exist: - "context:" is another pseudo protocol, "context://" is - refering to a resource using the servlet context. + "context:" is another pseudo protocol, "context://" is + refering to a resource using the servlet context. - "resource:" is yet another pseudo protocol, "resource://" is - refering to a resource from the context classloader. + "resource:" is yet another pseudo protocol, "resource://" is + refering to a resource from the context classloader. - These pseudo protocols are declared in cocoon.xconf + These pseudo protocols are declared in cocoon.xconf - Thus the parts refer to the pipeline fragments above. + Thus the parts refer to the pipeline fragments above. - The element attribute places the content in a new root element - named as specified, using the namespace provided by the ns - attribute. + The element attribute places the content in a new root element + named as specified, using the namespace provided by the ns + attribute. - Please see docs for further explanations. + Please see docs for further explanations. --> <map:part src="cocoon:/slashdot/slashdot.xml" element="slashdot" ns="http://foo.bar.com/slashdot"/> <map:part src="cocoon:/moreover/moreover.xml" element="moreover" ns="http://foo.bar.com/moreover"/> @@ -738,25 +743,25 @@ <map:match pattern="templates/*"> <map:generate type="velocity" src="templates/{1}"> - <map:parameter name="name" value="Velocity"/> - <map:parameter name="project" value="Cocoon"/> + <map:parameter name="name" value="Velocity"/> + <map:parameter name="project" value="Cocoon"/> </map:generate> <map:transform src="stylesheets/page/simple-page2html.xsl"/> <map:serialize type="html"/> </map:match> <map:match pattern="slides/slides"> - <map:redirect-to resource="slides"/> + <map:call resource="slides"/> <!-- - We have seen this before. One difference though, here the - target is specified as a resource. Thus the redirection is done - internally. Conceptually it is more like the pipeline fragment - from the resource is inserted here. Think: macro. + To include common pipeline fragments in a pipeline they can be + defined in a resource. Such a resource can be called from + anywhere in your pipeline. Note that this is conceptionally + more like a "goto" because it will never return. --> </map:match> <map:match pattern="slides/"> - <map:redirect-to resource="slides"/> + <map:call resource="slides"/> </map:match> <map:match pattern="slides/style"> @@ -784,14 +789,14 @@ <map:generate type="serverpages" src="docs/samples/xsp/{1}.xsp"/> <map:transform src="stylesheets/dynamic-page2html.xsl"> <map:parameter name="view-source" value="docs/samples/xsp/{1}.xsp"/> - <!-- - Run-time configuration is done through these - <map:parameter/> elements. Again, let's have a look at the - javadocs: - - "[...] All <map:parameter> declarations will be made - available in the XSLT stylesheet as xsl:variables. [...]" - --> + <!-- + Run-time configuration is done through these + <map:parameter/> elements. Again, let's have a look at the + javadocs: + + "[...] All <map:parameter> declarations will be made + available in the XSLT stylesheet as xsl:variables. [...]" + --> </map:transform> <map:serialize/> </map:match> @@ -805,12 +810,12 @@ <map:generate src="docs/samples/sql/{1}.xml"/> <map:transform type="sql"> <map:parameter name="use-connection" value="personnel"/> - <!-- - Let's have a look at the user docs: + <!-- + Let's have a look at the user docs: - "[...] The purpose of the SQLTransformer is to query a - database and translate the result to XML. [...]" - --> + "[...] The purpose of the SQLTransformer is to query a + database and translate the result to XML. [...]" + --> </map:transform> <map:transform src="stylesheets/simple-sql2html.xsl"/> <map:serialize/> @@ -825,9 +830,9 @@ grouped together to a set named "employee". See user docs on actions for more on this. - This fragment until the closing tag of map:act is only - included if at least one action of this set completes - successfully. + This fragment until the closing tag of map:act is only + included if at least one action of this set completes + successfully. --> <map:generate type="serverpages" src="docs/samples/forms/employee.xsp"/> <map:transform src="stylesheets/dynamic-page2html.xsl"> @@ -851,9 +856,13 @@ <map:act type="form-validator"> <map:parameter name="descriptor" value="context:///docs/samples/formvalidation/descriptor.xml"/> <map:parameter name="validate-set" value="car-reservation"/> - <map:redirect-to resource="dynamic-page" target="docs/samples/formvalidation/OK"/> + <map:call resource="dynamic-page"> + <map:paraneter name="target" value="docs/samples/formvalidation/OK"/> + </map:call> </map:act> - <map:redirect-to resource="dynamic-page" target="docs/samples/formvalidation/ERROR"/> + <map:call resource="dynamic-page"> + <map:parameter name="target" value="docs/samples/formvalidation/ERROR"/> + </map:call> </map:match> @@ -888,41 +897,59 @@ <map:match type="sessionstate" pattern="1"> <!-- if a specific session attribute matches pattern "1" --> <map:match type="next-page" pattern="1"> - <map:redirect-to resource="dynamic-page1" target="docs/samples/session-state"/> - <!-- by redirecting to this resource, the rest of this fragment here is irrelevant --> + <map:call resource="dynamic-page1"> + <map:parameter name="target" value="docs/samples/session-state"/> + </map:call> + <!-- by calling this resource, the rest of this fragment here is irrelevant --> </map:match> <map:match type="next-page" pattern="2"> - <map:redirect-to resource="dynamic-page1" target="docs/samples/session-state"/> + <map:call resource="dynamic-page1"> + <map:parameter name="target" value="docs/samples/session-state"/> + </map:call> </map:match> </map:match> <map:match type="sessionstate" pattern="2"> <map:match type="next-page" pattern="1"> - <map:redirect-to resource="dynamic-page1" target="docs/samples/session-state"/> + <map:call resource="dynamic-page1"> + <map:parameter name="target" value="docs/samples/session-state"/> + </map:call> </map:match> <map:match type="next-page" pattern="2"> - <map:redirect-to resource="dynamic-page1" target="docs/samples/session-state"/> + <map:call resource="dynamic-page1"> + <map:parameter name="target" value="docs/samples/session-state"/> + </map:call> </map:match> </map:match> - <map:redirect-to resource="dynamic-page2" target="docs/samples/session-state/state0"/> + <map:call resource="dynamic-page2"> + <map:parameter name="target" value="docs/samples/session-state/state0"/> + </map:call> </map:act> <!-- end if session is valid --> - <map:redirect-to resource="dynamic-page" target="docs/samples/session-state/start"/> + <map:call resource="dynamic-page"> + <map:parameter name="target" value="docs/samples/session-state/start"/> + </map:call> </map:match> <!-- ========================== referer ================================= --> <map:match pattern="referer/*"> <map:match type="referer-match" pattern="http://*/cocoon/referer/a"> - <map:redirect-to resource="simple-page" target="docs/samples/referer/a/{../1}"/> + <map:call resource="simple-page"> + <map:parameter name="target" value="docs/samples/referer/a/{../1}"/> + </map:call> </map:match> <map:match type="referer-match" pattern="http://*/cocoon/referer/b"> - <map:redirect-to resource="simple-page" target="docs/samples/referer/b/{../1}"/> + <map:call resource="simple-page"> + <map:parameter name="target" value="docs/samples/referer/b/{../1}"/> + </map:call> </map:match> - <map:redirect-to resource="simple-page" target="docs/samples/referer/a/a"/> + <map:call resource="simple-page"> + <map:parameter name="target" value="docs/samples/referer/a/a"/> + </map:call> </map:match> <!-- ========================== Stream ================================= --> 1.56 +22 -1 xml-cocoon2/src/org/apache/cocoon/components/language/markup/sitemap/java/sitemap.xsl Index: sitemap.xsl =================================================================== RCS file: /home/cvs/xml-cocoon2/src/org/apache/cocoon/components/language/markup/sitemap/java/sitemap.xsl,v retrieving revision 1.55 retrieving revision 1.56 diff -u -r1.55 -r1.56 --- sitemap.xsl 2001/12/13 17:12:49 1.55 +++ sitemap.xsl 2001/12/19 14:17:12 1.56 @@ -126,7 +126,7 @@ * * @author <a href="mailto:[EMAIL PROTECTED]">Giacomo Pati</a> * @author <a href="mailto:[EMAIL PROTECTED]">Berin Loritsch</a> - * @version CVS $Id: sitemap.xsl,v 1.55 2001/12/13 17:12:49 vgritsenko Exp $ + * @version CVS $Id: sitemap.xsl,v 1.56 2001/12/19 14:17:12 haul Exp $ */ public class <xsl:value-of select="@file-name"/> extends AbstractSitemap { static final String LOCATION = "<xsl:value-of select="translate(@file-path, '/', '.')"/>.<xsl:value-of select="@file-name"/>"; @@ -1440,6 +1440,21 @@ <xsl:with-param name="parname">target</xsl:with-param> </xsl:call-template> </xsl:variable> + + <!-- print out deprecation message. --> + <xsl:call-template name="warn"> + <xsl:with-param name="message"> + The use of <redirect-to resource="<xsl:value-of select="@resource"/>"/> is deprecated. + Please use <call resource="<xsl:value-of select="@resource"/>"/> instead. + </xsl:with-param> + </xsl:call-template> + + <!-- since the above message shows up in components' log only, have + this message printed for every request --> + if (getLogger().isWarnEnabled()) + getLogger().warn("<redirect-to resource=\"<xsl:value-of select="@resource"/>\"/> is deprecated. " + + "Please use <call resource=\"<xsl:value-of select="@resource"/>\"/> instead."); + <xsl:if test="string-length($target) > 0 and string($target) != '""'"> map = new HashMap(1); map.put("target",substitute(listOfMaps,"<xsl:value-of select="$target"/>")); @@ -1898,6 +1913,12 @@ <xsl:template name="error"> <xsl:param name="message"/> <xsl:message terminate="yes"><xsl:value-of select="$message"/></xsl:message> + </xsl:template> + + + <xsl:template name="warn"> + <xsl:param name="message"/> + <xsl:message terminate="no"><xsl:value-of select="$message"/></xsl:message> </xsl:template> <!-- Ignored elements --> 1.3 +2 -2 xml-cocoon2/documentation/xdocs/userdocs/concepts/matchers_selectors.xml Index: matchers_selectors.xml =================================================================== RCS file: /home/cvs/xml-cocoon2/documentation/xdocs/userdocs/concepts/matchers_selectors.xml,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- matchers_selectors.xml 2001/10/25 14:58:42 1.2 +++ matchers_selectors.xml 2001/12/19 14:17:12 1.3 @@ -172,11 +172,11 @@ <map:parameter name="attribute-name" value="__sessionstate"/> <map:match type="next-page" pattern="ok*"> <!-- do something here, eg. database updates --> - <map:redirect-to resource="simple-page1"/> + <map:call resource="simple-page1"/> </map:match> <map:match type="next-page" pattern="delete*"> <!-- do something different here, eg. database deletions --> - <map:redirect-to resource="simple-page1"/> + <map:call resource="simple-page1"/> </map:match> </map:match> ]]> 1.7 +38 -36 xml-cocoon2/documentation/xdocs/userdocs/concepts/sitemap.xml Index: sitemap.xml =================================================================== RCS file: /home/cvs/xml-cocoon2/documentation/xdocs/userdocs/concepts/sitemap.xml,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- sitemap.xml 2001/11/26 07:10:33 1.6 +++ sitemap.xml 2001/12/19 14:17:12 1.7 @@ -484,7 +484,8 @@ <tr><td>map:match</td><td>Selects pipeline processing depending on matching</td></tr> <tr><td>map:select, map:when, map:otherwise</td><td>Selects pipeline processing depending on selecting</td></tr> <tr><td>map:mount</td><td>Mounts a sub sitemap</td></tr> - <tr><td>map:redirect-to</td><td>Redirects to a another pipeline</td></tr> + <tr><td>map:redirect-to</td><td>Redirects to a another URI</td></tr> + <tr><td>map:call</td><td>Goto another pipeline fragment</td></tr> <tr><td>map:parameter</td><td>Defines additional parameters for the sitemap components</td></tr> <tr><td>map:act</td><td>Peform action processing</td></tr> <tr><td>map:generate</td><td>Defines the generation step</td></tr> @@ -717,43 +718,19 @@ </s2> <s2 title="Redirecting"> <p> - Redirecting forwards the the request. You may forward a request to another - pipeline, or externally sending an redirect response to the client. - The behaviour is controlled by using the approriate attributes of - the element <code>redirect-to</code>. - The following list describes the attributes of the element <code>redirect-to</code>: + Redirecting forwards the the request. You may externally send an + redirect response to the client. The behaviour is controlled by + using the approriate attributes of the element <code>redirect-to</code>. </p> - <ul> - <li> - The attribute <code>resource</code> specifies the resource name of the - target to redirect to. An optional <code>target</code> attribute - let you specify a parameter named <code>target</code> passed to the targetted resource. - </li> - <li> - The attribute <code>uri</code> defines the target of redirect. - The target is sent as redirect response to the client. - The optional attribute <code>session</code> specifies, if the redirect - should happen inside of a session or not. Setting <code>session</code> to - <code>yes</code>, or <code>true</code> will persist a session across - the redirect response. Use enable the session option if you use http session - within your web application. - </li> - </ul> <p> - The following example redirects to a sitemap resource: + The attribute <code>uri</code> defines the target of redirect. + The target is sent as redirect response to the client. + The optional attribute <code>session</code> specifies, if the redirect + should happen inside of a session or not. Setting <code>session</code> to + <code>yes</code>, or <code>true</code> will persist a session across + the redirect response. Use enable the session option if you use http session + within your web application. </p> - <source><![CDATA[ -<map:resources> - <map:resource name="resource-1"> - <map:generate src="resources/{target}.xml"> - ... -</map:resource> -<map:pipeline> - <map:match pattern="forward-to"> - <map:redirect-to resource="resource-1" target="target-1"/> - ... -</map:pipeline> - ]]></source> <p> The following example redirects to a welcome page: </p> @@ -767,7 +744,32 @@ </map:pipeline> ]]></source> </s2> - + <s2 title="Calling resources"> + <p>Calling resources is dissimilar to redirects as the client does + not notice this.</p> + <p> When calling a resource, arbitrary parameters can be + specified. They will be available to the processing later on, just + like the parameters set by e.g. matchers or actions. Calling a + resource always creates a new map of parameters. Like redirects, + calls to a resource never return.</p> + <p> + The following example calls a sitemap resource: + </p> + <source><![CDATA[ +<map:resources> + <map:resource name="resource-1"> + <map:generate src="resources/{target}.xml"> + ... +</map:resource> +<map:pipeline> + <map:match pattern="forward-to"> + <map:call resource="resource-1"> + <map:parameter name="target" value="target-1"/> + </map:call> + ... +</map:pipeline> + ]]></source> + </s2> <s2 title="Mounting sitemaps"> <s3 title="Introduction"> <p> 1.2 +93 -81 xml-cocoon2/documentation/xdocs/dtd/sitemap-v02.dtd Index: sitemap-v02.dtd =================================================================== RCS file: /home/cvs/xml-cocoon2/documentation/xdocs/dtd/sitemap-v02.dtd,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- sitemap-v02.dtd 2001/11/28 06:07:05 1.1 +++ sitemap-v02.dtd 2001/12/19 14:17:12 1.2 @@ -53,6 +53,7 @@ 20011106 V0.2 All elements now have "map:" prefix. (DC) 20011106 V0.2 Incorporated comments Bruno Dumon cocoon-dev 20010718 (DC) 20011116 V0.2 Changes from label/view discussion cocoon-dev 20011115 (DC) + 20011219 V0.2 Deprecated 'redirect-to resource'. Added 'map:call resource'(CH) ==================================================================== --> @@ -77,16 +78,16 @@ <!-- Generators ======================================== --> <!ELEMENT map:generators (map:generator*)> <!ATTLIST map:generators - default CDATA #IMPLIED + default CDATA #IMPLIED > <!ELEMENT map:generator EMPTY> <!ATTLIST map:generator - name CDATA #REQUIRED - src CDATA #REQUIRED - label CDATA #IMPLIED - pool-max CDATA #IMPLIED - pool-min CDATA #IMPLIED - pool-grow CDATA #IMPLIED + name CDATA #REQUIRED + src CDATA #REQUIRED + label CDATA #IMPLIED + pool-max CDATA #IMPLIED + pool-min CDATA #IMPLIED + pool-grow CDATA #IMPLIED > <!-- RNG: with all attributes, which are required and which are implied? --> @@ -94,7 +95,7 @@ <!-- Transformers ====================================== --> <!ELEMENT map:transformers (map:transformer*)> <!ATTLIST map:transformers - default CDATA #IMPLIED + default CDATA #IMPLIED > <!ELEMENT map:transformer ANY> <!-- RNG: surely the content is not ANY. However, there were so many @@ -106,41 +107,41 @@ <!ELEMENT catalogue-name (#PCDATA)> <!ELEMENT catalogue-location (#PCDATA)> <!ATTLIST map:transformer - name CDATA #REQUIRED - src CDATA #REQUIRED - label CDATA #IMPLIED - pool-max CDATA #IMPLIED - pool-min CDATA #IMPLIED - pool-grow CDATA #IMPLIED + name CDATA #REQUIRED + src CDATA #REQUIRED + label CDATA #IMPLIED + pool-max CDATA #IMPLIED + pool-min CDATA #IMPLIED + pool-grow CDATA #IMPLIED > <!-- Readers =========================================== --> <!ELEMENT map:readers (map:reader*)> <!ATTLIST map:readers - default CDATA #IMPLIED + default CDATA #IMPLIED > <!ELEMENT map:reader EMPTY> <!-- RNG: does reader ever have children? Its peers do. --> <!ATTLIST map:reader - name CDATA #REQUIRED - src CDATA #REQUIRED + name CDATA #REQUIRED + src CDATA #REQUIRED > <!-- Serializers ======================================= --> <!ELEMENT map:serializers (map:serializer*)> <!ATTLIST map:serializers - default CDATA #IMPLIED + default CDATA #IMPLIED > <!ELEMENT map:serializer (doctype-public|doctype-system|encoding| omit-xml-declaration|parameter)*> <!-- RNG: are these the only children of serializer? --> <!ATTLIST map:serializer - name CDATA #REQUIRED - mime-type CDATA #REQUIRED - src CDATA #REQUIRED - pool-max CDATA #IMPLIED - pool-min CDATA #IMPLIED - pool-grow CDATA #IMPLIED + name CDATA #REQUIRED + mime-type CDATA #REQUIRED + src CDATA #REQUIRED + pool-max CDATA #IMPLIED + pool-min CDATA #IMPLIED + pool-grow CDATA #IMPLIED > <!ELEMENT doctype-public (#PCDATA)> <!ELEMENT doctype-system (#PCDATA)> @@ -148,36 +149,36 @@ <!ELEMENT omit-xml-declaration (#PCDATA)> <!ELEMENT parameter EMPTY> <!ATTLIST parameter - name CDATA #REQUIRED - value CDATA #REQUIRED - type CDATA #IMPLIED + name CDATA #REQUIRED + value CDATA #REQUIRED + type CDATA #IMPLIED > <!-- Selectors ========================================= --> <!ELEMENT map:selectors (map:selector*)> <!ATTLIST map:selectors - default CDATA #IMPLIED + default CDATA #IMPLIED > <!ELEMENT map:selector (browser*)> <!ATTLIST map:selector - name CDATA #REQUIRED - src CDATA #REQUIRED + name CDATA #REQUIRED + src CDATA #REQUIRED > <!ELEMENT browser EMPTY> <!ATTLIST browser - name CDATA #REQUIRED - useragent CDATA #REQUIRED + name CDATA #REQUIRED + useragent CDATA #REQUIRED > <!-- Matchers ========================================== --> <!ELEMENT map:matchers (map:matcher*)> <!ATTLIST map:matchers - default CDATA #IMPLIED + default CDATA #IMPLIED > <!ELEMENT map:matcher (attribute-name|parameter-name|header-name)*> <!ATTLIST map:matcher - name CDATA #REQUIRED - src CDATA #REQUIRED + name CDATA #REQUIRED + src CDATA #REQUIRED > <!ELEMENT attribute-name (#PCDATA)> <!ELEMENT parameter-name (#PCDATA)> @@ -186,12 +187,12 @@ <!-- Actions =========================================== --> <!ELEMENT map:actions (map:action*)> <!ATTLIST map:actions - default CDATA #IMPLIED + default CDATA #IMPLIED > <!ELEMENT map:action EMPTY> <!ATTLIST map:action - name CDATA #REQUIRED - src CDATA #REQUIRED + name CDATA #REQUIRED + src CDATA #REQUIRED > <!-- =============================================================== --> @@ -201,15 +202,15 @@ <!ELEMENT map:views (map:view*)> <!ELEMENT map:view (map:transform*,map:serialize)> <!ATTLIST map:view - name CDATA #REQUIRED - from-label CDATA #IMPLIED - from-position (first|last) "last" + name CDATA #REQUIRED + from-label CDATA #IMPLIED + from-position (first|last) "last" > <!ELEMENT map:serialize (map:parameter*)> <!ATTLIST map:serialize - type CDATA #REQUIRED - mime-type CDATA #IMPLIED - status-code CDATA #IMPLIED + type CDATA #REQUIRED + mime-type CDATA #IMPLIED + status-code CDATA #IMPLIED > <!-- =============================================================== --> @@ -219,7 +220,7 @@ <!ELEMENT map:resources (map:resource*)> <!ELEMENT map:resource ((map:generate,map:transform+,map:serialize) | map:act)> <!ATTLIST map:resource - name CDATA #REQUIRED + name CDATA #REQUIRED > <!-- generate and transform defined in PIPELINE section --> @@ -230,14 +231,14 @@ <!ELEMENT map:action-sets (map:action-set*)> <!ELEMENT map:action-set (map:act+)> <!ATTLIST map:action-set - name CDATA #REQUIRED + name CDATA #REQUIRED > -<!ELEMENT map:act (map:parameter|map:redirect-to|map:generate| +<!ELEMENT map:act (map:parameter|map:redirect-to|map:call|map:generate| map:transform|map:serialize|map:act|map:match)*> <!ATTLIST map:act - type CDATA #IMPLIED - action CDATA #IMPLIED - set CDATA #IMPLIED + type CDATA #IMPLIED + action CDATA #IMPLIED + set CDATA #IMPLIED > <!-- =============================================================== --> @@ -247,7 +248,7 @@ <!ELEMENT map:pipelines (map:pipeline*)> <!ELEMENT map:pipeline (map:match*, map:handle-errors?)> -<!ELEMENT map:match (map:mount | map:redirect-to | map:generate | +<!ELEMENT map:match (map:mount | map:redirect-to | map:call | map:generate | map:transform | map:serialize | map:read | map:aggregate | map:act | map:match)*> <!-- RNG: It seemed from the example that match should be defined as @@ -256,70 +257,81 @@ --> <!-- DC: Now map:act complicates the content model even further --> <!ATTLIST map:match - type CDATA #IMPLIED - pattern CDATA #REQUIRED + type CDATA #IMPLIED + pattern CDATA #REQUIRED > <!-- map:act is already defined in the Action Sets section --> <!ELEMENT map:mount EMPTY> <!ATTLIST map:mount - uri-prefix CDATA #REQUIRED - src CDATA #REQUIRED - reload-method (synchron|asynchron) "asynchron" - check-reload (true|false|yes|no) "no" + uri-prefix CDATA #REQUIRED + src CDATA #REQUIRED + reload-method (synchron|asynchron) "asynchron" + check-reload (true|false|yes|no) "no" > <!ELEMENT map:redirect-to EMPTY> <!ATTLIST map:redirect-to - uri CDATA #IMPLIED - resource CDATA #IMPLIED - target CDATA #IMPLIED - session (true|false|yes|no) "no" + uri CDATA #IMPLIED + session (true|false|yes|no) "no" > +<!-- CH: redirects to resources are now deprecated +<!ATTLIST map:redirect-to + uri CDATA #IMPLIED + resource CDATA #IMPLIED + target CDATA #IMPLIED + session (true|false|yes|no) "no" +> +--> + +<!ELEMENT map:call (map:parameter*)> +<!ATTLIST map:redirect-to + resource CDATA #REQUIRED +> <!ELEMENT map:generate (map:parameter*)> <!ATTLIST map:generate - type CDATA #IMPLIED - src CDATA #IMPLIED - label CDATA #IMPLIED + type CDATA #IMPLIED + src CDATA #IMPLIED + label CDATA #IMPLIED > <!ELEMENT map:parameter EMPTY> <!ATTLIST map:parameter - name CDATA #REQUIRED - value CDATA #REQUIRED + name CDATA #REQUIRED + value CDATA #REQUIRED > <!ELEMENT map:transform (map:parameter*)> <!ATTLIST map:transform - type CDATA #IMPLIED - src CDATA #IMPLIED - label CDATA #IMPLIED + type CDATA #IMPLIED + src CDATA #IMPLIED + label CDATA #IMPLIED > <!-- map:serialize is already defined in VIEWS section --> <!ELEMENT map:read EMPTY> <!ATTLIST map:read - src CDATA #REQUIRED - mime-type CDATA #REQUIRED - type CDATA #IMPLIED + src CDATA #REQUIRED + mime-type CDATA #REQUIRED + type CDATA #IMPLIED > <!ELEMENT map:aggregate (map:part*)> <!ATTLIST map:aggregate - element CDATA #IMPLIED - prefix CDATA #IMPLIED - ns CDATA #IMPLIED - label CDATA #IMPLIED + element CDATA #IMPLIED + prefix CDATA #IMPLIED + ns CDATA #IMPLIED + label CDATA #IMPLIED > <!ELEMENT map:part EMPTY> <!ATTLIST map:part - src CDATA #IMPLIED - element CDATA #IMPLIED - ns CDATA #IMPLIED - strip-root CDATA #IMPLIED - label CDATA #IMPLIED + src CDATA #IMPLIED + element CDATA #IMPLIED + ns CDATA #IMPLIED + strip-root CDATA #IMPLIED + label CDATA #IMPLIED > <!ELEMENT map:handle-errors (map:generate*,map:transform*,map:serialize*)>
---------------------------------------------------------------------- In case of troubles, e-mail: [EMAIL PROTECTED] To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]