Here's an updated version that works with 2.1-dev
I haven't checked with sub sitemaps and I need to add tag/attribute 
references to make it really useful.
Bert

At 11:42 31/05/2002 +0200, you wrote:
>Rogier Peters showed me the Sitemap DTD (Cocoon 
>root\documentation\resources\entities\sitemap-v02.dtd). That will do.
>
>Arjé
>
>-----Oorspronkelijk bericht-----
>Van: Arjé Cahn
>Verzonden: 30 May 2002 11:48
>Aan: [EMAIL PROTECTED]
>Onderwerp: Sitemap schema
>
>
>All,
>
>In response to Leona's question ("development tools that support Cocoon 
>2") I was wondering wheter there exists a schema for the Cocoon 2 sitemap. 
>Is anyone working on this?
>
>Regards,
>
>Arjé Cahn
>
>
>---------------------------------------------------------
>Content Management Department
>Hippo Webworks
>Grasweg 35
>1031 HW Amsterdam
>The Netherlands
>Tel  +31 (0)20 6345173
>Fax +31 (0)20 6345179
>arje(at)hippo(dot)nl / www.hippo.nl
>
>
>
>
>---------------------------------------------------------------------
>Please check that your question has not already been answered in the
>FAQ before posting. <http://xml.apache.org/cocoon/faqs.html>
>
>To unsubscribe, e-mail: <[EMAIL PROTECTED]>
>For additional commands, e-mail: <[EMAIL PROTECTED]>
>
>
>---------------------------------------------------------------------
>Please check that your question has not already been answered in the
>FAQ before posting. <http://xml.apache.org/cocoon/faqs.html>
>
>To unsubscribe, e-mail: <[EMAIL PROTECTED]>
>For additional commands, e-mail: <[EMAIL PROTECTED]>
<!-- ===================================================================

     Apache Cocoon Sitemap DTD (Version 0.2)

PURPOSE:
  INITIAL 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 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 required.
* Needed by XML editing tools for creation of reliable documents.
* Can generate XSD 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 not included in the examples?" and 
  "What in the example sitemap.xmap files is mandatory versus optional?"

AUTHORS:
  Jeffrey Ricker NG (Usonia Holdings) <[EMAIL PROTECTED]>
  David Crossley <[EMAIL PROTECTED]>

FIXME:
  - 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)
  - 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)
  20020426 V0.3 added logges attributes, added authentication, portlet and session 
action attributes and elements (BVK)

==================================================================== -->
<!ELEMENT map:sitemap (map:components, map:views?, map:resources?, map:action-sets?, 
map:pipelines)>
<!ATTLIST map:sitemap
  xmlns:map CDATA #FIXED "http://apache.org/cocoon/sitemap/1.0";
>
<!-- =============================================================== -->
<!-- Components -->
<!-- =============================================================== -->
<!ELEMENT map:components (map:generators, map:transformers, map:readers, 
map:serializers, map:matchers?, map:selectors?, map:actions?)>
<!-- 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 -->
<!-- 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
  logger CDATA #IMPLIED
  pool-max CDATA #IMPLIED
  pool-min CDATA #IMPLIED
  pool-grow 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 ANY>
<!-- 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 -->
<!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)>
<!ATTLIST map:transformer
  name CDATA #REQUIRED
  src CDATA #REQUIRED
  label CDATA #IMPLIED
  logger CDATA #IMPLIED
  pool-max CDATA #IMPLIED
  pool-min CDATA #IMPLIED
  pool-grow 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
  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? -->
<!ATTLIST map:serializer
  name CDATA #REQUIRED
  mime-type CDATA #REQUIRED
  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>
<!ELEMENT buffer-size (#PCDATA)>
<!ATTLIST parameter
  name CDATA #REQUIRED
  value CDATA #REQUIRED
  type CDATA #IMPLIED
>
<!-- Selectors ========================================= -->
<!ELEMENT map:selectors (map:selector*)>
<!ATTLIST map:selectors
  default CDATA #IMPLIED
>
<!ELEMENT map:selector (browser*)>
<!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
>
<!ELEMENT map:matcher (attribute-name | parameter-name | header-name)*>
<!ATTLIST map:matcher
  name CDATA #REQUIRED
  src CDATA #REQUIRED
  logger CDATA #IMPLIED
>
<!ELEMENT attribute-name (#PCDATA)>
<!ELEMENT parameter-name (#PCDATA)>
<!ELEMENT header-name (#PCDATA)>
<!-- Actions =========================================== -->
<!ELEMENT map:actions (map:action*)>
<!ATTLIST map:actions
  default CDATA #IMPLIED
>
<!ELEMENT map:action ANY>
<!ATTLIST map:action
  name CDATA #REQUIRED
  src CDATA #REQUIRED
  logger CDATA #IMPLIED
>
<!ELEMENT handlers (handler+)>
<!ELEMENT handler (redirect-to | authentication | load-users? | new-user? | 
change-user? | delete-user? | load-roles? | new-role? | delete-role? | applications?)*>
<!ATTLIST handler
  name CDATA #REQUIRED
  xmlns:map CDATA #REQUIRED
  xmlns:sunshine CDATA #REQUIRED
>
<!ELEMENT redirect-to EMPTY>
<!ATTLIST redirect-to
  uri CDATA #REQUIRED
>
<!ELEMENT new-user EMPTY>
<!ATTLIST new-user
  uri CDATA #REQUIRED
>
<!ELEMENT new-role EMPTY>
<!ATTLIST new-role
  uri CDATA #REQUIRED
>
<!ELEMENT load-users EMPTY>
<!ATTLIST load-users
  uri CDATA #REQUIRED
>
<!ELEMENT load-roles EMPTY>
<!ATTLIST load-roles
  uri CDATA #REQUIRED
>
<!ELEMENT delete-user EMPTY>
<!ATTLIST delete-user
  uri CDATA #REQUIRED
>
<!ELEMENT delete-role EMPTY>
<!ATTLIST delete-role
  uri CDATA #REQUIRED
>
<!ELEMENT applications (application)>
<!ELEMENT application (configuration?)>
<!ATTLIST application
  loadondemand CDATA #REQUIRED
  name CDATA #REQUIRED
>
<!ELEMENT configuration (auth-redirect, portal-uri, profile-cache, 
process-coplets-parallel, default-coplet-timeout, profile)>
<!ATTLIST configuration
  name CDATA #REQUIRED
>
<!ELEMENT profile-cache (#PCDATA)>
<!ELEMENT profile (layout-base, coplet-base, coplet-base-save, type-base, 
admin-type-base, global-delta-load, global-delta-save, role-delta-load, 
role-delta-save, user-delta-load, user-delta-save, user-status-load, user-status-save)>
<!ELEMENT user-delta-load EMPTY>
<!ATTLIST user-delta-load
  uri CDATA #REQUIRED
>
<!ELEMENT user-delta-save EMPTY>
<!ATTLIST user-delta-save
  uri CDATA #REQUIRED
>
<!ELEMENT user-status-load EMPTY>
<!ATTLIST user-status-load
  uri CDATA #REQUIRED
>
<!ELEMENT user-status-save EMPTY>
<!ATTLIST user-status-save
  uri CDATA #REQUIRED
>
<!ELEMENT type-base EMPTY>
<!ATTLIST type-base
  uri CDATA #REQUIRED
>
<!ELEMENT role-delta-save EMPTY>
<!ATTLIST role-delta-save
  uri CDATA #REQUIRED
>
<!ELEMENT role-delta-load EMPTY>
<!ATTLIST role-delta-load
  uri CDATA #REQUIRED
>
<!ELEMENT layout-base EMPTY>
<!ATTLIST layout-base
  uri CDATA #REQUIRED
>
<!ELEMENT global-delta-save EMPTY>
<!ATTLIST global-delta-save
  uri CDATA #REQUIRED
>
<!ELEMENT global-delta-load EMPTY>
<!ATTLIST global-delta-load
  uri CDATA #REQUIRED
>
<!ELEMENT coplet-base-save EMPTY>
<!ATTLIST coplet-base-save
  uri CDATA #REQUIRED
>
<!ELEMENT coplet-base EMPTY>
<!ATTLIST coplet-base
  uri CDATA #REQUIRED
>
<!ELEMENT admin-type-base EMPTY>
<!ATTLIST admin-type-base
  uri CDATA #REQUIRED
>
<!ELEMENT process-coplets-parallel (#PCDATA)>
<!ELEMENT portal-uri (#PCDATA)>
<!ELEMENT default-coplet-timeout (#PCDATA)>
<!ELEMENT auth-redirect (#PCDATA)>
<!ELEMENT authentication EMPTY>
<!ATTLIST authentication
  uri CDATA #REQUIRED
>
<!ELEMENT change-user EMPTY>
<!ATTLIST change-user
  uri CDATA #REQUIRED
>
<!-- =============================================================== -->
<!-- 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*)>
<!ATTLIST map:serialize
  type CDATA #IMPLIED
  mime-type CDATA #IMPLIED
  status-code CDATA #IMPLIED
>
<!-- =============================================================== -->
<!-- Resources -->
<!-- =============================================================== -->
<!ELEMENT map:resources (map:resource*)>
<!ELEMENT map:resource ((map:generate, 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 -->
<!-- =============================================================== -->
<!ELEMENT map:pipelines (map:pipeline*)>
<!ELEMENT map:pipeline (map:match*, map:handle-errors?)>
<!ATTLIST map:pipeline
  internal-only CDATA #IMPLIED
>
<!ELEMENT map:match (map:mount | map:redirect-to | map:call | map:generate | 
map:select | 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
>
<!-- 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*)>
<!ATTLIST map:call
  resource CDATA #REQUIRED
>
<!ELEMENT map:generate (map:parameter*)>
<!ATTLIST map:generate
  type CDATA #IMPLIED
  src CDATA #IMPLIED
  label CDATA #IMPLIED
>
<!ELEMENT map:select (map:when+, map:otherwise)>
<!ATTLIST map:select
  type CDATA #IMPLIED
>
<!ELEMENT map:when (map:transform)>
<!ATTLIST map:when
  test CDATA #REQUIRED
>
<!ELEMENT map:otherwise (map:transform)>
<!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 -->
<!ELEMENT map:read EMPTY>
<!ATTLIST map:read
  src CDATA #REQUIRED
  mime-type CDATA #REQUIRED
  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*)>
<!-- =============================================================== -->
<!-- End of DTD -->
<!-- =============================================================== -->

---------------------------------------------------------------------
Please check that your question has not already been answered in the
FAQ before posting. <http://xml.apache.org/cocoon/faqs.html>

To unsubscribe, e-mail: <[EMAIL PROTECTED]>
For additional commands, e-mail: <[EMAIL PROTECTED]>

Reply via email to