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]

Reply via email to