crossley    2002/10/23 18:21:10

  Modified:    src/webapp/WEB-INF/entities catalog
  Added:       src/webapp/WEB-INF/entities sitemap-v04.dtd
  Removed:     src/webapp/WEB-INF/entities sitemap-v02.dtd
  Log:
  Added the new version of DTD and put an old one in the attic.
  Submitted by: Colin Adams <[EMAIL PROTECTED]>
  PR: 13892
  
  Revision  Changes    Path
  1.3       +2 -2      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.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- catalog   18 Oct 2002 08:56:12 -0000      1.2
  +++ catalog   24 Oct 2002 01:21:10 -0000      1.3
  @@ -29,10 +29,10 @@
          "specification-v10.dtd"
   PUBLIC "-//APACHE//DTD Todo V1.0//EN"
          "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"
  +PUBLIC "-//APACHE//DTD Cocoon Sitemap V0.4//EN"
  +       "sitemap-v04.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-v04.dtd
  
  Index: sitemap-v04.dtd
  ===================================================================
  <!-- ===================================================================
  
       Apache Cocoon Sitemap DTD (Version 0.4)
  
  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)
  20021019 V0.3 Further changes made to cope with all current sitemaps (CPA)
  20021021 V0.4 General simplification by adding parameter entities (CPA)
  ==================================================================== -->
  
  
  <!-- =============================================================== -->
  <!-- Common Attributes -->
  <!-- =============================================================== -->
  
  
  <!-- CPA: univeral attributes possessed by all elements -->
  <!-- CPA: added id for use by sitebuilder, but really it ought to be -->
  <!--      of type ID -->
  
  <!ENTITY % universal.attr 
             "id CDATA #IMPLIED" 
  > 
  
  <!-- CPA: the default attribute is common, and where it occurs is nearly always the 
same -->
  <!ENTITY % default.attr "default CDATA #IMPLIED" >
  
  <!-- CPA: the name and src attributes are common, and where they occur
            are always CDATA, but sometimes optional -->
  <!ENTITY % src.attr "src CDATA #REQUIRED" >
  <!ENTITY % optsrc.attr "src CDATA #IMPLIED" >
  <!ENTITY % name.attr "name CDATA #REQUIRED" >
  <!ENTITY % optname.attr "name CDATA #IMPLIED" >
  
  
  <!-- CPA: the uri attribute is common, and where it occurs is always 
            CDATA, but sometimes it is optional -->
  <!ENTITY % uri.attr "uri CDATA #REQUIRED" >
  <!ENTITY % opturi.attr "uri CDATA #IMPLIED" >
  
  <!-- CPA: pool attributes from Excalibur's PoolableComponentHandler -->
  <!--      although defined necessarily as CDATA, they are in fact got -->
  <!--      as integers, and should be so-defined in a schema -->
  <!--      Defaults are set in cocoon.xconf -->
  <!ENTITY % pool.attr 
         "pool-max CDATA #IMPLIED
          pool-min CDATA #IMPLIED
          pool-grow CDATA #IMPLIED" >
  
  <!-- CPA: logger attribute - default is set in cocoon.xconf -->
  <!ENTITY % logger.attr "logger CDATA #IMPLIED" >
  
  <!-- CPA: these three only occur together  -->
  <!-- they are used in AggregateNodeBuilder -->
  <!ENTITY % aggregate.attr
         "element CDATA #IMPLIED
          ns CDATA #IMPLIED
          prefix CDATA #IMPLIED" >
  
  <!-- CPA: attributes that occur more than once, and are always defined -->
  <!--      in the same way -->
  <!ENTITY % value.attr "value CDATA #REQUIRED" >
  <!ENTITY % mime.attr "mime-type CDATA #IMPLIED" >
  <!ENTITY % label.attr "label CDATA #IMPLIED" >
  
  <!ENTITY % type.attr "type CDATA #IMPLIED" >
  
  <!-- CPA: resource is used both in CallNodeBuilder and -->
  <!--      RedirectToNodeBuilder. It has no default -->
  <!ENTITY % resource.attr "resource CDATA #IMPLIED" >
  
  
  <!ENTITY % component.attr "
        %label.attr;
        %logger.attr;
          %pool.attr;
  ">
  
  <!-- CPA: now for element contents -->
  
  <!ENTITY % pipe.contents
     
"(map:parameter|map:act|map:match|map:select|map:call|map:redirect-to|map:read|map:aggregate|map:generate|map:transform|map:serialize|map:mount)*">
  
  <!-- CPA: contents confirmed by inspection of TraxTransformer.java -->
  <!ENTITY % traxTransformer.contents
   "use-request-parameters | use-cookies | use-browser-capabilities-db |
    use-session-info | transformerFactory | use-deli"
  >
  <!-- CPA: contents confirmed by inspection of I18nTransformer.java -->
  <!ENTITY % i18nTransformer.contents
   "catalogue-name | catalogue-location | untranslated-text | cache-at-startup"
  >
  <!-- CPA: contents confirmed by inspection of XSLTProcessorImpl.java -->
  <!--      N.B. these appear in the source as if they were parameter -->
  <!--      tags, so I'm not sure if this is perfectly correct. Also -->
  <!--      transformer-factory also appears in TraxTransformer -->
  <!ENTITY % xsltTransformer.contents
   "use-store | transformer-factory | incremental-processing"
  >
  <!-- CPA: contents confirmed by inspection of EncodeURLTransformer.java -->
  <!ENTITY % encodeURLTransformer.contents
   "include-name | exclude-name"
  >
  
  <!-- CPA: contents confirmed by inspection of AbstractTextSerializer.java -->
  <!ENTITY % textSerializer.contents
   "cdata-section-elements|doctype-public|doctype-system|encoding|
    indent|media-type|method|omit-xml-declaration|standalone|version"
  >
  
  <!ENTITY % selector.contents
   "unknown-tag | browser | host | cookie-name | attribute-name |
    parameter-name | header-name" 
  >
  <!-- =============================================================== -->
  <!-- Sitemap -->
  <!-- =============================================================== -->
  
  <!-- 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
          %universal.attr;
          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  -->
  <!-- CPA: Notes on ComponentSelector.java:
            The order of names is not quite the same as here (not
            significant). Flow-Interpreters are not mentioned -->
  <!-- CPA: These should be one or zero, in no particular order, -->
  <!--      but this is impossible to specify in XML DTD -->
  <!ELEMENT map:components (map:generators? | map:transformers? | map:readers? |
                            map:serializers? | map:matchers? | map:selectors? |
                            map:actions? | map:flow-interpreters? |
                            map:pipelines?)*>
  <!ATTLIST map:components
          %universal.attr;
  >
  <!-- RNG: must they appear in this order? 
            CPA: only for the purpose of the DTD - to enforce zero or one
            must they all appear, even if they are empty? - CPA: no -->
  <!-- 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
          %universal.attr;
          %default.attr;
  >
  <!ELEMENT map:generator EMPTY>
  <!ATTLIST map:generator
          %universal.attr;
          %name.attr;
          %src.attr;
          %component.attr;
  >
  
  <!-- RNG: with all attributes, which are required and which are implied? -->
  
    <!-- Transformers ====================================== -->
  <!ELEMENT map:transformers (map:transformer*)>
  <!ATTLIST map:transformers
          %universal.attr;
          %default.attr;
  >
  
  <!-- CPA: again, these should be one or zero, in no particular order, -->
  <!--      but this is impossible to specify in XML DTD -->
  <!--      Some transformers have children, others take parameter -->
  <!--      children on the map:transform element -->
  <!--      SourceWritingTransformer.java appears to look for a -->
  <!--      serializer child, but there are no examples so I have -->
  <!--      omitted it for now. mapping comes from castor -->
  <!ELEMENT map:transformer  (%traxTransformer.contents; | %i18nTransformer.contents;
                              | %xsltTransformer.contents;
                              | %encodeURLTransformer.contents; | mapping )* >
  <!-- 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 -->
  <!-- CPA: added mapping -->
  <!ATTLIST map:transformer
          %universal.attr;
          %name.attr;
          %src.attr;
          %mime.attr;
          %component.attr;
  >
  
  <!ELEMENT use-store (#PCDATA)>
  <!ATTLIST use-store
          %universal.attr;
  >
  <!ELEMENT use-request-parameters (#PCDATA)>
  <!ATTLIST use-request-parameters
          %universal.attr;
  >
  <!ELEMENT use-browser-capabilities-db (#PCDATA)>
  <!ATTLIST use-browser-capabilities-db
          %universal.attr;
  >
  <!ELEMENT catalogue-name (#PCDATA)>
  <!ATTLIST catalogue-name
          %universal.attr;
  >
  <!ELEMENT catalogue-location (#PCDATA)>
  <!ATTLIST catalogue-location
          %universal.attr;
  >
  <!ELEMENT use-deli (#PCDATA)>
  <!ATTLIST use-deli
          %universal.attr;
  >
  <!ELEMENT cache-at-startup (#PCDATA)>
  <!ATTLIST cache-at-startup
          %universal.attr;
  >
  <!ELEMENT mapping (#PCDATA)>
  <!-- CPA: add mime-type -->
  
    <!-- Readers =========================================== -->
  <!ELEMENT map:readers (map:reader*)>
  <!ATTLIST map:readers
          %universal.attr;
          %default.attr;
  >
  <!ELEMENT map:reader EMPTY>
  <!-- RNG: does reader ever have children? Its peers do. -->
  <!ATTLIST map:reader
          %universal.attr;
          %name.attr;
          %src.attr;
          %component.attr;
  >
  
    <!-- Serializers ======================================= -->
  <!ELEMENT map:serializers (map:serializer*)>
  <!ATTLIST map:serializers
          %universal.attr;
          %default.attr;
  >
  <!-- CPA: parameter is used by HSSFSerializer -->
  <!-- CPA: set-content-length is used by iTextSerializer -->
  <!ELEMENT map:serializer ( %textSerializer.contents; | parameter |
   set-content-length | buffer-size )*>
  <!-- RNG: are these the only children of serializer? -->
  <!-- CPA: No. Added buffer-size for slide and others - don't know -->
  <!--      where it comes from in the source -->
  
  <!-- CPA: mime-type changed from #REQUIRED to #IMPLIED, because of LinkSerializer -->
  <!-- CPA: added pool-grow -->
  <!ATTLIST map:serializer
          %universal.attr;
          %name.attr;
          %mime.attr;
          %src.attr;
          %component.attr;
  >
  <!ELEMENT doctype-public (#PCDATA)>
  <!ATTLIST doctype-public
          %universal.attr;
  >
  <!ELEMENT doctype-system (#PCDATA)>
  <!ATTLIST doctype-system
          %universal.attr;
  >
  <!ELEMENT encoding (#PCDATA)>
  <!ATTLIST encoding
          %universal.attr;
  >
  <!ELEMENT omit-xml-declaration (#PCDATA)>
  <!ATTLIST omit-xml-declaration
          %universal.attr;
  >
  <!ELEMENT parameter EMPTY>
  <!ATTLIST parameter
          %universal.attr;
          %name.attr;
          %value.attr;
          %type.attr;
  >
  <!ELEMENT map:parameter EMPTY>
  <!ATTLIST map:parameter
          %universal.attr;
          %name.attr;
          %value.attr;
  >
  <!ELEMENT buffer-size (#PCDATA)>
  <!ATTLIST buffer-size
          %universal.attr;
  >
    <!-- Selectors ========================================= -->
  <!ELEMENT map:selectors (map:selector*)>
  <!ATTLIST map:selectors
          %universal.attr;
          %default.attr;
  >
  <!-- CPA: selector can truly take any children, but all such children -->
  <!--      must be named for validation purposes, so -->
   
  <!ELEMENT map:selector ( %selector.contents; )* >
  <!-- CPA: added logger -->
  <!ATTLIST map:selector
          %universal.attr;
          %name.attr;
          %src.attr;
          %component.attr;
  >
  
  <!-- CPA: elements currently used by map:selector s -->
  <!ELEMENT browser EMPTY>
  <!ATTLIST browser
          %universal.attr;
          %name.attr;
          useragent CDATA #REQUIRED
  >
  <!ELEMENT host EMPTY>
  <!ATTLIST host
          %universal.attr;
          %name.attr;
          %value.attr;
  >
  <!ELEMENT cookie-name EMPTY>
  <!-- CPA: purely for lint - that's why it doesn't even have universal attributes -->
  <!ELEMENT unknown-tag EMPTY>
  
    <!-- Matchers ========================================== -->
  <!ELEMENT map:matchers (map:matcher*)>
  <!ATTLIST map:matchers
          %universal.attr;
          %default.attr;
  >
  <!-- CPA: added element input-module -->
  <!ELEMENT map:matcher (attribute-name|parameter-name|header-name|input-module)*>
  <!-- CPA: added logger -->
  <!ATTLIST map:matcher
          %universal.attr;
          %name.attr;
          %src.attr;
          %component.attr;
  >
  <!ELEMENT attribute-name (#PCDATA)>
  <!ATTLIST attribute-name
          %universal.attr;
  >
  <!ELEMENT parameter-name (#PCDATA)>
  <!ATTLIST parameter-name
          %universal.attr;
  >
  <!ELEMENT header-name (#PCDATA)>
  <!ATTLIST header-name
          %universal.attr;
  >
  <!ELEMENT input-module (#PCDATA)>
  <!ATTLIST input-module
          %universal.attr;
          %name.attr;
  >
    <!-- Actions =========================================== -->
  <!ELEMENT map:actions (map:action*)>
  <!ATTLIST map:actions
          %universal.attr;
          %default.attr;
  >
  <!-- 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
          %universal.attr;
          %name.attr;
          %src.attr;
          %component.attr;
  >
  
  <!ELEMENT create-session (#PCDATA)>
  <!ATTLIST create-session
          %universal.attr;
  >
  <!ELEMENT store-in-session (#PCDATA)>
  <!ATTLIST store-in-session
          %universal.attr;
  >
  <!ELEMENT store-in-request (#PCDATA)>
  <!ATTLIST store-in-request
          %universal.attr;
  >
  <!ELEMENT store-in-cookie (#PCDATA)>
  <!ATTLIST store-in-cookie
          %universal.attr;
  >
  <!ELEMENT locale-attribute (#PCDATA)>
  <!ATTLIST locale-attribute
          %universal.attr;
  >
  <!ELEMENT language-attribute (#PCDATA)>
  <!ATTLIST language-attribute
          %universal.attr;
  >
  <!ELEMENT country-attribute (#PCDATA)>
  <!ATTLIST country-attribute
          %universal.attr;
  >
  <!ELEMENT variant-attribute (#PCDATA)>
  <!ATTLIST variant-attribute
          %universal.attr;
  >
  <!ELEMENT descriptor (#PCDATA)>
  <!ATTLIST descriptor
          %universal.attr;
  >
  <!ELEMENT throw-exception (#PCDATA)>
  <!ATTLIST throe-exception
          %universal.attr;
  >
  <!ELEMENT output (#PCDATA)>
  <!ATTLIST output
          %universal.attr;
  >
  
  <!-- =============================================================== -->
  <!-- Views -->
  <!-- =============================================================== -->
  
  <!ELEMENT map:views (map:view*)>
  <!ATTLIST map:views
          %universal.attr;
  >
  <!-- CPA: added, match,act,serialize option -->
  <!ELEMENT map:view %pipe.contents; >
  <!ATTLIST map:view
          %universal.attr;
          %name.attr;
          from-label CDATA #IMPLIED
          from-position (first|last) "last"
  >
  <!-- CPA: added encoding -->
  <!ELEMENT map:serialize (map:parameter*,encoding?)>
  <!-- CPA: type changed from #REQUIRED -->
  <!ATTLIST map:serialize
          %universal.attr;
          %type.attr;
          %mime.attr;
          status-code CDATA #IMPLIED
          %optsrc.attr;
  >
  
  <!-- =============================================================== -->
  <!-- Resources -->
  <!-- =============================================================== -->
  
  <!ELEMENT map:resources (map:resource*)>
  <!ATTLIST map:resources
          %universal.attr;
  >
  
  <!ELEMENT map:resource %pipe.contents; >
  <!ATTLIST map:resource
          %universal.attr;
          %name.attr;
  >
  <!-- generate and transform defined in PIPELINE section -->
  
  <!-- =============================================================== -->
  <!-- Action Sets -->
  <!-- =============================================================== -->
  
  <!ELEMENT map:action-sets (map:action-set*)>
  <!ATTLIST map:action-sets
          %universal.attr;
  >
  <!ELEMENT map:action-set (map:act+)>
  <!ATTLIST map:action-set
          %universal.attr;
          %name.attr;
  >
  <!-- CPA: added map:read,map:mount,map:aggregate and map:select -->
  <!ELEMENT map:act %pipe.contents; >
  <!ATTLIST map:act
          %universal.attr;
          %type.attr;
          action CDATA #IMPLIED
          set CDATA #IMPLIED
          %optsrc.attr;
  >
  
  <!-- =============================================================== -->
  <!-- Pipelines -->
  <!-- =============================================================== -->
  
  <!-- CPA: added default attribute and component-configurations -->
  <!ELEMENT map:pipelines (map:component-configurations?,map:pipeline*)>
  <!ATTLIST map:pipelines
          %universal.attr;
          %default.attr;
  >
  <!-- CPA: added id, type, internal-only, name and src attributes, and 
            autoCachingPoint and map:act elements.
            added select, generate/transform/serialize for lint -->
  <!ELEMENT map:pipeline (%pipe.contents;, map:handle-errors*,autoCachingPoint?)?>
  <!-- CPA: pool* and logger attributes added -->
  <!ATTLIST map:pipeline
          %universal.attr;
          internal-only CDATA #IMPLIED
          %optname.attr;
          %optsrc.attr;
          %type.attr;
          %component.attr;
  >
  
  <!ELEMENT map:match %pipe.contents; >
  <!-- 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
          %universal.attr;
          %type.attr;
          pattern CDATA #REQUIRED
  >
  <!-- CPA guessing at semantics of select/when/otherwise -->
  <!ELEMENT map:select (map:when*,map:otherwise?)>
  <!ATTLIST map:select
          %universal.attr;
          %type.attr;
  >
  <!ELEMENT map:when %pipe.contents; >
  <!ATTLIST map:when
          %universal.attr;
          test CDATA #REQUIRED
  >
  <!ELEMENT map:otherwise %pipe.contents; >
  <!ATTLIST map:otherwise
          %universal.attr;
  >
  
  <!ELEMENT autoCachingPoint (#PCDATA)>
  <!ATTLIST autoCachingPoint
          %universal.attr;
  >
  
  <!-- map:act is already defined in the Action Sets section -->
  
  <!ELEMENT map:mount EMPTY>
  <!ATTLIST map:mount
          %universal.attr;
          uri-prefix CDATA #REQUIRED
          %src.attr;
          reload-method (synchron|asynchron) "asynchron"
          check-reload (true|false|yes|no) "no"
  >
  
  <!ELEMENT map:redirect-to EMPTY>
  <!-- CH: redirects to resources are now deprecated -->
  <!-- CPA: attributes confirmed by inspection of RedirectToNodeBuilder -->
  <!ATTLIST map:redirect-to
          %universal.attr;
          %opturi.attr;
          %resource.attr;
          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
          %universal.attr;
          %resource.attr;
          function CDATA #IMPLIED
          continuation CDATA #IMPLIED
  >
  
  <!ELEMENT map:generate (map:parameter*)>
  <!ATTLIST map:generate
          %universal.attr;
          %type.attr;
          %optsrc.attr;
          %label.attr;
  >
  
  
  <!ELEMENT map:transform (map:parameter*)>
  <!ATTLIST map:transform
          %universal.attr;
          %type.attr;
          %optsrc.attr;
          %label.attr;
  >
  
  <!-- 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 (??!) -->
  <!-- CPA: src changed from #REQUIRED for soap-rpc -->
  <!ATTLIST map:read
          %universal.attr;
          %optsrc.attr;
          %mime.attr;
          %type.attr;
  >
  
  <!ELEMENT map:aggregate (map:part*)>
  <!ATTLIST map:aggregate
          %universal.attr;
          %aggregate.attr;
          %label.attr;
  >
  <!ELEMENT map:part EMPTY>
  <!ATTLIST map:part
          %universal.attr;
          %optsrc.attr;
          %label.attr;
          %aggregate.attr;
          strip-root CDATA #IMPLIED
  >
  
  <!ELEMENT map:handle-errors %pipe.contents; >
  <!-- CPA: added type -->
  <!ATTLIST map:handle-errors
          %universal.attr;
          %type.attr;
  >
  
  <!-- CPA: not sure what this really ought to be  -->
  <!-- CPA: added authentication manager -->
  <!ELEMENT map:component-configurations
  (global-variables?,authentication-manager?)>
  <!ATTLIST map:component-configurations
          %universal.attr;
  >
  <!ELEMENT global-variables (#PCDATA)> 
  <!-- CPA: ??? 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??? -->
  <!ATTLIST global-variables
          %universal.attr;
  >
  
  <!-- CPA: defined to match slide and portal-fw sitemaps - N.B. great namespace 
confusions -->
  <!ELEMENT authentication-manager (handlers)>
  <!ATTLIST authentication-manager
          %universal.attr;
  >
  <!ELEMENT handlers (handler)+>
  <!ELEMENT handler (redirect-to,authentication,applications?)>
  <!ATTLIST handler
          %universal.attr;
          %name.attr;
          xmlns:map CDATA #FIXED "http://apache.org/cocoon/sitemap/1.0"; 
  >
  <!ELEMENT redirect-to EMPTY>
  <!ATTLIST redirect-to
          %universal.attr;
          %uri.attr;
  >        
  <!ELEMENT authentication EMPTY>
  <!ATTLIST authentication
          %universal.attr;
          %uri.attr;
  >        
  <!ELEMENT applications (application+)>
  <!ATTLIST applications
          %universal.attr;
  >
  <!ELEMENT application (configuration+)>
  <!ATTLIST application
          %universal.attr;
          loadondemand CDATA #REQUIRED
          %name.attr;
  >
  <!ELEMENT configuration  (auth-redirect|portal-uri|profile-cache|
                            default-coplet-timeout|profile|
                            load-users|load-roles|new-user|new-role|
                            change-user|delete-role|delete-user|
                            process-coplets-parallel)*>
  <!ATTLIST configuration
          %universal.attr;
          %name.attr;
  >
  <!ELEMENT auth-redirect (#PCDATA)>
  <!ATTLIST auth-redirect
          %universal.attr;
  >
  <!ELEMENT portal-uri (#PCDATA)>
  <!ATTLIST portal-uri
          %universal.attr;
  >
  <!ELEMENT profile-cache (#PCDATA)>
  <!ATTLIST profile-cache
          %universal.attr;
  >
  <!ELEMENT default-coplet-timeout (#PCDATA)>
  <!ATTLIST default-coplet-timeout
          %universal.attr;
  >
  <!ELEMENT process-coplets-parallel (#PCDATA)>
  <!ATTLIST process-coplets-parallel
          %universal.attr;
  >
  <!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)>
  <!ATTLIST profile
          %universal.attr;
  >
  <!ELEMENT layout-base EMPTY>
  <!ATTLIST layout-base
          %universal.attr;
          %uri.attr;>
  <!ELEMENT coplet-base EMPTY>
  <!ATTLIST coplet-base
          %universal.attr;
          %uri.attr;>
  <!ELEMENT coplet-base-save EMPTY>
  <!ATTLIST coplet-base-save
          %universal.attr;
          %uri.attr;>
  <!ELEMENT type-base EMPTY>
  <!ATTLIST type-base
          %universal.attr;
          %uri.attr;>
  <!ELEMENT admin-type-base EMPTY>
  <!ATTLIST admin-type-base
          %universal.attr;
          %uri.attr;>
  <!ELEMENT global-delta-load EMPTY>
  <!ATTLIST global-delta-load
          %universal.attr;
          %uri.attr;>
  <!ELEMENT global-delta-save EMPTY>
  <!ATTLIST global-delta-save
          %universal.attr;
          %uri.attr;>
  <!ELEMENT role-delta-load EMPTY>
  <!ATTLIST role-delta-load
          %universal.attr;
          %uri.attr;>
  <!ELEMENT role-delta-save EMPTY>
  <!ATTLIST role-delta-save
          %universal.attr;
          %uri.attr;>
  <!ELEMENT user-delta-load EMPTY>
  <!ATTLIST user-delta-load
          %universal.attr;
          %uri.attr;>
  <!ELEMENT user-delta-save EMPTY>
  <!ATTLIST user-delta-save
          %universal.attr;
          %uri.attr;>
  <!ELEMENT user-status-load EMPTY>
  <!ATTLIST user-status-load
          %universal.attr;
          %uri.attr;>
  <!ELEMENT user-status-save EMPTY>
  <!ATTLIST user-status-save
          %universal.attr;
          %uri.attr;>
  <!ELEMENT load-users EMPTY>
  <!ATTLIST load-users
          %universal.attr;
          %uri.attr;>
  <!ELEMENT load-roles EMPTY>
  <!ATTLIST load-roles
          %universal.attr;
          %uri.attr;>
  <!ELEMENT new-user EMPTY>
  <!ATTLIST new-user
          %universal.attr;
          %uri.attr;>
  <!ELEMENT new-role EMPTY>
  <!ATTLIST new-role
          %universal.attr;
          %uri.attr;>
  <!ELEMENT change-user EMPTY>
  <!ATTLIST change-user
          %universal.attr;
          %uri.attr;>
  <!ELEMENT delete-user EMPTY>
  <!ATTLIST delete-user
          %universal.attr;
          %uri.attr;>
  <!ELEMENT delete-role EMPTY>
  <!ATTLIST delete-role
          %universal.attr;
          %uri.attr;>
  
  <!ELEMENT map:flow-interpreters EMPTY>
  <!-- CPA: obviously it should NOT be empty for non-default usage, so this -->
  <!--      needs correcting -->
  <!ATTLIST map:flow-interpreters
          %universal.attr;
          default CDATA #REQUIRED
  >
  
  <!-- CPA: don't really know what this should be -->
  <!ELEMENT map:flow (map:script)>
  <!ATTLIST map:flow
          %universal.attr;
          language CDATA #REQUIRED
  >
  
  <!ELEMENT map:script EMPTY>
  <!ATTLIST map:script
          %universal.attr;
          %src.attr;
  >
  
  
  <!-- =============================================================== -->
  <!-- End of DTD -->
  <!-- =============================================================== -->
  
  
  

----------------------------------------------------------------------
In case of troubles, e-mail:     [EMAIL PROTECTED]
To unsubscribe, e-mail:          [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to