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]