Re: DAV Versioning DTD.

Dear Geoff,

Here is the new proposal for expand-properties.  It has the advantage over the
current version of not overloading the prop semantics.  Structure information
is conveyed via the prop-apply and multiprop tags in the request and response
respectively.  Note that they can only be used for properties that contain
hrefs.  These examples verify against my latest DTD which I will send after
this.  Note also that the example in version 12 and 12.1 of the specification
returned erroneous values for creator-displayname.  That is fixed below.

Sincerely,
James


DTD

<!ELEMENT expand-property (prop-apply*)>
<!ELEMENT DAV:prop-apply
 ((link |
   checked-in |
   checked-out |
   predecessor-set |
   precursor-set |
   predecessor-set |
   successor-set |
   checkout-set |
   precursor-set |
   version-set |
   root-version |
   version-history |
   workspace-checkout-set |
   workspace |
   merge-set |
   auto-merge-set |
   baseline-controlled-collection |
   subbaseline-set |
   baseline-collection |
   baseline-selector |
   baseline-controlled-collection-set |
   activity-version-set |
   activity-checkout-set |
   subactivity-set |
   current-workspace-set |
   activity-set |
   current-activity-set |
   eclipse-set |
   variant-set |
   default-variant),
  (prop | prop-apply)*)>

<!ELEMENT propstat ((prop | multiprop), status,
                    (responsedescription | error)?)>
<!ELEMENT multiprop
 ((link |
   checked-in |
   checked-out |
   predecessor-set |
   precursor-set |
   predecessor-set |
   successor-set |
   checkout-set |
   precursor-set |
   version-set |
   root-version |
   version-history |
   workspace-checkout-set |
   workspace |
   merge-set |
   auto-merge-set |
   baseline-controlled-collection |
   subbaseline-set |
   baseline-collection |
   baseline-selector |
   baseline-controlled-collection-set |
   activity-version-set |
   activity-checkout-set |
   subactivity-set |
   current-workspace-set |
   activity-set |
   current-activity-set |
   eclipse-set |
   variant-set |
   default-variant),
   (response*))>

REQUEST

REPORT /foo.html HTTP/1.1
HOST: www.webdav.org
Content-Type: text/xml; charset="utf-8"
Content-Lenght: ????

<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE expand-property
  SYSTEM "http://www.webdav.org/dtd/deltav-0.12.2.0.dtd">
<expand-property xmlns="DAV:">
 <prop-apply>
  <version-history/>
  <prop>
   <version-set/>
   <creator-displayname/>
   <activity-set/>
  </prop>
 </prop-apply>
</expand-property>

RESPONSE

HTTP/1.1 207 Mutli-Status
Content-Type: text/xml; charset="utf-8"
Content-Lenght: ????

<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE multistatus
  SYSTEM "http://www.webdav.org/dtd/deltav-0.12.2.0.dtd">
<multistatus xmlns="DAV:">
 <response>
  <href>http://www.webdav.org/foo.html</href>
  <propstat>
   <multiprop>
    <version-history/>
    <response>
     <href>http://repo.webdav.org/his/23</href>
     <propstat>
      <multiprop>
       <version-set/>
       <response>
        <href>http://repo.webdav.org/his/23/ver/1</href>
        <propstat>
         <prop>
          <creator-displayname><name>Fred</name></creator-displayname>
          <activity-set>
           <href>http://www.webdav.org/ws/dev/surely</href>
           <href>http://www.webdav.org/ws/dev/jest</href>
          </activity-set>
         </prop>
         <status>HTTP/1.1 200 OK</status>
        </propstat>
       </response>
       <response>
        <href>http://repo.webdav.org/his/23/ver/2</href>
        <propstat>
         <prop>
          <creator-displayname><name>Sally</name></creator-displayname>
          <activity-set>
           <href>http://repo.webdav.org/act/add-refresh-cmd</href>
          </activity-set>
         </prop>
         <status>HTTP/1.1 200 OK</status>
        </propstat>
       </response>
      </multiprop>
      <status>HTTP/1.1 200 OK</status>
     </propstat>
    </response>
   </multiprop>
   <status>HTTP/1.1 200 OK</status>
  </propstat>
 </response>
</multistatus>

Received on Monday, 5 February 2001 23:58:24 UTC