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 &lt;call resource/&gt;
  +    is used instead of &lt;redirect-to resource/&gt;. Affects only resources,
  +    other redirections still use "old" syntax. New syntax does not take "target"
  +    attribute but allows to set arbitrary parameters by using
  +    &lt;map-parameter/&gt; 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 &lt;a href="mailto:[EMAIL PROTECTED]"&gt;Giacomo Pati&lt;/a&gt;
        * @author &lt;a href="mailto:[EMAIL PROTECTED]"&gt;Berin Loritsch&lt;/a&gt;
  -     * @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 &lt;redirect-to resource="<xsl:value-of 
select="@resource"/>"/&gt; is deprecated.
  +            Please use &lt;call resource="<xsl:value-of select="@resource"/>"/&gt; 
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("&lt;redirect-to resource=\"<xsl:value-of 
select="@resource"/>\"/&gt; is deprecated. "
  +                          + "Please use &lt;call resource=\"<xsl:value-of 
select="@resource"/>\"/&gt; instead.");
  +
           <xsl:if test="string-length($target) > 0 and string($target) != 
'&quot;&quot;'">
             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]

Reply via email to