<?xml version="1.0"?>
<D:multistatus xmlns:D="DAV:" xmlns:jx="http://apache.org/cocoon/templates/jx/1.0"
  xmlns:collection="http://apache.org/cocoon/collection/1.0">
  <jx:set var="sourceURL" value="${usecase.getParameter('sourceURL')}"/>
  <jx:set var="dateFormat" value="${usecase.getParameter('dateFormat')}"/>
  <jx:set var="checkedOut" value="${usecase.getParameter('rc')}"/>
  <jx:forEach var="doc" items="${usecase.getParameter('documents')}"
    varStatus="status">
    <jx:if test="${doc.getId()}">
    <jx:set var="fileExtension" value="${doc.getSourceExtension()}"/>
    <jx:if test="${doc.getSourceExtension().equals('xml')}">
        <jx:set var="fileExtension" value="html"/>
    </jx:if>
      <D:response>
        <D:href>${request.getContextPath()}/${doc.getPublication().getId()}/webdav${doc.getPath()}_${doc.getLanguage()}.${fileExtension}</D:href>
        <D:propstat>
          <D:prop>
            <D:displayname>${doc.getName()}_${doc.getLanguage()}.${fileExtension}</D:displayname>
            <D:getlastmodified>${dateFormat.format(doc.getLastModified())}</D:getlastmodified>
            <D:creationdate/>
            <D:getcontenttype>application/xml</D:getcontenttype>
            <D:getcontentlength>${doc.getFile().length()}</D:getcontentlength>
            <D:resourcetype/>
            <D:lockdiscovery>
              <jx:if test="${checkedOut[status.index] != null}">
                <D:activelock>
                  <D:locktype><D:write/></D:locktype>
                  <D:lockscope><D:exclusive/></D:lockscope>
                  <D:depth>0</D:depth>
                  <D:owner><D:href>${checkedOut[status.index].getIdentity()}</D:href></D:owner>
                  <D:timeout>Infinite</D:timeout>
                  <D:locktoken>
                    <D:href>${usecase.getParameter('sourceURL')}</D:href>
                  </D:locktoken>
                </D:activelock>
              </jx:if>
            </D:lockdiscovery>
          </D:prop>
          <D:status>HTTP/1.1 200 OK</D:status>
        </D:propstat>
      </D:response>
    </jx:if>
  </jx:forEach>
</D:multistatus>