You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@forrest.apache.org by je...@apache.org on 2003/03/15 07:35:42 UTC

cvs commit: xml-forrest/src/resources/schema/relaxng sitemap-v06.rng

jefft       2003/03/14 22:35:42

  Modified:    src/resources/schema/relaxng sitemap-v06.rng
  Log:
  Update to latest Cocoon syntax
  
  Revision  Changes    Path
  1.5       +183 -80   xml-forrest/src/resources/schema/relaxng/sitemap-v06.rng
  
  Index: sitemap-v06.rng
  ===================================================================
  RCS file: /home/cvs/xml-forrest/src/resources/schema/relaxng/sitemap-v06.rng,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- sitemap-v06.rng	12 Jan 2003 12:09:39 -0000	1.4
  +++ sitemap-v06.rng	15 Mar 2003 06:35:41 -0000	1.5
  @@ -1,6 +1,6 @@
   <?xml version="1.0" encoding="UTF-8"?>
   <grammar datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" 
  -	 xmlns:sch="http://www.ascc.net/xml/schematron"
  +         xmlns:sch="http://www.ascc.net/xml/schematron"
            xmlns="http://relaxng.org/ns/structure/1.0" 
            xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" 
            xmlns:map="http://apache.org/cocoon/sitemap/1.0">
  @@ -71,6 +71,8 @@
                 as additional configuration information. The exact contents
                 depends on the implementation of each action, and since users can
                 implement their own actions this content cannot be foreseen. (BD)
  +20030212 V0.6 Add TagTransformer contents (VG)
  +20030219 V0.6 Add new i18nTransformer contents <catalogues> (DC)
   
   ====================================================================
   -->
  @@ -95,12 +97,12 @@
       <optional>
         <attribute name="default">
           <data type="string" /> 
  -	<!-- CPA: in fact the default must always match the name attribute
  -	of one of it's child elements. We will rely on a schematron schema to check
  -	this (we cannot use ID/IDREF as there are multiple namespaces
  -	e.g. map:generator uses a different namespace to
  -	map:transformer) - NO - can't be done due to sitemap
  -	  inheritance -->
  +    	  <!-- CPA: in fact the default must always match the name attribute
  +    	  of one of it's child elements. We will rely on a schematron schema to check
  +    	  this (we cannot use ID/IDREF as there are multiple namespaces
  +    	  e.g. map:generator uses a different namespace to
  +    	  map:transformer) - NO - can't be done due to sitemap
  +    	  inheritance -->
         </attribute>
       </optional>
     </define>
  @@ -156,7 +158,7 @@
       </optional>
       <optional>
         <attribute name="pool-min">
  -        <data type="positiveInteger" />
  +        <data type="nonNegativeInteger" />
         </attribute>
       </optional>
       <optional>
  @@ -282,6 +284,7 @@
   
   <!-- CPA: contents confirmed by inspection of I18nTransformer.java -->
     <define name="i18nTransformer.contents">
  +    <optional><ref name="catalogues"/></optional>
       <optional><ref name="catalogue-name"/></optional>
       <optional><ref name="catalogue-location"/></optional>
       <optional><ref name="untranslated-text"/></optional>
  @@ -329,6 +332,29 @@
       </zeroOrMore>
     </define>
   
  +<!-- CH: contents confirmed by inspection of Web3RfcTransformer.java -->
  +  <define name="web3RfcTransformer.contents">
  +    <optional><element name="system"><text/></element></optional>
  +  </define>
  +
  +  <define name="simpleFormExtractTransformer.contents">
  +    <optional>
  +       <element name="output">
  +          <ref name="name.attr"/>
  +          <text/>
  +       </element>
  +    </optional>
  +  </define>
  +
  +<!-- VG: contents of TagTransformer from the scratchpad -->
  +  <define name="tagTransformer.contents">
  +    <optional>
  +       <element name="transformer-hint">
  +          <text/>
  +       </element>
  +    </optional>
  +  </define>
  +
   <!-- CPA: contents confirmed by inspection of AbstractTextSerializer.java -->
     <define name="textSerializer.contents">
       <optional><ref name="cdata-section-elements"/></optional>
  @@ -343,6 +369,18 @@
       <optional><ref name="version"/></optional>
     </define>
   
  +  <define name="svg2jpegSerializer.contents">
  +    <optional>
  +       <element name="parameter">
  +          <attribute name="name"/>
  +          <attribute name="type">
  +            <value type="string">float</value>
  +          </attribute>
  +          <attribute name="value"/>
  +       </element>
  +    </optional>
  +  </define>
  +
   <!-- =============================================================== -->
   <!-- Sitemap -->
   <!-- =============================================================== -->
  @@ -410,7 +448,7 @@
             <ref name="map.flow-interpreters"/>
           </optional>
           <optional>
  -          <ref name="map.pipelines"/>
  +          <ref name="map.pipes"/>
           </optional>
         </interleave>
       </element>
  @@ -470,13 +508,19 @@
       <element name="map:transformer">
         <ref name="map.transformer.attlist"/>
           <interleave>
  -	  <ref name="traxTransformer.contents"/>
  +          <ref name="traxTransformer.contents"/>
             <ref name="xsltTransformer.contents"/>
             <ref name="i18nTransformer.contents"/>
             <ref name="encodeURLTransformer.contents"/>
             <ref name="linkRewriterTransformer.contents"/>
  +          <ref name="web3RfcTransformer.contents"/>
  +          <ref name="simpleFormExtractTransformer.contents"/>
  +          <ref name="tagTransformer.contents"/>
             <ref name="IdGeneratorTransformer.contents"/>
             <optional><ref name="mapping"/></optional>
  +          <zeroOrMore>
  +           <ref name="parameter"/>
  +          </zeroOrMore>
           </interleave>
       </element>
     </define>
  @@ -529,6 +573,29 @@
       <ref name="universal.attr"/>
     </define>
   
  +  <define name="catalogues">
  +    <element name="catalogues">
  +      <ref name="catalogues.attlist"/>
  +      <oneOrMore>
  +        <ref name="catalogue"/>
  +      </oneOrMore>
  +    </element>
  +  </define>
  +  <define name="catalogues.attlist" combine="interleave">
  +    <ref name="default.attr"/>
  +  </define>
  +
  +  <define name="catalogue">
  +    <element name="catalogue">
  +      <ref name="catalogue.attlist"/>
  +    </element>
  +  </define>
  +  <define name="catalogue.attlist" combine="interleave">
  +    <ref name="universal.attr"/>
  +    <ref name="name.attr"/>
  +    <attribute name="location"/>
  +  </define>
  +
     <define name="catalogue-name">
       <element name="catalogue-name">
         <ref name="catalogue-name.attlist"/>
  @@ -604,7 +671,10 @@
     <define name="map.reader">
       <element name="map:reader">
         <ref name="map.reader.attlist"/>
  -      <empty/> <!-- RNG: does reader ever have children? Its peers do. -->
  +      <optional><ref name="database.reader.content"/></optional>
  +      <zeroOrMore>
  +       <ref name="parameter"/>
  +      </zeroOrMore>
       </element>
     </define>
     <define name="map.reader.attlist" combine="interleave">
  @@ -614,6 +684,11 @@
       <ref name="component.attr"/>
     </define>
   
  +  <define name="database.reader.content">
  +     <!-- FIXME is this complete ? -->
  +     <optional><element name="use-connection"><data type="string"/></element></optional>
  +  </define>
  +
   <!-- Serializers ======================================= -->
     <define name="map.serializers">
       <element name="map:serializers">
  @@ -624,8 +699,8 @@
       </element>
       <sch:pattern name="Test constraints on map:serialize">
         <sch:rule context="xmap:serialize">
  -	<sch:assert test="count(following-sibling::*[not(self::xmap:handle-errors)])=0">
  -	  map:serialize must be the last element in a pipeline (other than map:handle-errors).
  +    	<sch:assert test="count(following-sibling::*[not(self::xmap:handle-errors)])=0">
  +    	  map:serialize must be the last element in a pipeline (other than map:handle-errors).
           </sch:assert>
         </sch:rule>
       </sch:pattern>
  @@ -641,6 +716,7 @@
       <element name="map:serializer">
         <ref name="map.serializer.attlist"/>
         <optional><ref name="textSerializer.contents"/></optional>
  +      <optional><ref name="svg2jpegSerializer.contents"/></optional>
         <optional><ref name="set-content-length"/></optional>
         <optional><ref name="buffer-size"/></optional>
         <optional><ref name="user-config"/></optional>
  @@ -832,10 +908,10 @@
       <zeroOrMore>
         <choice>
           <attribute>
  -	  <anyName/>
  -	</attribute>
  -	<text/>
  -	<ref name="anyElement"/>
  +    	  <anyName/>
  +    	</attribute>
  +        <text/>
  +        <ref name="anyElement"/>
         </choice>
       </zeroOrMore>
     </element>
  @@ -916,7 +992,7 @@
     <define name="input-module">
       <element name="input-module">
         <ref name="input-module.attlist"/>
  -      <data type="string" />
  +      <zeroOrMore><ref name="anyElement"/></zeroOrMore>
       </element>
     </define>
     <define name="input-module.attlist" combine="interleave">
  @@ -953,6 +1029,36 @@
       <ref name="component.attr"/>
     </define>
   
  +<!-- Pipes ======================================== -->
  +  <define name="map.pipes">
  +    <element name="map:pipes">
  +      <ref name="map.pipes.attlist"/>
  +      <zeroOrMore> 
  +        <ref name="map.pipe"/>
  +      </zeroOrMore>
  +    </element>
  +  </define>
  +  <define name="map.pipes.attlist" combine="interleave">
  +    <ref name="universal.attr"/>
  +    <ref name="default.attr"/>
  +  </define>
  +
  +  <define name="map.pipe">
  +    <element name="map:pipe">
  +      <ref name="map.pipe.attlist"/>
  +      <empty/>
  +    </element>
  +  </define>
  +  <define name="map.pipe.attlist" combine="interleave">
  +    <ref name="universal.attr"/>
  +    <ref name="name.attr"/>
  +    <ref name="src.attr"/>
  +    <ref name="component.attr"/>
  +    <optional>
  +       <ref name="autoCachingPoint"/>
  +     </optional>
  +  </define>
  +
   <!-- =============================================================== -->
   <!-- Views -->
   <!-- =============================================================== -->
  @@ -1112,47 +1218,44 @@
           <zeroOrMore>
             <ref name="map.handle-errors"/>
           </zeroOrMore>
  -        <optional>
  -          <ref name="autoCachingPoint"/>
  -        </optional>
         </optional>
   
         <!-- Schematron rules for map:pipeline follow -->
   
         <sch:pattern name="Test constraints on map:pipeline">
  -	<sch:rule context="/xmap:sitemap/xmap:pipelines/xmap:pipeline">
  -	  <sch:assert test="(@src and @name) 
  -	                     or .//xmap:generate[not(ancestor::xmap:handle-errors)]
  -	                     or .//xmap:aggregate[not(ancestor::xmap:handle-errors)]
  -	                     or .//xmap:read[not(ancestor::xmap:handle-errors)]
  -	                     or .//xmap:mount[not(ancestor::xmap:handle-errors)]
  -	                     or .//xmap:redirect-to[not(ancestor::xmap:handle-errors)]
  -	                     or .//xmap:call[not(ancestor::xmap:handle-errors)]">
  -	    Pipeline with no map:generate|aggregate|act|mount|redirect-to|call, or src and name attributes, is illegal
  -	  </sch:assert>
  -	  <sch:assert test="not(.//*[namespace-uri()=namespace-uri(/xmap:sitemap)
  -	                         and (local-name()='generate' or local-name()='aggregate' or local-name()='transform')
  -			         and not(ancestor::xmap:handle-errors)])
  -                            or .//*[namespace-uri()=namespace-uri(/xmap:sitemap)
  -	                         and (local-name()='generate' or local-name()='aggregate' or local-name()='transform')
  -			         and not(ancestor::xmap:handle-errors)]
  -                                   [following::*[namespace-uri()=namespace-uri(/xmap:sitemap)
  -                                                       and (local-name()='serialize' or local-name()='call')
  -                                                       and not(ancestor::xmap:handle-errors)
  -                                                ]/ancestor::xmap:pipeline[. = current()]
  -                                   ]">
  -	    Pipeline with map:generate|aggregate|transform must have map:serialize or map:call
  -	  </sch:assert>
  -	</sch:rule>
  -
  -	<sch:rule context="/xmap:sitemap/xmap:pipelines/xmap:pipeline//*[namespace-uri()=namespace-uri(/xmap:sitemap)
  -                           and (local-name()='serialize' or local-name()='mount'  or local-name()='read'  
  -                                or local-name()='redirect-to' or local-name()='call') ]">
  -	  <sch:assert test="count(following-sibling::*[namespace-uri()=namespace-uri(/xmap:sitemap) 
  -               and local-name() != 'handle-errors'])=0">
  -	    Pipeline with component after map:serialize|read|mount|redirect-to|call is illegal 
  -	  </sch:assert>
  -	</sch:rule>
  +    	 <sch:rule context="/xmap:sitemap/xmap:pipelines/xmap:pipeline">
  +    	   <sch:assert test="(@src and @name) 
  +    	                      or .//xmap:generate[not(ancestor::xmap:handle-errors)]
  +    	                      or .//xmap:aggregate[not(ancestor::xmap:handle-errors)]
  +    	                      or .//xmap:read[not(ancestor::xmap:handle-errors)]
  +    	                      or .//xmap:mount[not(ancestor::xmap:handle-errors)]
  +    	                      or .//xmap:redirect-to[not(ancestor::xmap:handle-errors)]
  +    	                      or .//xmap:call[not(ancestor::xmap:handle-errors)]">
  +    	     Pipeline with no map:generate|aggregate|act|mount|redirect-to|call, or src and name attributes, is illegal
  +    	   </sch:assert>
  +    	   <sch:assert test="not(.//*[namespace-uri()=namespace-uri(/xmap:sitemap)
  +    	                        and (local-name()='generate' or local-name()='aggregate' or local-name()='transform')
  +    	                        and not(ancestor::xmap:handle-errors)])
  +    	                     or .//*[namespace-uri()=namespace-uri(/xmap:sitemap)
  +    	                        and (local-name()='generate' or local-name()='aggregate' or local-name()='transform')
  +    	                        and not(ancestor::xmap:handle-errors)]
  +    	                                [following::*[namespace-uri()=namespace-uri(/xmap:sitemap)
  +    	                                                    and (local-name()='serialize' or local-name()='call')
  +    	                                                    and not(ancestor::xmap:handle-errors)
  +    	                                             ]/ancestor::xmap:pipeline[. = current()]
  +    	                                ]">
  +    	     Pipeline with map:generate|aggregate|transform must have map:serialize or map:call
  +    	   </sch:assert>
  +    	 </sch:rule>
  +
  +    	 <sch:rule context="/xmap:sitemap/xmap:pipelines/xmap:pipeline//*[namespace-uri()=namespace-uri(/xmap:sitemap)
  +    	                        and (local-name()='serialize' or local-name()='mount'  or local-name()='read'  
  +    	                             or local-name()='redirect-to' or local-name()='call') ]">
  +    	   <sch:assert test="count(following-sibling::*[namespace-uri()=namespace-uri(/xmap:sitemap) 
  +    	            and local-name() != 'handle-errors'])=0">
  +    	     Pipeline with component after map:serialize|read|mount|redirect-to|call is illegal 
  +    	   </sch:assert>
  +    	 </sch:rule>
         </sch:pattern>
       </element>
     </define>
  @@ -1197,17 +1300,17 @@
         </optional>
       </element>
         <sch:pattern name="Test constraints on map:match and map:select">
  -	<sch:rule context="xmap:match|xmap:when|xmap:otherwise[*]">
  -	  <sch:assert test="*[namespace-uri()=namespace-uri(/xmap:sitemap)
  -	                         and (local-name()='generate' or local-name()='transform'
  -	                           or local-name()='serialize' or local-name()='aggregate'
  -	                           or local-name()='read' or local-name()='redirect-to'
  -	                           or local-name()='act' or local-name()='match' or local-name()='select' 
  -	                           or local-name()='mount' or local-name()='call')
  -			     ]">
  -	    map:match|select without direct components, or map:mount|redirect-to|call|act|match|select is illegal
  -	  </sch:assert>
  -	</sch:rule>
  +    	 <sch:rule context="xmap:match|xmap:when|xmap:otherwise[*]">
  +    	   <sch:assert test="*[namespace-uri()=namespace-uri(/xmap:sitemap)
  +    	                          and (local-name()='generate' or local-name()='transform'
  +    	                            or local-name()='serialize' or local-name()='aggregate'
  +    	                            or local-name()='read' or local-name()='redirect-to'
  +    	                            or local-name()='act' or local-name()='match' or local-name()='select' 
  +    	                            or local-name()='mount' or local-name()='call')
  +    	              ]">
  +    	     map:match|select without direct components, or map:mount|redirect-to|call|act|match|select is illegal
  +    	   </sch:assert>
  +    	 </sch:rule>
         </sch:pattern>
     </define>
     <define name="map.select.attlist" combine="interleave">
  @@ -1405,21 +1508,21 @@
         <ref name="pipe.contents"/>
       </element>
         <sch:pattern name="Test constraints on map:handle-errors">
  -	<sch:rule context="xmap:handle-errors">
  -	  <sch:assert test="not(*[namespace-uri()=namespace-uri(/xmap:sitemap) 
  -               and (local-name()='generate' or local-name()='mount')])">
  -	    Error handler can't have: map:generate or map:mount.
  -	  </sch:assert>
  -	  <sch:assert test="*[namespace-uri()=namespace-uri(/xmap:sitemap) 
  -               and (local-name()='serialize' or local-name()='call')]">
  -	    Error handler must have map:serialize or map:call.
  -	  </sch:assert>
  -	</sch:rule>
  -	<sch:rule context="xmap:handle-errors//xmap:serialize">
  -	  <sch:assert test="not(following-sibling::*[namespace-uri()=namespace-uri(/xmap:sitemap)])">
  -	    Error handler can not have any components after map:serialize
  -	  </sch:assert>
  -	</sch:rule>
  +    	 <sch:rule context="xmap:handle-errors">
  +    	   <sch:assert test="not(*[namespace-uri()=namespace-uri(/xmap:sitemap) 
  +    	            and (local-name()='generate' or local-name()='mount')])">
  +    	     Error handler can't have: map:generate or map:mount.
  +    	   </sch:assert>
  +    	   <sch:assert test="*[namespace-uri()=namespace-uri(/xmap:sitemap) 
  +    	            and (local-name()='serialize' or local-name()='call')]">
  +    	     Error handler must have map:serialize or map:call.
  +    	   </sch:assert>
  +    	 </sch:rule>
  +    	 <sch:rule context="xmap:handle-errors//xmap:serialize">
  +    	   <sch:assert test="not(following-sibling::*[namespace-uri()=namespace-uri(/xmap:sitemap)])">
  +    	     Error handler can not have any components after map:serialize
  +    	   </sch:assert>
  +    	 </sch:rule>
         </sch:pattern>
     </define>