crossley    2002/10/30 18:13:58

  Modified:    src/webapp/WEB-INF/entities sitemap-v05.rng
  Log:
  Corrections to allow recent sitemap changes to validate
  (rules needed loosening considerably to enable this).
  Additional checks on element contents.
  Submitted by: Colin Adams <[EMAIL PROTECTED]>
  PR: 14103
  
  Revision  Changes    Path
  1.3       +217 -95   xml-cocoon2/src/webapp/WEB-INF/entities/sitemap-v05.rng
  
  Index: sitemap-v05.rng
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/src/webapp/WEB-INF/entities/sitemap-v05.rng,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- sitemap-v05.rng   30 Oct 2002 05:14:42 -0000      1.2
  +++ sitemap-v05.rng   31 Oct 2002 02:13:58 -0000      1.3
  @@ -55,19 +55,87 @@
                 Also added datatypes. (CPA)
   20021030 V0.5 Added some missing bits: selector/browser, 
                 label.attr is temporarily string (DC)
  +20021029 V0.5 Corrections to allow recent sitemap changes to validate
  +              (rules needed loosening considerably to enable this). (CPA)
  +20021030 V0.5 Additional checks on element contents. (CPA)
  +
  +The following invalid (deliberately) constructs from lint/sitemap.xmap are
  +currently sucessfully validated:
   ====================================================================
   -->
   
  +    <!-- Pipeline with no map:generate|read|mount|redirect-to|call is illegal
  +    <map:pipeline>
  +      <map:transform src="../../stylesheets/simple-xml2html.xsl"/>
  +      <map:serialize/>
  +    </map:pipeline>
  +    -->
  +
  +    <!-- Pipeline with map:generate|transform must have serialize
  +    <map:pipeline>
  +      <map:generate src="sitemap.xmap"/>
  +      <map:transform src="../../stylesheets/simple-xml2html.xsl"/>
  +    </map:pipeline>
  +    -->
  +
  +    <!-- Pipeline with component after map:serialize|read|mount|redirect-to|call is 
illegal
  +    <map:pipeline>
  +      <map:read mime-type="text/test" src="sitemap.xmap"/>
  +      <map:act type="request"/>
  +    </map:pipeline>
  +    -->
  +
  +    <!-- map:match|select without direct components are illegal
  +    <map:pipeline>
  +      <map:match pattern="oops">
  +        <map:act type="request">
  +          <map:parameter name="x" value="x"/>
  +        </map:act>
  +      </map:match>
  +    </map:pipeline>
  +    -->
  +
  +    <!-- More invalid pipelines
  +    <map:pipeline>
  +      <map:handle-errors>
  +        <map:generate src="sitemap.xmap"/>
  +        <map:serialize/>
  +      </map:handle-errors>
  +    </map:pipeline>
  +
  +    <map:pipeline>
  +      <map:generate src="sitemap.xmap"/>
  +      <map:handle-errors>
  +        <map:serialize/>
  +      </map:handle-errors>
  +    </map:pipeline>
  +
  +    <map:pipeline>
  +      <map:generate src="sitemap.xmap"/>
  +      <map:serialize/>
  +      <map:handle-errors>
  +      </map:handle-errors>
  +    </map:pipeline>
  +
  +    <map:pipeline>
  +      <map:generate src="sitemap.xmap"/>
  +      <map:serialize/>
  +      <map:handle-errors>
  +        <map:generate src="sitemap.xmap"/>
  +      </map:handle-errors>
  +    </map:pipeline>
  +    -->
  +
   <!-- =============================================================== -->
   <!-- Common Attributes -->
   <!-- =============================================================== -->
   <!-- CPA: univeral attributes possessed by all elements -->
  -<!-- CPA: id is for use by sitebuilder, but really it ought to be -->
  +<!-- CPA: id is for use by sitebuilder and others, but really it ought to be -->
   <!--      of type ID (I'm guessing) -->
     <define name="universal.attr">
       <optional>
         <attribute name="id" >
  -        <data type="positiveInteger" />
  +        <data type="string" />
         </attribute>
       </optional>
     </define>
  @@ -76,12 +144,13 @@
     <define name="default.attr">
       <optional>
         <attribute name="default">
  -        <data type="NMTOKEN" /> 
  +        <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) -->
  +     map:transformer) - NO - can't be done due to sitemap
  +       inheritance -->
         </attribute>
       </optional>
     </define>
  @@ -90,39 +159,39 @@
             are always CDATA, but sometimes optional -->
     <define name="src.attr">
       <attribute name="src">
  -      <data type="anyURI"/>
  +      <data type="string"/>
       </attribute>
     </define>
     <define name="optsrc.attr">
       <optional>
         <attribute name="src">
  -      <data type="anyURI"/>
  +      <data type="string"/>
       </attribute>
       </optional>
     </define>
   
     <define name="name.attr">
       <attribute name="name">
  -      <data type="NMTOKEN"/> <!-- CPA: see comment on default.attr -->
  +      <data type="string"/> <!-- CPA: see comment on default.attr -->
       </attribute>
     </define>
     <define name="optname.attr">
       <optional>
  -    <attribute name="optname">
  -      <data type="NMTOKEN"/> <!-- CPA: see comment on default.attr -->
  +    <attribute name="name">
  +      <data type="string"/> <!-- CPA: see comment on default.attr -->
       </attribute>
       </optional>
     </define>
   
     <define name="uri.attr">
       <attribute name="uri">
  -      <data type="anyURI"/>
  +      <data type="string"/>
       </attribute>
     </define>
     <define name="opturi.attr">
       <optional>
         <attribute name="uri">
  -      <data type="anyURI"/>
  +      <data type="string"/>
       </attribute>
       </optional>
     </define>
  @@ -151,7 +220,7 @@
     <define name="logger.attr">
       <optional>
         <attribute name="logger">
  -        <data type="normalizedString" /> <!-- CPA: a Java class name -->
  +        <data type="string" /> <!-- CPA: a Java class name -->
         </attribute>
       </optional>
     </define>
  @@ -161,17 +230,17 @@
     <define name="aggregate.attr">
       <optional>
         <attribute name="element">
  -        <data type="NCName" />
  +        <data type="string" />
         </attribute>
       </optional>
       <optional>
         <attribute name="ns">
  -        <data type="anyURI" />
  +        <data type="string" />
         </attribute>
       </optional>
       <optional>
         <attribute name="prefix">
  -        <data type="NCName" />
  +        <data type="string" />
         </attribute>
       </optional>
     </define>
  @@ -209,7 +278,7 @@
     <define name="type.attr">
       <optional>
         <attribute name="type">
  -        <data type="string"/> <!-- CPA: change this to sets of enumerations in v0.6 
-->
  +        <data type="string"/>
         </attribute>
       </optional>
     </define>
  @@ -219,7 +288,7 @@
     <define name="resource.attr">
       <optional>
         <attribute name="resource">
  -        <data type="NMTOKEN" />
  +        <data type="string" />
         </attribute>
       </optional>
     </define>
  @@ -233,7 +302,7 @@
   <!-- CPA: now for element contents -->
   
     <define name="pipe.contents">
  -    <zeroOrMore> <!-- CPA: look into this in V0.6 -->
  +    <zeroOrMore> <!-- CPA: look into this in V0.6 - I think, must use schematron -->
         <choice>
           <ref name="map.parameter"/>
           <ref name="map.act"/>
  @@ -258,6 +327,7 @@
       <optional><ref name="use-browser-capabilities-db"/></optional>
       <optional><ref name="use-session-info"/></optional>
       <optional><ref name="use-deli"/></optional>
  +    <optional><ref name="transformer-factory"/></optional> 
     </define>
   
   <!-- CPA: contents confirmed by inspection of I18nTransformer.java -->
  @@ -422,23 +492,13 @@
     <define name="map.transformer">
       <element name="map:transformer">
         <ref name="map.transformer.attlist"/>
  -      <choice>
  -     <group>
  -       <interleave>
  -         <optional><ref name="traxTransformer.contents"/></optional> 
  -         <optional><ref name="transformer-factory"/></optional> 
  -          </interleave>
  -     </group>
  -     <group>
  -       <interleave>
  -        <optional><ref name="xsltTransformer.contents"/></optional> 
  -         <optional><ref name="transformer-factory"/></optional> 
  -          </interleave>
  -     </group>
  -        <optional><ref name="i18nTransformer.contents"/></optional> 
  -        <optional><ref name="encodeURLTransformer.contents"/></optional> 
  -        <optional><ref name="mapping"/></optional> 
  -      </choice>
  +        <interleave>
  +       <ref name="traxTransformer.contents"/>
  +          <ref name="xsltTransformer.contents"/>
  +          <ref name="i18nTransformer.contents"/>
  +          <ref name="encodeURLTransformer.contents"/>
  +          <optional><ref name="mapping"/></optional>
  +        </interleave>
       </element>
     </define>
     <define name="map.transformer.attlist" combine="interleave">
  @@ -449,11 +509,14 @@
       <ref name="component.attr"/>
     </define>
   
  -<!-- CPA: these elements should have their text contents defined TODO -->
     <define name="use-store">
  -    <element name="use-store">
  +  <!-- CPA: from  XSLTProcessorImpl.java -->  
  +    <element name="use-store" a:defaultValue="true" >
         <ref name="use-store.attlist"/>
  -      <text/>
  +      <choice>
  +        <value>true</value>
  +        <value>false</value>
  +      </choice>
       </element>
     </define>
     <define name="use-store.attlist" combine="interleave">
  @@ -461,9 +524,13 @@
     </define>
   
     <define name="use-request-parameters">
  -    <element name="use-request-parameters">
  +  <!-- CPA: from TraxTransformer.java -->
  +    <element name="use-request-parameters" a:defaultValue="false">
         <ref name="use-request-parameters.attlist"/>
  -      <text/>
  +      <choice>
  +        <value>true</value>
  +        <value>false</value>
  +      </choice>      
       </element>
     </define>
     <define name="use-request-parameters.attlist" combine="interleave">
  @@ -471,9 +538,12 @@
     </define>
   
     <define name="use-browser-capabilities-db">
  -    <element name="use-browser-capabilities-db">
  +    <element name="use-browser-capabilities-db"  a:defaultValue="false">
         <ref name="use-browser-capabilities-db.attlist"/>
  -      <text/>
  +      <choice>
  +        <value>true</value>
  +        <value>false</value>
  +      </choice>
       </element>
     </define>
     <define name="use-browser-capabilities-db.attlist" combine="interleave">
  @@ -483,7 +553,7 @@
     <define name="catalogue-name">
       <element name="catalogue-name">
         <ref name="catalogue-name.attlist"/>
  -      <text/>
  +      <data type="string" />
       </element>
     </define>
     <define name="catalogue-name.attlist" combine="interleave">
  @@ -493,7 +563,7 @@
     <define name="catalogue-location">
       <element name="catalogue-location">
         <ref name="catalogue-location.attlist"/>
  -      <text/>
  +      <data type="string" />
       </element>
     </define>
     <define name="catalogue-location.attlist" combine="interleave">
  @@ -501,9 +571,13 @@
     </define>
   
     <define name="use-deli">
  +  <!-- CPA: this parameter has disappeared from the source TODO: clarify -->
       <element name="use-deli">
         <ref name="use-deli.attlist"/>
  -      <text/>
  +      <choice>
  +        <value>true</value>
  +        <value>false</value>
  +      </choice>
       </element>
     </define>
     <define name="use-deli.attlist" combine="interleave">
  @@ -511,9 +585,13 @@
     </define>
   
     <define name="cache-at-startup">
  -    <element name="cache-at-startup">
  +  <!-- CPA: from XMLResourceBundleFactory and I18nTransformer -->
  +    <element name="cache-at-startup" a:defaultValue="false">
         <ref name="cache-at-startup.attlist"/>
  -      <text/>
  +      <choice>
  +        <value>true</value>
  +        <value>false</value>
  +      </choice>
       </element>
     </define>
     <define name="cache-at-startup.attlist" combine="interleave">
  @@ -523,7 +601,7 @@
     <define name="mapping">
       <element name="mapping">
         <ref name="mapping.attlist"/>
  -      <text/>
  +      <data type="string" />
       </element>
     </define>
     <define name="mapping.attlist" combine="interleave">
  @@ -601,7 +679,7 @@
     <define name="cdata-section-elements">
       <element name="cdata-section-elements">
         <ref name="cdata-section-elements.attlist"/>
  -      <text/>
  +      <data type="string" />
       </element>
     </define>
     <define name="cdata-section-elements.attlist" combine="interleave">
  @@ -611,7 +689,7 @@
     <define name="doctype-public">
       <element name="doctype-public">
         <ref name="doctype-public.attlist"/>
  -      <text/>
  +      <data type="string" />
       </element>
     </define>
     <define name="doctype-public.attlist" combine="interleave">
  @@ -621,7 +699,7 @@
     <define name="doctype-system">
       <element name="doctype-system">
         <ref name="doctype-system.attlist"/>
  -      <text/>
  +      <data type="string" />
       </element>
     </define>
     <define name="doctype-system.attlist" combine="interleave">
  @@ -631,7 +709,7 @@
     <define name="encoding">
       <element name="encoding">
         <ref name="encoding.attlist"/>
  -      <text/>
  +      <data type="string" />
       </element>
     </define>
     <define name="encoding.attlist" combine="interleave">
  @@ -641,7 +719,10 @@
     <define name="omit-xml-declaration">
       <element name="omit-xml-declaration">
         <ref name="omit-xml-declaration.attlist"/>
  -      <text/>
  +      <choice>
  +        <value>yes</value>
  +        <value>no</value>
  +      </choice>
       </element>
     </define>
     <define name="omit-xml-declaration.attlist" combine="interleave">
  @@ -676,7 +757,7 @@
     <define name="buffer-size">
       <element name="buffer-size">
         <ref name="buffer-size.attlist"/>
  -      <text/>
  +      <data type="positiveInteger" />
       </element>
     </define>
     <define name="buffer-size.attlist" combine="interleave">
  @@ -703,9 +784,6 @@
         <zeroOrMore>
           <ref name="browser"/>
         </zeroOrMore>
  -      <optional>
  -        <ref name="anyElement"/>
  -      </optional>
       </element>
     </define>
   
  @@ -803,7 +881,7 @@
     <define name="attribute-name">
       <element name="attribute-name">
         <ref name="attribute-name.attlist"/>
  -      <text/>
  +      <data type="string" />
       </element>
     </define>
     <define name="attribute-name.attlist" combine="interleave">
  @@ -813,7 +891,7 @@
     <define name="parameter-name">
       <element name="parameter-name">
         <ref name="parameter-name.attlist"/>
  -      <text/>
  +      <data type="string" />
       </element>
     </define>
     <define name="parameter-name.attlist" combine="interleave">
  @@ -823,7 +901,7 @@
     <define name="header-name">
       <element name="header-name">
         <ref name="header-name.attlist"/>
  -      <text/>
  +      <data type="string" />
       </element>
     </define>
     <define name="header-name.attlist" combine="interleave">
  @@ -833,7 +911,7 @@
     <define name="input-module">
       <element name="input-module">
         <ref name="input-module.attlist"/>
  -      <text/>
  +      <data type="string" />
       </element>
     </define>
     <define name="input-module.attlist" combine="interleave">
  @@ -883,7 +961,12 @@
     <define name="create-session">
       <element name="create-session">
         <ref name="create-session.attlist"/>
  -      <text/>
  +      <choice>
  +        <value>yes</value>
  +        <value>no</value>
  +        <value>true</value>
  +        <value>false</value>
  +      </choice>
       </element>
     </define>
     <define name="create-session.attlist" combine="interleave">
  @@ -893,7 +976,12 @@
     <define name="store-in-session">
       <element name="store-in-session">
         <ref name="store-in-session.attlist"/>
  -      <text/>
  +      <choice>
  +        <value>yes</value>
  +        <value>no</value>
  +        <value>true</value>
  +        <value>false</value>
  +      </choice>      
       </element>
     </define>
     <define name="store-in-session.attlist" combine="interleave">
  @@ -903,7 +991,12 @@
     <define name="store-in-request">
       <element name="store-in-request">
         <ref name="store-in-request.attlist"/>
  -      <text/>
  +      <choice>
  +        <value>yes</value>
  +        <value>no</value>
  +        <value>true</value>
  +        <value>false</value>
  +      </choice>
       </element>
     </define>
     <define name="store-in-request.attlist" combine="interleave">
  @@ -913,7 +1006,12 @@
     <define name="store-in-cookie">
       <element name="store-in-cookie">
         <ref name="store-in-cookie.attlist"/>
  -      <text/>
  +      <choice>
  +        <value>yes</value>
  +        <value>no</value>
  +        <value>true</value>
  +        <value>false</value>
  +      </choice>
       </element>
     </define>
     <define name="store-in-cookie.attlist" combine="interleave">
  @@ -923,7 +1021,7 @@
     <define name="locale-attribute">
       <element name="locale-attribute">
         <ref name="locale-attribute.attlist"/>
  -      <text/>
  +      <data type="string" />
       </element>
     </define>
     <define name="locale-attribute.attlist" combine="interleave">
  @@ -933,7 +1031,7 @@
     <define name="language-attribute">
       <element name="language-attribute">
         <ref name="language-attribute.attlist"/>
  -      <text/>
  +      <data type="string" />
       </element>
     </define>
     <define name="language-attribute.attlist" combine="interleave">
  @@ -943,7 +1041,7 @@
     <define name="country-attribute">
       <element name="country-attribute">
         <ref name="country-attribute.attlist"/>
  -      <text/>
  +      <data type="string" />
       </element>
     </define>
     <define name="country-attribute.attlist" combine="interleave">
  @@ -953,7 +1051,7 @@
     <define name="variant-attribute">
       <element name="variant-attribute">
         <ref name="variant-attribute.attlist"/>
  -      <text/>
  +      <data type="string" />
       </element>
     </define>
     <define name="variant-attribute.attlist" combine="interleave">
  @@ -963,7 +1061,7 @@
     <define name="descriptor">
       <element name="descriptor">
         <ref name="descriptor.attlist"/>
  -      <text/>
  +      <data type="string" />
       </element>
     </define>
     <define name="descriptor.attlist" combine="interleave">
  @@ -971,9 +1069,14 @@
     </define>
   
     <define name="throw-exception">
  -    <element name="throw-exception">
  +    <element name="throw-exception" a:defaultValue="false">
         <ref name="throw-exception.attlist"/>
  -      <text/>
  +      <choice>
  +        <value>yes</value>
  +        <value>no</value>
  +        <value>true</value>
  +        <value>false</value>
  +      </choice>
       </element>
     </define>
     <define name="throw-exception.attlist" combine="interleave">
  @@ -981,9 +1084,9 @@
     </define>
   
     <define name="output">
  -    <element name="output">
  +    <element name="output-module">
         <ref name="output.attlist"/>
  -      <text/>
  +      <data type="string" />
       </element>
     </define>
     <define name="output.attlist" combine="interleave">
  @@ -1042,6 +1145,7 @@
       <ref name="universal.attr"/>
       <ref name="type.attr"/>
       <ref name="mime.attr"/>
  +    <ref name="label.attr"/>
       <optional>
         <attribute name="status-code"/>
       </optional>
  @@ -1221,7 +1325,12 @@
     <define name="autoCachingPoint">
       <element name="autoCachingPoint">
         <ref name="autoCachingPoint.attlist"/>
  -      <text/>
  +      <choice>
  +        <value>on</value>
  +        <value>On</value>
  +        <value>off</value>
  +        <value>Off</value>
  +      </choice>
       </element>
     </define>
     <define name="autoCachingPoint.attlist" combine="interleave">
  @@ -1296,13 +1405,9 @@
   
     <define name="map.call.attlist" combine="interleave">
       <ref name="universal.attr"/>
  -    <choice>
         <ref name="resource.attr"/>
  -      <group>
  -        <attribute name="function"/>
  -        <attribute name="continuation"/>
  -      </group>
  -    </choice>
  +      <optional><attribute name="function"/></optional>
  +      <optional><attribute name="continuation"/></optional>
     </define>
   
     <define name="map.generate">
  @@ -1411,7 +1516,7 @@
     <define name="global-variables">
       <element name="global-variables">
         <ref name="global-variables.attlist"/>
  -      <text/>
  +      <text/> <!-- CPA: can't find anywhere in source -->
       </element>
     </define>
     <define name="global-variables.attlist" combine="interleave">
  @@ -1880,7 +1985,8 @@
     <define name="method">
       <element name="method">
         <ref name="method.attlist"/>
  -      <empty/>
  +      <data type="string" /> 
  +      <!-- CPA: should be xml, or html, or text or an expanded name -->
       </element>
     </define>
     <define name="method.attlist" combine="interleave">
  @@ -1888,9 +1994,12 @@
     </define>
   
     <define name="use-cookies">
  -    <element name="use-cookies">
  +    <element name="use-cookies" a:defaultValue="false" >
         <ref name="use-cookies.attlist"/>
  -      <empty/>
  +      <choice>
  +        <value>true</value>
  +        <value>false</value>
  +      </choice>
       </element>
     </define>
     <define name="use-cookies.attlist" combine="interleave">
  @@ -1910,7 +2019,7 @@
     <define name="media-type">
       <element name="media-type">
         <ref name="media-type.attlist"/>
  -      <empty/>
  +      <data type="string" />
       </element>
     </define>
     <define name="media-type.attlist" combine="interleave">
  @@ -1920,7 +2029,7 @@
     <define name="version">
       <element name="version">
         <ref name="version.attlist"/>
  -      <empty/>
  +      <data type="NMTOKEN" /> <!-- CPA: but actually a floating point version 
number -->
       </element>
     </define>
     <define name="version.attlist" combine="interleave">
  @@ -1928,9 +2037,9 @@
     </define>
   
     <define name="transformer-factory">
  -    <element name="transformer-factory">
  +    <element name="transformer-factory" a:defaultValue="default">
         <ref name="transformer-factory.attlist"/>
  -      <empty/>
  +      <data type="string" />
       </element>
     </define>
     <define name="transformer-factory.attlist" combine="interleave">
  @@ -1938,9 +2047,12 @@
     </define>
   
     <define name="use-session-info">
  -    <element name="use-session-info">
  +    <element name="use-session-info"  a:defaultValue="false" >
         <ref name="use-session-info.attlist"/>
  -      <empty/>
  +      <choice>
  +        <value>true</value>
  +        <value>false</value>
  +      </choice>
       </element>
     </define>
     <define name="use-session-info.attlist" combine="interleave">
  @@ -1948,9 +2060,13 @@
     </define>
   
     <define name="incremental-processing">
  -    <element name="incremental-processing">
  +  <!-- CPA: from  XSLTProcessorImpl.java -->  
  +    <element name="incremental-processing" a:defaultValue="false" >
         <ref name="incremental-processing.attlist"/>
  -      <empty/>
  +      <choice>
  +        <value>true</value>
  +        <value>false</value>
  +      </choice>
       </element>
     </define>
     <define name="incremental-processing.attlist" combine="interleave">
  @@ -1960,7 +2076,10 @@
     <define name="indent">
       <element name="indent">
         <ref name="indent.attlist"/>
  -      <empty/>
  +      <choice>
  +        <value>yes</value>
  +        <value>no</value>
  +      </choice>
       </element>
     </define>
     <define name="indent.attlist" combine="interleave">
  @@ -1980,7 +2099,10 @@
     <define name="standalone">
       <element name="standalone">
         <ref name="standalone.attlist"/>
  -      <empty/>
  +      <choice>
  +        <value>yes</value>
  +        <value>no</value>
  +      </choice>
       </element>
     </define>
     <define name="standalone.attlist" combine="interleave">
  
  
  

----------------------------------------------------------------------
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