crossley 2002/10/18 01:56:12 Modified: src/webapp/WEB-INF/entities catalog . changes.xml todo.xml Added: src/webapp/WEB-INF/entities sitemap-v03.dtd Log: Updated the draft DTD for sitemap. Submitted by: Colin Paul Adams <[EMAIL PROTECTED]> Revision Changes Path 1.2 +2 -0 xml-cocoon2/src/webapp/WEB-INF/entities/catalog Index: catalog =================================================================== RCS file: /home/cvs/xml-cocoon2/src/webapp/WEB-INF/entities/catalog,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- catalog 2 Jul 2002 14:36:36 -0000 1.1 +++ catalog 18 Oct 2002 08:56:12 -0000 1.2 @@ -31,6 +31,8 @@ "todo-v10.dtd" PUBLIC "-//APACHE//DTD Cocoon Sitemap V0.2//EN" "sitemap-v02.dtd" +PUBLIC "-//APACHE//DTD Cocoon Sitemap V0.3//EN" + "sitemap-v03.dtd" -- enabling validation during Cocoon's own "build docs" -- -- all *.xml require DTD for validation during "build docs" -- 1.1 xml-cocoon2/src/webapp/WEB-INF/entities/sitemap-v03.dtd Index: sitemap-v03.dtd =================================================================== <!-- =================================================================== Apache Cocoon Sitemap DTD (Version 0.3) PURPOSE: DRAFT DTD for the Cocoon2 sitemap.xmap files. TYPICAL INVOCATION: <!DOCTYPE map:sitemap PUBLIC "-//APACHE//DTD Cocoon Sitemap Vx.yz//EN" "sitemap-vxyz.dtd"> where x := major version y := minor version z := status identifier (optional) NOTES: * ATTENTION: This initial DTD was reverse-engineered by hand from the various sitemap.xmap instances included in the current distribution. This is just an attempt to document the existing rules for sitemap structure. In many cases a very lax content model is used, simply to get around validation issues. A proper design process is still, still required. * Needed by XML editing tools for creation of reliable documents. * Can generate RNG and WXS once DTD is locked down. * We need to synchronise this DTD with the relax-ng work by <[EMAIL PROTECTED]> ... cocoon-dev 2001-07-18 http://marc.theaimsgroup.com/?l=xml-cocoon-dev&m=99545886226916&w=2 * This DTD has been tested with various XML validating parsers. * The big questions (still) are: - What possibilities were missed because they were not included in the default sitemaps?" - What in the default sitemap.xmap files is mandatory versus optional?" - What elements/attributes need their rules tightened? AUTHORS: Jeffrey Ricker NG (Usonia Holdings) <[EMAIL PROTECTED]> David Crossley <[EMAIL PROTECTED]> Colin Paul Adams <[EMAIL PROTECTED]> FIXME: - this DTD has only been updated sporadically, so often gets out-of-sync - map:act is used in various contexts, so it has a loose definition - Completely rewrite this DTD looking from the application point-of-view (do not rely on this temporary initial DTD) - Components should be allowed in any order but only one of each. - map:when and map:otherwise are shown in xdocs/sitemap.xml but are not used in the sitemap.xmap files - align elements and attributes with sitemap*.xsl - review all xdocs/userdocs/generators/*.xml etc. and sync with this DTD CHANGE HISTORY: 20010715 V0.1 Initial version. (RNG) 20011106 V0.2 Reviewed all */sitemap.xmap and added definitions (DC) 20011106 V0.2 All elements now have "map:" prefix. (DC) 20011106 V0.2 Incorporated comments Bruno Dumon cocoon-dev 20010718 (DC) 20011116 V0.2 Changes from label/view discussion cocoon-dev 20011115 (DC) 20011219 V0.2 Deprecated 'redirect-to resource'. Added 'map:call resource'(CH) 20021017 V0.3 Updated so validation works again (CPA) ==================================================================== --> <!-- CPA: made map:components optional, as the modules sitemap inherits this from the parent sitemap (??) --> <!ELEMENT map:sitemap (map:components?, map:views?, map:resources?, map:action-sets?, map:flow*, map:pipelines)> <!ATTLIST map:sitemap xmlns:map CDATA #FIXED "http://apache.org/cocoon/sitemap/1.0" > <!-- =============================================================== --> <!-- Components --> <!-- =============================================================== --> <!-- CPA: made all components optional, as the webserviceproxy sitemap inherits from the parent sitemap (??) --> <!ELEMENT map:components (map:generators?, map:transformers?, map:readers?, map:serializers?, map:matchers?, map:selectors?, map:actions?, map:flow-interpreters?, map:pipelines?)> <!-- RNG: must they appear in this order? must they all appear, even if they are empty? --> <!-- DC: it seems that some sitemaps do not contain all components e.g. documentation/sitemap.xmap does not have map:selectors --> <!-- CPA: matchers and selectors switched, flow-interpreters added --> <!-- CPA: pool* and logger attributes added where necessary --> <!-- Generators ======================================== --> <!ELEMENT map:generators (map:generator*)> <!ATTLIST map:generators default CDATA #IMPLIED > <!ELEMENT map:generator EMPTY> <!ATTLIST map:generator name CDATA #REQUIRED src CDATA #REQUIRED label CDATA #IMPLIED pool-max CDATA #IMPLIED pool-min CDATA #IMPLIED pool-grow CDATA #IMPLIED logger CDATA #IMPLIED > <!-- RNG: with all attributes, which are required and which are implied? --> <!-- Transformers ====================================== --> <!ELEMENT map:transformers (map:transformer*)> <!ATTLIST map:transformers default CDATA #IMPLIED > <!ELEMENT map:transformer (use-store | use-request-parameters | use-browser-capabilities-db | catalogue-name | catalogue-location | use-deli | cache-at-startup)* > <!-- RNG: surely the content is not ANY. However, there were so many children here that I did not know where to begin --> <!-- DC: here are some that are currently used --> <!-- CPA: added use-deli and cache-at-startup - changed ANY --> <!ELEMENT use-store (#PCDATA)> <!ELEMENT use-request-parameters (#PCDATA)> <!ELEMENT use-browser-capabilities-db (#PCDATA)> <!ELEMENT catalogue-name (#PCDATA)> <!ELEMENT catalogue-location (#PCDATA)> <!ELEMENT use-deli (#PCDATA)> <!ELEMENT cache-at-startup (#PCDATA)> <!-- CPA: add mime-type --> <!ATTLIST map:transformer name CDATA #REQUIRED src CDATA #REQUIRED label CDATA #IMPLIED mime-type CDATA #IMPLIED pool-max CDATA #IMPLIED pool-min CDATA #IMPLIED pool-grow CDATA #IMPLIED logger CDATA #IMPLIED > <!-- Readers =========================================== --> <!ELEMENT map:readers (map:reader*)> <!ATTLIST map:readers default CDATA #IMPLIED > <!ELEMENT map:reader EMPTY> <!-- RNG: does reader ever have children? Its peers do. --> <!ATTLIST map:reader name CDATA #REQUIRED src CDATA #REQUIRED pool-max CDATA #IMPLIED pool-min CDATA #IMPLIED pool-grow CDATA #IMPLIED logger CDATA #IMPLIED > <!-- Serializers ======================================= --> <!ELEMENT map:serializers (map:serializer*)> <!ATTLIST map:serializers default CDATA #IMPLIED > <!ELEMENT map:serializer (doctype-public|doctype-system|encoding| omit-xml-declaration|parameter|buffer-size)*> <!-- RNG: are these the only children of serializer? --> <!-- CPA: No. Added buffer-size --> <!-- CPA: mime-type changed from #REQUIRED to #IMPLIED, because of LinkSerializer --> <!-- CPA: added pool-grow --> <!ATTLIST map:serializer name CDATA #REQUIRED mime-type CDATA #IMPLIED src CDATA #REQUIRED pool-max CDATA #IMPLIED pool-min CDATA #IMPLIED pool-grow CDATA #IMPLIED logger CDATA #IMPLIED > <!ELEMENT doctype-public (#PCDATA)> <!ELEMENT doctype-system (#PCDATA)> <!ELEMENT encoding (#PCDATA)> <!ELEMENT omit-xml-declaration (#PCDATA)> <!ELEMENT parameter EMPTY> <!ATTLIST parameter name CDATA #REQUIRED value CDATA #REQUIRED type CDATA #IMPLIED > <!ELEMENT buffer-size (#PCDATA)> <!-- Selectors ========================================= --> <!ELEMENT map:selectors (map:selector*)> <!ATTLIST map:selectors default CDATA #IMPLIED > <!ELEMENT map:selector (browser*)> <!-- CPA: added logger --> <!ATTLIST map:selector name CDATA #REQUIRED src CDATA #REQUIRED logger CDATA #IMPLIED > <!ELEMENT browser EMPTY> <!ATTLIST browser name CDATA #REQUIRED useragent CDATA #REQUIRED > <!-- Matchers ========================================== --> <!ELEMENT map:matchers (map:matcher*)> <!ATTLIST map:matchers default CDATA #IMPLIED > <!-- CPA: added element input-module --> <!ELEMENT map:matcher (attribute-name|parameter-name|header-name|input-module)*> <!-- CPA: added logger --> <!ATTLIST map:matcher name CDATA #REQUIRED src CDATA #REQUIRED logger CDATA #IMPLIED > <!ELEMENT attribute-name (#PCDATA)> <!ELEMENT parameter-name (#PCDATA)> <!ELEMENT header-name (#PCDATA)> <!ELEMENT input-module (#PCDATA)> <!ATTLIST input-module name CDATA #REQUIRED > <!-- Actions =========================================== --> <!ELEMENT map:actions (map:action*)> <!ATTLIST map:actions default CDATA #IMPLIED > <!-- CPA: added sub-elements --> <!ELEMENT map:action (create-session | store-in-session | store-in-request | store-in-cookie | locale-attribute | language-attribute | country-attribute | variant-attribute | descriptor | throw-exception | output )*> <!-- CPA: added logger --> <!ATTLIST map:action name CDATA #REQUIRED src CDATA #REQUIRED logger CDATA #IMPLIED > <!-- CPA: should these sub-elements really be in the global namespace? as they are really attributes, perhaps --> <!ELEMENT create-session (#PCDATA)> <!ELEMENT store-in-session (#PCDATA)> <!ELEMENT store-in-request (#PCDATA)> <!ELEMENT store-in-cookie (#PCDATA)> <!ELEMENT locale-attribute (#PCDATA)> <!ELEMENT language-attribute (#PCDATA)> <!ELEMENT country-attribute (#PCDATA)> <!ELEMENT variant-attribute (#PCDATA)> <!ELEMENT descriptor (#PCDATA)> <!ELEMENT throw-exception (#PCDATA)> <!ELEMENT output (#PCDATA)> <!-- =============================================================== --> <!-- Views --> <!-- =============================================================== --> <!ELEMENT map:views (map:view*)> <!ELEMENT map:view (map:transform*,map:serialize)> <!ATTLIST map:view name CDATA #REQUIRED from-label CDATA #IMPLIED from-position (first|last) "last" > <!ELEMENT map:serialize (map:parameter*)> <!-- CPA: type changed from #REQUIRED --> <!ATTLIST map:serialize type CDATA #IMPLIED mime-type CDATA #IMPLIED status-code CDATA #IMPLIED > <!-- =============================================================== --> <!-- Resources --> <!-- =============================================================== --> <!ELEMENT map:resources (map:resource*)> <!-- CPA: added a third possibility for contents of resource --> <!ELEMENT map:resource (((map:generate | map:aggregate),map:transform+,map:serialize) | map:act)> <!ATTLIST map:resource name CDATA #REQUIRED > <!-- generate and transform defined in PIPELINE section --> <!-- =============================================================== --> <!-- Action Sets --> <!-- =============================================================== --> <!ELEMENT map:action-sets (map:action-set*)> <!ELEMENT map:action-set (map:act+)> <!ATTLIST map:action-set name CDATA #REQUIRED > <!ELEMENT map:act (map:parameter|map:redirect-to|map:call|map:generate| map:transform|map:serialize|map:act|map:match)*> <!ATTLIST map:act type CDATA #IMPLIED action CDATA #IMPLIED set CDATA #IMPLIED > <!-- =============================================================== --> <!-- Pipelines --> <!-- =============================================================== --> <!-- CPA: added default attribute and component-configurations --> <!ELEMENT map:pipelines (map:component-configurations?,map:pipeline*)> <!ATTLIST map:pipelines default CDATA #IMPLIED > <!-- CPA: added id, type, internal-only, name and src attributes, and autoCachingPoint and map:act elements --> <!-- CPA: N.B. we appear to have two different sorts of pipeline elements --> <!ELEMENT map:pipeline (map:act | (map:match*, map:handle-errors?,autoCachingPoint?))> <!ATTLIST map:pipeline id CDATA #IMPLIED internal-only CDATA #IMPLIED name CDATA #IMPLIED src CDATA #IMPLIED type CDATA #IMPLIED > <!ELEMENT map:match (map:mount | map:redirect-to | map:call | map:generate | map:transform | map:serialize | map:read | map:aggregate | map:act | map:match)*> <!-- RNG: It seemed from the example that match should be defined as match (map:mount*|map:redirect-to*|(map:generate*,map:transform*,map:serialize*)*|map:read*|map:aggregate*) but I have no way of knowing. --> <!-- DC: Now map:act complicates the content model even further --> <!ATTLIST map:match type CDATA #IMPLIED pattern CDATA #REQUIRED > <!ELEMENT autoCachingPoint (#PCDATA)> <!-- map:act is already defined in the Action Sets section --> <!ELEMENT map:mount EMPTY> <!ATTLIST map:mount uri-prefix CDATA #REQUIRED src CDATA #REQUIRED reload-method (synchron|asynchron) "asynchron" check-reload (true|false|yes|no) "no" > <!ELEMENT map:redirect-to EMPTY> <!ATTLIST map:redirect-to uri CDATA #IMPLIED session (true|false|yes|no) "no" > <!-- CH: redirects to resources are now deprecated <!ATTLIST map:redirect-to uri CDATA #IMPLIED resource CDATA #IMPLIED target CDATA #IMPLIED session (true|false|yes|no) "no" > --> <!ELEMENT map:call (map:parameter*)> <!-- CPA: changed resource from #REQUIRED, and added function and continuation --> <!ATTLIST map:call resource CDATA #IMPLIED function CDATA #IMPLIED continuation CDATA #IMPLIED > <!ELEMENT map:generate (map:parameter*)> <!ATTLIST map:generate type CDATA #IMPLIED src CDATA #IMPLIED label CDATA #IMPLIED > <!ELEMENT map:parameter EMPTY> <!ATTLIST map:parameter name CDATA #REQUIRED value CDATA #REQUIRED > <!ELEMENT map:transform (map:parameter*)> <!ATTLIST map:transform type CDATA #IMPLIED src CDATA #IMPLIED label CDATA #IMPLIED > <!-- map:serialize is already defined in VIEWS section --> <!-- CPA: added optional map:parameter contents --> <!ELEMENT map:read (map:parameter)*> <!-- CPA: mime-type changed from #REQUIRED (??!) --> <!ATTLIST map:read src CDATA #REQUIRED mime-type CDATA #IMPLIED type CDATA #IMPLIED > <!ELEMENT map:aggregate (map:part*)> <!ATTLIST map:aggregate element CDATA #IMPLIED prefix CDATA #IMPLIED ns CDATA #IMPLIED label CDATA #IMPLIED > <!ELEMENT map:part EMPTY> <!ATTLIST map:part src CDATA #IMPLIED element CDATA #IMPLIED ns CDATA #IMPLIED strip-root CDATA #IMPLIED label CDATA #IMPLIED > <!ELEMENT map:handle-errors (map:generate*,map:transform*,map:serialize*)> <!-- CPA: added type --> <!ATTLIST map:handle-errors type CDATA #IMPLIED > <!-- CPA: not sure what this really ought to be yet --> <!ELEMENT map:component-configurations (global-variables?)> <!ELEMENT global-variables (#PCDATA)> <!-- ??? If I specify EMPTY, I get validation errors, even though the --> <!-- only example has only white space and comments. So why do we have --> <!-- this if noone is using it??? --> <!ELEMENT map:flow-interpreters EMPTY> <!-- CPA: obviously it should NOT be empty for non-default usage, so this --> <!-- needs correcting --> <!ATTLIST map:flow-interpreters default CDATA #REQUIRED > <!-- CPA: don't really know what this should be --> <!ELEMENT map:flow (map:script)> <!ATTLIST map:flow language CDATA #REQUIRED > <!ELEMENT map:script EMPTY> <!ATTLIST map:script src CDATA #REQUIRED > <!-- =============================================================== --> <!-- End of DTD --> <!-- =============================================================== --> 1.266 +7 -1 xml-cocoon2/changes.xml Index: changes.xml =================================================================== RCS file: /home/cvs/xml-cocoon2/changes.xml,v retrieving revision 1.265 retrieving revision 1.266 diff -u -r1.265 -r1.266 --- changes.xml 14 Oct 2002 14:31:27 -0000 1.265 +++ changes.xml 18 Oct 2002 08:56:12 -0000 1.266 @@ -40,6 +40,12 @@ </devs> <release version="@version@" date="@date@"> + <action dev="DC" type="update" due-to="Colin Paul Adams" due-to-email="[EMAIL PROTECTED]"> + Updated the draft DTD for sitemap. + </action> + <action dev="KP" type="add"> + Added a draft W3C XML Schema for sitemap. + </action> <action dev="NKB" type="update"> Removed deprecated notification classes in org.apache.cocoon.* and in org.apache.cocoon.sitemap.* and the deprecated methods in 1.44 +7 -2 xml-cocoon2/todo.xml Index: todo.xml =================================================================== RCS file: /home/cvs/xml-cocoon2/todo.xml,v retrieving revision 1.43 retrieving revision 1.44 diff -u -r1.43 -r1.44 --- todo.xml 27 Aug 2002 14:30:57 -0000 1.43 +++ todo.xml 18 Oct 2002 08:56:12 -0000 1.44 @@ -49,7 +49,12 @@ </action> <action context="code" assigned-to="open"> - For 2.1: Correct the sitemap DTD which is now broken and make sitemap validated. + For 2.1: Fine-tune the draft Sitemap DTD - + <code>src/webapp/WEB-INF/entities/sitemap-v03.dtd</code> + (see internal comments). Tweak the default sitemaps to ensure that they + validate. Fine-tune the draft Sitemap WXS too - + <code>src/documentation/xdocs/drafts/sitemap-2.1-draft.xsd</code> + (see internal comments). Anyone for Relax NG? </action> <action context="code" assigned-to="open">
---------------------------------------------------------------------- In case of troubles, e-mail: [EMAIL PROTECTED] To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]