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]