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]