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]