stefano     00/06/21 15:04:50

  Modified:    xdocs/drafts Tag: xml-cocoon2 sitemap-working-draft.xmap
  Log:
  lotsa changes this time
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.3   +278 -271  xml-cocoon/xdocs/drafts/Attic/sitemap-working-draft.xmap
  
  Index: sitemap-working-draft.xmap
  ===================================================================
  RCS file: /home/cvs/xml-cocoon/xdocs/drafts/Attic/sitemap-working-draft.xmap,v
  retrieving revision 1.1.2.2
  retrieving revision 1.1.2.3
  diff -u -r1.1.2.2 -r1.1.2.3
  --- sitemap-working-draft.xmap        2000/06/20 10:09:19     1.1.2.2
  +++ sitemap-working-draft.xmap        2000/06/21 22:04:47     1.1.2.3
  @@ -91,7 +91,7 @@
   10) resources must be matched with all possible state variables, not
   only with URI (http parameters, enviornment variables, server
   parameters, time, etc...).
  -11) sitemaps should embed the notion of °semantic resources° to be
  +11) sitemaps should embed the notion of "semantic resources" to be
   future-compatible with sematic crawling and indexing.
   12) sitemaps should be flexible enough to allow a complete web site to
   be built with Cocoon.
  @@ -101,7 +101,7 @@
   <!-- 
   
     The default namespaces are used mainly for versioning, instead of using 
  -  attributes such as version="2.0" which could create confusion. People are 
  +  attributes such as version="1.0" which could create confusion. People are 
     used to writing URIs with no spelling mistakes, while versioning could be 
     used for their own sitemap versions and this might break operation.
     
  @@ -109,141 +109,129 @@
     by one each time a new release breaks back compatibility, while minor
     is increased each time a change has been made that doesn't create
     back incompatible problems.
  -  
  -  The "src:" namespace is associated with loaders. This implies a schema for
  -  loaders to be maintained by the Cocoon project if the indicated namespace
  -  for loaders is used.
  -  
  -  In the future if the need for custom loaders emerges, we'll provide
  -  ways to extend this, but for now we'll assume Cocoon maintains the list
  -  of resource loaders.
  -  
  -  The "local" attribute is used when the resource is _local_ to the
  -  sitemap. This doesn't have an absolute meaning, but depends on the _where_
  -  the sitemap was found. For example, if the root sitemap was found on a
  -  file system, all local resources are interpreted as files and passed
  -  to the "local" loader. While, if the "file" attribute is used, the file
  -  loader is always used. This is mostly important when the sitemap is
  -  found inside compressed archives or loaded with non-standard loading
  -  methods such as CVS, WebDAV or other forms of databases.
  -  
  -  NOTE (SM)
  -  
  -  Note that sitemap operation is URI based and relativity is always based
  -  on URI locations (for example, there is no language-relativity or 
  -  machine-load-relativity for mounted sitemaps). This might considered
  -  an asymmetry in respect to the uri-abstracted conditional model, but
  -  I think that providing uri-abstracted way of doing sitemap mounting is
  -  FS.
  -
  --->
   
  + -->
  + 
   <!--
  -    The Sitemap
  +   
  +  NOTE (SM)
  +    
  +  the syntax
  +    
  +      <xxx map:value="yyy">
  +      
  +  is completely equivalent to
  +    
  +      <xxx>yyy</xxx>
  +      
  +  throughout the entire sitemap.. the "value" attribute is a reserved one.
  +    
  +  [XXX] (SM) should we use the "map" namespace for this special attribute?
  +      
   -->
  -<sitemap 
  -    xmlns="http://xml.apache.org/cocoon/sitemap/1.0"; 
  -    xmlns:src="http://xml.apache.org/cocoon/loaders/1.0";
  ->
   
  - <!-- 
  -      Pipeline components
  -  -->
  - <components>
  +<map:sitemap xmlns:map="http://xml.apache.org/cocoon/sitemap/1.0";>
   
  +<!-- =========================== Components ================================ 
--> 
  +
  + <map:components>
  +
      <!-- 
          Generators generate XML content as SAX events and initialize the 
          pipeline processing. 
      -->
  -  <generators>
  -   <generator type="parser" 
src:class="org.apache.cocoon.generator.FileGenerator"/>
  -   <generator type="dir"    
src:file="/home/mystuff/java/MyDirGenerator.class"/>
  -   <generator type="xsp"    
src:class="org.apache.cocoon.generators.XSPGenerator">
  +  <map:generators default="parser">
  +   <map:generator type="parser" 
src="class://org.apache.cocoon.generator.FileGenerator"/>
  +   <map:generator type="dir"    
src="file:///home/mystuff/java/MyDirGenerator.class"/>
  +   <map:generator type="xsp"    
src="class://org.apache.cocoon.generators.XSPGenerator">
       ...
  -   </generator>
  -  </generators>
  +   </map:generator>
  +  </map:generators>
   
      <!-- 
          Filters transform SAX events in SAX events.
      -->
  -  <filters>
  -   <filter type="xslt" src:class="org.apache.cocoon.filter.XSLTFilter"/>
  -   <filter type="xinclude" 
src:class="org.apache.cocoon.filter.XIncludeFilter"/>
  -  </filters>
  +  <map:filters default="xslt">
  +   <map:filter type="xslt" src="class://org.apache.cocoon.filter.XSLTFilter">
  +    <compile-stylesheets value="true"/>
  +   </map:filter>
  +   <map:filter type="xinclude" 
src="class://org.apache.cocoon.filter.XIncludeFilter"/>
  +  </map:filters>
   
      <!-- 
          Serializers transform SAX events in binary or char streams for 
          final client consumption.
      -->
  -  <serializers>
  -   <serializer type="html" mime-type="text/html" 
src:class="org.apache.cocoon.serializer.HTMLSerializer">
  -    <param name="doctype-public" value="-//W3C//DTD HTML 4.0 
Transitional//EN"/>
  -    <param name="doctype-system" 
value="http://www.w3.org/TR/REC-html40/loose.dtd"/>
  -    <param name="preserve-space" value="true"/>
  -    <param name="encoding" value="UTF-8"/>
  -    <param name="indent" value="1"/>
  -    <param name="line-width" value="120"/>
  -   </serializer>
  -
  -   <serializer type="wap" mime-type="text/vnd.wap.wml" 
src:class="org.apache.cocoon.serializer.XMLSerializer">
  -    <param name="doctype-public" value="-//WAPFORUM//DTD WML 1.1//EN"/>
  -    <param name="doctype-system" 
value="http://www.wapforum.org/DTD/wml_1.1.xml"/>
  -    <param name="encoding" value="UTF-8"/>
  -   </serializer>
  -
  -   <serializer type="svg2jpg" mime-type="image/jpg" 
src:class="org.apache.cocoon.serializer.SVGSerializer">
  -    <param name="format" value="jpg"/>
  -    <param name="compression-level" value="80%"/>
  -   </serializer>
  -
  -   <serializer type="svg2png" mime-type="image/png" 
src:class="org.apache.cocoon.serializer.SVGSerializer">
  -    <param name="format" value="png"/>
  -    <param name="color-depth" value="24"/>
  -   </serializer>
  -  </serializers>
  -
  +  <map:serializers default="html">
  +   <map:serializer type="html" mime-type="text/html" 
src="class://org.apache.cocoon.serializer.HTMLSerializer">
  +    <doctype-public value="-//W3C//DTD HTML 4.0 Transitional//EN"/>
  +    <doctype-system value="http://www.w3.org/TR/REC-html40/loose.dtd"/>
  +    <preserve-space value="true"/>
  +    <encoding value="UTF-8"/>
  +    <indent value="1"/>
  +    <line-width value="120"/>
  +   </map:serializer>
  +
  +   <map:serializer type="wap" mime-type="text/vnd.wap.wml" 
src="class://org.apache.cocoon.serializer.XMLSerializer">
  +    <doctype-public>-//WAPFORUM//DTD WML 1.1//EN</doctype-public>
  +    <doctype-system>http://www.wapforum.org/DTD/wml_1.1.xml</doctype-system>
  +    <encoding>UTF-8</encoding>
  +   </map:serializer>
  +
  +   <map:serializer type="svg2jpg" mime-type="image/jpg" 
src="class://org.apache.cocoon.serializer.SVGSerializer">
  +    <format value="jpg"/>
  +    <compression-level>80%</compression-level>
  +   </map:serializer>
  +
  +   <map:serializer type="svg2png" mime-type="image/png" 
src="class://org.apache.cocoon.serializer.SVGSerializer">
  +    <format>png</format>
  +    <color-depth value="24"/>
  +   </map:serializer>
  +  </map:serializers>
  +  
      <!-- 
          Choosers are classes that contain programming logic that perform
  -       matching based on variable contained in the request, in the server 
state
  -       or generally based on any information available during the matching 
evaluation.
  -
  -       The main matching type, URI matching, is hardcoded into the sitemap 
schema
  -       because, by far, the most used. But it was identified as a clear need 
the
  -       ability to extend such matching capabilities to "react" on different
  -       parameters. Choosers are components invoked at runtime and returning
  -       a boolean value indicating the class matched the request or not 
depending
  -       on internal logic, configuration parameters and current state.
  -       
  -       [FIXME] (SM) should we use a better name for this?
  +       boolean evaluation based on enviornment state during the call (state
  +       includes request parameters, machine state as well as any other
  +       accessible information)
          
  +       Choosers can only respond with true/false when called.
      -->
  -  <choosers>
  -   <chooser type="browser" 
src:class="org.apache.cocoon.chooser.BrowserChooser">
  +  <map:choosers default="browser">
  +   <map:chooser type="load" 
src="class://org.apache.cocoon.chooser.MachineLoadChooser">
       ...
  -   </chooser>
  +   </map:chooser>
   
  -   <chooser type="load" 
src:class="org.apache.cocoon.chooser.MachineLoadChooser">
  +   <map:chooser type="user" 
src="class://org.apache.cocoon.chooser.AuthenticationChooser">
       ...
  -   </chooser>
  +   </map:chooser>
   
  -   <chooser type="user" 
src:class="org.apache.cocoon.chooser.AuthenticationChooser">
  +   <map:chooser type="browser" 
src="class://org.apache.cocoon.matcher.BrowserChooser">
       ...
  -   </chooser>
  +   </map:chooser>
  +  </map:choosers>
   
  -   <chooser type="ip-filter" src:local="./classes/IPValidityChooser.class">
  +   <!-- 
  +       Matchers are classes that are able to test if the request parameters
  +       match the given pattern and, if this is the case, they are able to 
  +       return a collection of tokens that resulted from the matching or any
  +       depending on the matcher own logic (this is up to the matcher 
implementation).
  +   -->
  +  <map:matchers default="uri-wildcard">
  +   <map:matcher type="uri-wildcard" 
src="class://org.apache.cocoon.matcher.WildcardURIMatcher">
       ...
  -   </chooser>
  +   </matcher>
   
  -   <chooser type="semantic-view" 
src:class="org.apache.cocoon.chooser.SemanticView">
  +   <map:matcher type="uri-regexp" 
src="class://org.apache.cocoon.matcher.RegexpURIMatcher">
       ...
  -   </chooser>
  -  </choosers>
  +   </map:matcher>
  +  </map:matcher>
   
  - </components>
  + </map:components>
   
  +<!-- =========================== Resources ================================= 
--> 
   
    <!-- 
  -
        the <resource> element is used as a placeholder for pipelines
        that are used several times inside the document. This element
        is redundant and its functionality is not directly related
  @@ -256,185 +244,204 @@
        it is much easier to include such an element instead of forcing
        the use of xinclude/xpointer.
    -->
  - <resources>
  + <map:resources>
     
  -  <resource name="Access refused">
  -   <generator type="parser" src:local="./error-pages/restricted.xml"/>
  -   <filter type="xslt" src:local="./stylesheets/general-browser.xsl"/>
  -   <serializer type="html" status-code="401"/>
  -  </resource>
  +  <map:resource name="Access refused">
  +   <map:generator type="parser" src:local="./error-pages/restricted.xml"/>
  +   <map:filter type="xslt" src:local="./stylesheets/general-browser.xsl"/>
  +   <map:serializer type="html" status-code="401"/>
  +  </map:resource>
       
  - </resources>
  + </map:resources>
    
  -  <!-- 
  -      Mount points allow sitemaps to be cascaded and site management 
  -      workload to be parallelized.
  -  -->
  - <mounts>
  -  <mount uri="regexp('^/xerces-(j|c|p)/(.*)$')" src:cvs=":pserver:[EMAIL 
PROTECTED]:/home/cvs/xerces-{1}/xdocs/{2}" />
  -  <mount uri="cocoon/*" src:cvs=":pserver:[EMAIL 
PROTECTED]:/home/cvs/cocoon/xdocs/{1}" />
  -  <mount uri="bugs/*"   src:jar="./apps/bugs.cocoon#{1}" />
  -  <mount uri="dist/*"   src:local="./dist/{1}" />
  -  <mount uri="faq/*"    src:jar="./apps/faq-o-matic.cocoon#{1}" />
  - </mounts>
  +<!-- =========================== Sitemap =================================== 
--> 
   
  + <!-- 
  +     Mount points allow sitemaps to be cascaded and site management 
  +     workload to be parallelized.
  +   -->
  + <map:match pattern="cocoon/*">
  +  <map:mount src="cvs:pserver:[EMAIL 
PROTECTED]://home/cvs/cocoon/xdocs/{1}"/>
  + </map:match>
  +
  + <map:match pattern="bugs/*">
  +  <map:mount src="jar://apps/bugs.cocoon#{1}"/>
  + </map:match>
  +
  + <map:match pattern="dist/*">
  +  <map:mount src="./dist/{1}"/>
  + </map:match>
  +
  + <map:match pattern="faq/*">
  +  <map:mount src="jar://apps/faq-o-matic.cocoon#{1}"/>
  + </map:match>
  +
  + <map:match type="uri-regexp" pattern="^/xerces-(j|c|p)/(.*)$">
  +  <map:mount src="cvs:pserver:[EMAIL 
PROTECTED]://home/cvs/xerces-{1}/xdocs/{2}"/>
  + </map:match>
    
  + <!-- 
  +      Matchers declarative dispatch the requests to the pipelines that
  +      match some of their parameters
  +   -->
  + <map:match pattern="cocoon/dist/*"> 
  +  <map:choose type="ip-filter">
  +   <map:when test="allowsAddress()">
  +    <!-- 
  +        the <redirect> element is used to redirect one requested URI 
  +        to another. This is somewhat equivalent to URI rewriting.
  +      -->
  +    <map:redirect to="dist/cocoon/{1}"/>
  +   </map:when>
  +   <map:otherwise>
  +    <map:resource name="Access refused"/>
  +   </map:otherwise>
  +  </map:choose>
  + </map:match>
  +
  + <!-- 
  +      When no "type" attribute is present, the sitemap intepreter will use 
the
  +      default one, this allows a very compact and user friendly syntax as the
  +      one below 
  +   -->
  + <map:match pattern="printer-friendly/*">
  +  <map:generate src:local="{1}.xml"/>
  +  <map:filter src:local="./stylesheet/printer-friendly.xsl"/>
  +  <map:serialize/>
  + </map:match>
  +
  + <map:match pattern="images/logo">
  +  <map:choose>
  +   <map:when test="accepts('image/svg')">
  +    <!-- 
  +       the <read> element is used to read the src directly without 
  +       applying any processing. This is mostly useful when clients
  +       are capable of handling XML content directly.
  +      -->
  +    <map:read src="./images/logo.svg"/>
  +   </map:when>
  +   <map:otherwise>
  +    <map:generate src="./images/logo.svg"/>
  +    <map:choose>
  +     <map:when test="accepts('image/png')">
  +      <map:serialize type="svg2png"/>
  +     </map:when>
  +     <map:otherwise>
  +      <map:serialize type="svg2jpg"/>
  +     </map:otherwise>
  +    </map:choose>
  +   </map:otherwise>
  +  </map:choose>
  + </map:match>
  +
  + <map:match pattern="restricted/*">
  +  <map:choose type="user">
  +   <map:when test="is('administrator')">
  +    <map:generate src="./restricted/{1}"/>
  +    <map:filter src="./stylesheets/restricted.xsl"/>
  +    <map:serialize/>
  +   </map:when>
  +   <map:otherwise>
  +    <map:resource name="Access refused"/>
  +   </map:otherwise>
  +  </map:choose>
  + </map:match>
  +
    <!--
  -     the pipeline is the collection of declarative instructions for the
  -     engine to generate the resources out of the declared components.
  -  -->  
  - <pipeline>
  -
  -  <!-- 
  -      The choose element executes the specified matching test and performs 
the 
  -      resource construction based on the pipeline routing information it 
  -      contains. Mapping  rules for <mount> apply here as well.
  +     Complex example to show how some xpath-like syntax is used to get access
  +     to the pattern tokens generated by the matchers.
  +   -->
  + <map:match pattern="nested-matchers/*">
  +  <map:match type="browser" pattern="name('Mozilla ?\?*')">
  +   <map:mount src="file:///home/www/mozilla-{1}-{2}/{../1}"/>
  +  </map:match>
  + </map:match>
  +
  + <map:match pattern="complex-semantics/*">
  +
  +  <!--
  +      The semantic view should contain all the information that semantic
  +      crawlers need to fully understand this resource. It normally means
  +      that RDF, XLink and PI are contained in this view of the resource
  +      and Cocoon will be able to interrupt the pipeline at this point
  +      if the client is requesting this.
  +        
  +      This will be used for offline crawlers, metadata indexers and
  +      XML-capable browsers.
     -->
  -  <choose type="uri">
  -    <when test="cocoon/dist/*">
  -      <choose type="ip-filter">
  -        <when test="allowsAddress()">
  -        <!-- 
  -             the <redirect> element is used to redirect one requested URI 
  -             to another. This is somewhat equivalent to URI rewriting.
  -        -->
  -          <redirect to="dist/cocoon/{1}"/>
  -        </when>
  -        <default>
  -          <resource name="Access refused"/>
  -        </default>
  -      </choose>
  -    </when>
  -
  -    <when test="printer-friendly/*">
  -      <generate type="parser" src:local="{1}.xml"/>
  -      <filter type="xslt" src:local="./stylesheet/printer-friendly.xsl"/>
  -      <serialize type="html"/>
  -    </when>
  -
  -    <when test="images/logo">
  -      <choose type="browser">
  -        <when test="accepts('image/svg')">
  -          <!-- 
  -              the <read> element is used to read the src directly without 
  -              applying any processing. This is mostly useful when clients
  -              are capable of handling XML content directly.
  -          -->
  -          <read src:local="./images/logo.svg"/>
  -        </when>
  -        <default>
  -          <generate type="parser" src:local="./images/logo.svg"/>
  -          <choose type="browser">
  -            <when test="accepts('image/png')">
  -              <serialize type="svg2png"/>
  -            </when>
  -            <default>
  -              <serialize type="svg2jpg"/>
  -            </default>
  -          </choose>
  -        </default>
  -      </choose>
  -    </when>
  -
  -    <when test="restricted/*">
  -      <choose type="user">
  -        <when test="is('administrator')">
  -          <generate type="parser" src:local="./restricted/{1}"/>
  -          <filter type="xslt" src:local="./stylesheets/restricted.xsl"/>
  -          <serialize type="html"/>
  -        </when>
  -        <default>
  -          <resource name="Access refused"/>
  -        </default>
  -      </choose>
  -    </when>
  -
  -    <when test="complex-semantics/*">
  -     <generate type="parser" src:local="./complex-semantics/{1}"/>
  -     <filter type="xslt" src:local="./stylesheet/rdf-izer.xsl"/>
  -     <filter type="xslt" src:local="./stylesheet/xlink-izer.xsl"/>
  -     <!--
  -         The semantic view should contain all the information that semantic
  -         crawlers need to fully understand this resource. It normally means
  -         that RDF, XLink and PI are contained in this view of the resource
  -         and Cocoon will be able to interrupt the pipeline at this point
  -         if the client is requesting this.
  -         
  -         This will be used for offline crawlers, metadata indexers and
  -         XML-capable browsers.
  -     -->
  -         
  -     <!-- NOTE (SM)
           
  -         The semantic-view element might become too specific if the new 
  -         CC/PP (http://www.w3.org/TR/CCPP-ra/) user-agent capabilities
  -         architecture proposal is implemented. If this happens, the need for
  -         multiple pipeline exit points depending on the requestor 
capabilities
  -         will emerge. But this is clearly _way_ too early to expect, 
anyway...
  -              
  -     -->
  -
  -     <choose type="view">
  -      <when test="isSemantic()">
  -       <serialize type="xml"/>
  -      </when>
  -      <default>                 
  -       <choose type="browser">
  -        <when test="accepts('text/vnd.wap.wml')">
  -          <filter type="xslt" src:local="./stylesheet/rdf2wml.xsl"/>
  -          <serialize type="xml"/>
  -        </when>
  -        <default>
  -          <filter type="xslt" src:local="./stylesheet/rdf2html.xsl"/>
  -          <serialize type="html"/>
  -        </default>
  -       </choose>
  -      </default>
  -     </choose>
  -    </when>
  -
  -    <when test="regexp('/\([0-9]\{4\}\)/\([0-9]\{2\}\)/\([0-9]\{2\}\)/')">
  -      <!--
  -           Here we implement the ability to indicate semantic information
  -           on the processed URI. This is mostly used to avoid to encode
  -           URI specific information in the XSP since the sitemap maintainer
  -           is the only one responsible to manage the URI space. This removes
  -           a URI contract between the XSP writer and the URI space manager, 
  -           moving it to parameter names which normally change less 
frequently.
  -      -->
  -      <set-parameter name="year" value="{1}"/>
  -      <set-parameter name="month" value="{2}"/>
  -      <set-parameter name="day" value="{3}"/>
  -      
  -      <generator name="serverpages" src="/dailynews.xsp"/>
  -      <filter type="xslt" src:local="./stylesheet/{1}/news.xsl"/>
  -      <serializer type="html"/>
  -    </when>
  -
  -    <default>
  -      <generate type="parser" src:local="{1}.xml"/>
  -      <choose type="load">
  -        <when test="greaterThen('2.5')">
  -          <filter type="xslt" src:local="./stylesheet/low-graphics.xsl"/>
  -        </when>
  -        <default>
  -          <choose type="browser">
  -            <when test="is('Mozilla5')">
  -              <filter type="xslt" src:local="./stylesheet/xul-enabled.xsl"/>
  -            </when>
  -            <default>
  -              <filter type="xslt" 
src:local="./stylesheet/general-browser.xsl"/>
  -            </default>
  -          </choose>
  -        </default>
  -      </choose>
  -      <serializer type="html"/>
  -    </default>
  -    
  -   </choose>
  +  <!-- NOTE (SM)
  +     
  +      The semantic-view element might become too specific if the new 
  +      CC/PP (http://www.w3.org/TR/CCPP-ra/) user-agent capabilities
  +      architecture proposal is implemented. If this happens, the need for
  +      multiple pipeline exit points depending on the requestor capabilities
  +      will emerge. But this is clearly _way_ too early to expect, anyway...
  +           
  +  -->
     
  - </pipeline>
  +  <map:view type="semantic">
  +   <map:generate src="./complex-semantics/{1}"/>
  +   <map:filter src="./stylesheet/rdf-izer.xsl"/>
  +   <map:filter src="./stylesheet/xlink-izer.xsl"/>
  +  </map:view>
  +  
  +
  +  <map:choose>
  +   <map:when test="accepts('text/vnd.wap.wml')">
  +    <map:filter src="./stylesheet/rdf2wml.xsl"/>
  +    <map:serialize type="wap"/>
  +   </map:when>
  +   <map:otherwise>
  +    <map:filter src="./stylesheet/rdf2html.xsl"/>
  +    <map:serialize/>
  +   </map:otherwise>
  +  </map:choose>
  + </map:match>
  +
  + <map:match type="uri-regexp" 
pattern="/\([0-9]\{4\}\)/\([0-9]\{2\}\)/\([0-9]\{2\}\)/">
  +  <!--
  +       Here we implement the ability to indicate semantic information
  +       on the processed URI. This is mostly used to avoid to encode
  +       URI specific information in the XSP since the sitemap maintainer
  +       is the only one responsible to manage the URI space. This removes
  +       a URI contract between the XSP writer and the URI space manager, 
  +       moving it to parameter names which normally change less frequently.
  +  -->
  +  <map:param name="year" value="{1}"/>
  +  <map:param name="month" value="{2}"/>
  +  <map:param name="day" value="{3}"/>
  +  
  +  <map:generator name="serverpages" src="./dailynews.xsp"/>
  +  <map:filter src="./stylesheet/{1}/news.xsl"/>
  +  <map:serializer/>
  + </map:match>
  +
  + <map:match pattern="*">
  +  <map:generate src:local="{1}.xml"/>
  +  <map:choose type="load">
  +   <map:when test="greaterThen('2.5')">
  +    <map:filter src"./stylesheet/low-graphics.xsl"/>
  +   </map:when>
  +   <map:otherwise>
  +    <choose>
  +     <map:when test="is('Mozilla5')">
  +      <map:filter src="./stylesheet/xul-enabled.xsl"/>
  +     </map:when>
  +     <map:otherwise>
  +      <map:filter src="./stylesheet/general-browser.xsl"/>
  +     </map:otherwise>
  +    </map:choose>
  +   </map:otherwise>
  +  </map:choose>
  +  <map:serializer/>
  + </map:match>
  +    
  +</map:sitemap>
   
  -</sitemap>
  +<<<<<<< sitemap-working-draft.xmap
  +<!-- end of file -->
   
  +=======
   <!-- end of file -->
  +>>>>>>> 1.1.2.2
  
  
  

Reply via email to