123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341 |
- <!-- ===================================================================
-
- 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 <Bruno.Dumon@the-ecorp.com> ... 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) <rickerng@usonia.net>
- David Crossley <crossley@indexgeo.com.au>
-
- 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)
-
- ==================================================================== -->
-
- <!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:selectors?, map:matchers?,
- 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
- 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)>
- <!ATTLIST map:transformer
- name CDATA #REQUIRED
- src CDATA #REQUIRED
- label 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
- >
-
- <!-- Serializers ======================================= -->
- <!ELEMENT map:serializers (map:serializer*)>
- <!ATTLIST map:serializers
- default CDATA #IMPLIED
- >
- <!ELEMENT map:serializer (doctype-public|doctype-system|encoding|
- omit-xml-declaration|parameter)*>
- <!-- 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
- >
- <!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
- >
-
- <!-- 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
- >
- <!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
- >
- <!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 EMPTY>
- <!ATTLIST map:action
- name CDATA #REQUIRED
- src 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 #REQUIRED
- 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?)>
-
- <!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
- >
-
- <!-- 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: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 -->
- <!-- =============================================================== -->
|