<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY RFC2119 PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml'>
<!ENTITY RFC2518 PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.2518.xml'>
<!ENTITY RFC3253 PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.3253.xml'>
<!ENTITY RFC3339 PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.3339.xml'>
<!ENTITY RFC3744 PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.3744.xml'>
<!ENTITY RFC4918 PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.4918.xml'>
<!ENTITY RFC4331 PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.4331.xml'>
<!ENTITY RFC5689 PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.5689.xml'>
<!ENTITY RFC5995 PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.5995.xml'>
<!ENTITY RFC6578 PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.6578.xml'>
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt"?>
<?rfc rfcedstyle="yes" ?>
<?rfc toc="yes"?>
<?rfc tocdepth="6"?><!-- default = 3 -->
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>

<!-- <?rfc strict="yes"?> -->
<!-- <?rfc comments="yes"?> -->
<!-- <?rfc inline="yes"?> -->

<rfc category="std" ipr='trust200902' docName='draft-douglass-server-info-00'>
  <front>
    <title abbrev="Dav Server Information Object">DAV Server Information Object</title>
    <author initials="M." surname="Douglass" fullname="Michael Douglass">
      <organization abbrev="Spherical Cow Group">Spherical Cow Group</organization>
      <address>
        <postal>
          <street>226 3rd Street</street>
          <city>Troy</city>
          <region>NY</region>
          <code>12180</code>
          <country>USA</country>
        </postal>
        <email>mdouglass@sphericalcowgroup.com</email>
        <uri>http://sphericalcowgroup.com</uri>
      </address>
    </author>

    <date month='May' year='2015' />
    <area>
      Applications
    </area>

    <abstract>
      <t>
        This specification describes a new XML object that can be
        retrieved from hosts to discover services, features and
        limits for that host or domain.
      </t>
    </abstract>
  </front>

  <middle>
    <section title='Introduction'>
      <t>
        Any given host on a network may support a number of services.
        Each of those services will have limits or optional features.
        The advertising and discovery of services, features and limits
        is often through the use of
        properties and headers. As the number of services and features grows the
        amount of data and complexity of the requests grows.
      </t>

      <t>
        Additionally, headers and properties don't allow for caching mechanisms
        based on etags. A client has to fetch all the information and compare
        with its stored copies to determine if a service change has taken place.
      </t>

      <t>
        This specification defines a new XML document type which can be retrieved
        from a host and is easily extended to allow the description
        of complex services.
        The schema as described here only handles basic DAV services.
        Other specifications will extend this specification
        to define elements for other DAV based services.
      </t>
    </section>

    <section title='Conventions Used in This Document'>
      <t>
        The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
        "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
        document are to be interpreted as described in <xref target="RFC2119" />.
      </t>
      <section title='Service' anchor="definition_service">
        <t>
          By service we mean an application running on one or more hosts at the
          network application layer and above. The service may provide
          data storage, manipulation, presentation, communication or
          other capabilities. The service may use a well defined protocol
          and is often implemented with a client-server relationship.
        </t>

        <t>
          A service will usually implement one or more features which may be
          defined by standard specifications. Services and features
          may also be constrained by various limits.
        </t>

        <t>
          Examples of services are
          <list style="symbols">
            <t>
              caldav
            </t>
            <t>
              email
            </t>
            <t>
              File servers
            </t>
          </list>
        </t>
      </section>

      <section title='Feature' anchor="definition_feature">
        <t>
          A feature is some functionality provided by a service. For
          example, a DAV based service may provide the versioning feature.
        </t>

        <t>
          Services need not support all features that are defined as
          an optional part of that service. Some features may depend
          on the authenticated state and/or the authorization of the
          authenticated principal.
        </t>

        <t>
          Examples of features are
          <list style="symbols">
            <t>
              DAV versioning.
            </t>
            <t>
              DAV access control.
            </t>
            <t>
              CalDAV scheduling.
            </t>
          </list>
        </t>
      </section>

      <!--
      <section title='Property' anchor="definition_property">
        <t>
          A property defines some aspect of a service or feature. From
          the perspective of the client all properties may be regarded
          as limitations on or information about the service.
        </t>

        <t>
          Properties flagged with "global=true" apply for all indicated
          services at ay point within that service. If not do flagged
          the value of that property may vary depending on the context
          and location.
        </t>

        <t>
          Therefore, a given property value does not guarantee that the limit or
          capability will be present in all contexts. For example, in the
          case of file size limits, it may be the largest possible file
          that can be stored somewhere on the service. Some resource
          locations may have a lower limit.
        </t>

        <t>
          Where possible, properties SHOULD be named using the standard
          property names in related specifications. For example, DAV related
          properties SHOULD use the names defined in the associated
          WebDAV specification.
        </t>

        <t>
          Examples of properties are
          <list style="symbols">
            <t>
              DAV supported locks.
            </t>
            <t>
              File size limits.
            </t>
            <t>
              CalDAV attachment size limits.
            </t>
            <t>
              CalDAV scheduling attendee limits.
            </t>
          </list>
        </t>
      </section>
      -->
    </section>

    <section title='Server Information Document Use'
             anchor="server_info_use">
      <t>
        A host will make the document available through one or more
        methods. Depending upon the endpoint and method of retrieval
        the retrieved document may describe one or more services.
      </t>

      <t>
        If a document provides information for more than one service it
        SHOULD contain information allowing clients to obtain information
        about each individual service only. This allows a client to
        determine what the actual limits and features are for the
        specific service.
      </t>

      <section title='Server Information Location and Retrieval'
               anchor="server_info_location_and_retrieval">
        <section title="DAV:server-info-href property"
                 anchor="server-info-href_property" >
          <t>
            <list style="hanging">
              <t hangText="Name:">
                server-info-href
              </t>
              <t hangText="Namespace:">
                DAV
              </t>
              <t hangText="Purpose:">
                To define the location of the server-info document.
              </t>
              <t hangText="Protected:">
                This property MAY be protected.
              </t>
              <t hangText="PROPFIND behavior:">
                This property SHOULD NOT be returned by a
                PROPFIND DAV:allprop request (as defined in Section 14.2 of
                <xref target="RFC4918" />).
              </t>
              <t hangText="COPY/MOVE behavior:">
                This property value SHOULD be preserved in COPY
                and MOVE operations.
              </t>
              <t hangText="Description:">
                This property is needed for a client to determine where
                the server information document is located. If not present,
                then no document is available for the server.
              </t>
              <t hangText="Definition:">
                <figure>
                  <artwork><![CDATA[
    <!ELEMENT server-info-href (DAV:href)>
            ]]></artwork>
                </figure>
              </t>
            </list>
          </t>
        </section>

        <section title='Server Information Retrieval'
                 anchor="server_info_retrieval">
          <t>
            The document may be retrieved from the server by doing a
            PROPFIND on the .well_known (or any location on the service)
            for the D:server-info-href property defined above.
          </t>

          <t>
            Clients SHOULD retrieve the document in the context of a
            session and services SHOULD ensure the context is appropriate.
            Values in the returned document may differ depending on who
            is authenticated so a server SHOULD require authentication
            before returning server information for an authenticated service.
          </t>
        </section>

        <section title='Server Information Synchronization'
                 anchor="server_info_synch">
          <t>
            While server features may not change frequently it may be
            important for clients to react rapidly when server features
            or limits change. Polling for changes is undesirable so this
            specification allows for informing clients when the server
            information has changed.
          </t>

          <t>
            The returned server-info document contains an opaque token which
            the client can use to determine if the server copy is different.
            This token is used in a number of places to aid client
            synchronization.
          </t>

          <section title='Header: server-info-token'
                   anchor="server_info_token-header">
            <t>
              The server-info-token header takes as a value the current
              value of the token element in the server-info document.
            </t>

            <t>
              This header may be returned with a response at any time
              a server feels appropriate. It MAY be returned in response
              to a request containing an if-not-server-info-token header.
            </t>

            <t>
              The server-info-token header MUST be returned for an OPTIONS
              request. It SHOULD be returned if a client attempts to
              use an unsupported feature or misuse a feature or exceed
              a limit.
            </t>
          </section>

          <section title='Header: if-not-server-info-token'
                   anchor="if-not-server-info-token-header">
            <t>
              The if-not-server-info-token header takes as a value the
              current token stored by the client. If that value matches
              the value stored by the server it SHOULD NOT return a
              server-info-token header. If they do not match the server
              MUST return a server-info-token header with the current value.
            </t>

            <t>
              If a new value is returned by the server the client should
              refetch a copy of the server info document.
            </t>
          </section>
        </section>
      </section>
    </section>

    <section title='Server Information Document Structure'
             anchor="server_info_document">
      <t>
        This specification defines a new XML document type "server-info".
        All XML elements in this specification are in the DAV name space.
      </t>

      <section title='Server Information server-info element'
               anchor="server_info_document_server_info">
        <t>
          At the top level of the document is a "server-info" element
          which encloses a change token, an optional "features" element and a "services" element
          <figure>
            <artwork><![CDATA[
          <?xml version="1.0" encoding="utf-8"?>
          <server-info xmlns="DAV">
            <token>...</token>
            <features>
              ...
            </features>
            <services>
              ...
            </services>
          </server-info>
                   ]]></artwork>
          </figure>
        </t>

        <t>
          If a "features" element appears inside the "server-info"
          element then the features apply to all services.
        </t>
      </section>

      <section title='Server Information services element'
               anchor="server_info_document_services">
        <t>
          The "services" element appears once and contains 0 or more
          "service" elements each of which provides information
          about a service.
        </t>

        <t>
          NOTE: do the service have to be on the same host? I think not.
        </t>

        <section title='Server Information service element'
                 anchor="server_info_document_service">
          <t>
            The "service" element contains the name and information
            about the location
            of that service and how to obtain a service specific
            server-info document.
          </t>

          <t>
            It may also contain a "features" element which lists
            features implemented by that service.
          </t>

          <t>
            For example:
            <figure>
              <artwork><![CDATA[
          <services>
            <features>
              <DAV:class-1 />
              <DAV:class-2 />
              <DAV:access-control />
            </features>
            <service>
              <name>caldav</name>
              <href>https:cal.example.org//.well-known/caldav</href>
              <features>
                <CALDAV:calendar-access />
                <CS:sharing>
                    <CS:no-scheduling />
                </CS:sharing>
              </features>
            </service>
          </services>
            ]]></artwork>
            </figure>
          </t>
        </section>
      </section>

      <section title='Server Information features element'
               anchor="server_info_document_features">
        <t>
          The "features" element contains 0 or more elements
          each specifying a feature supported by that service.
        </t>

        <t>
          The "features" element may appear within the "server-info"
          element - in which case it applies to all services or it
          may appear inside a "service" element in which case it only
          applies to that service.
        </t>

        <t>
          When a single service is specified the features named SHOULD
          be accessible for the same authentication and authorization
          level.
        </t>

        <section title='Server Information feature element'
                 anchor="server_info_document_feature">
          <t>
            A feature is specified by an element defined in this document
            or by an element defined in the specification for that feature.
          </t>

          <t>
            WebDAV feature elements correspond to, but are not exactly
            the same as, the elements returned in the DAV header.
          </t>

          <t>
            Some features have no corresponding DAV header element. This
            may be because the feature is not available on all resources.
            The occurrence of a such a feature simple advertises the
            availability of that feature on some resources.
          </t>

          <t>
            For a service supporting this specification, the absence of a
            feature means that feature is NOT supported on any resource.
          </t>

          <t>
            For example, a calendar service may return the following
            which specifies a global set of features:
            <figure>
              <artwork><![CDATA[
            <features>
              <DAV:class-1 />
              <DAV:class-2 />
              <DAV:access-control />
              <CALDAV:calendar-access />
              <CALDAV:calendar-availability />
              <CALDAV:calendar-auto-schedule />
            </features>
            ]]></artwork>
            </figure>
          </t>
        </section>
      </section>

      <!--
      <section title='Server Information properties element'
               anchor="server_info_document_properties">
        <t>
          The "properties" element contains 0 or more elements. Each element
          takes the name of a property defined by a feature or service
          specification or, in the absence of a suitable name, the
          name will be defined within an extension to this specification.
        </t>

        <t>
          The "properties" element may appear within the "server-info"
          element - in which case it applies to all services or it
          may appear inside a "service" element in which case it only
          applies to that service.
        </t>

        <t>
          The appearance of a property defined within a feature
          specification does not imply that feature is available on the
          host. For example, a number of services use properties
          defined in <xref target="RFC3253" /> but do not support versioning.
        </t>

        <t>
          The properties can provide limits to resources - for example, the
          maximum size of an attachment.
          <figure>
            <artwork><![CDATA[
          <properties>
            <supportedlock global='true'>
              <lockentry>
                <lockscope><exclusive/></lockscope>
                <locktype><write/></locktype>
              </lockentry>
              <lockentry>
                <lockscope><shared/></lockscope>
                <locktype><write/></locktype>
              </lockentry>
            </supportedlock>
          </properties>
          ]]></artwork>
          </figure>
        </t>

        <section title='Server Information attribute: global'
                 anchor="server_info_attribute_global">
          <t>
            This attribute, if true indicates that the given value
            holds for all resources and collections on that server. This
            allows clients to avoid requesting that information for
            every collection or resource.
          </t>

          <t>
            If false, collections and resources may return a different
            value for the corresponding property.
          </t>

          <t>
            Generally, global=false for a property which defines a
            minimum or maximum value for a resource indicates the
            absolute maximum or minimum anywhere on the server.
          </t>

          <t>
            Extension specifications SHOULD define the meaning of
            values when global=false if it is not clear from the context.
          </t>
        </section>
      </section>
      -->
    </section>

    <!--
    <section title='WEBDAV Properties'
             anchor="webdav_properties">
      <t>
        This section defines the current set of properties that may
        appear inside the properties element that are associated with
        the WEBDAV features.
        This set of properties may be extended by future specifications.
      </t>

      <t>
        These properties are mostly as described in <xref target="RFC2119" />.
        Each property definition is extended to allow the use of the
        "can-be-overridden" attribute.
      </t>

      <section title='WEBDAV Property: supportedlock'
               anchor="webdav_property_supportedlock">
        <t>
          This element contains any properties which describe or
          limit the feature in some way.
        </t>
      </section>
    </section>
    -->

    <section title='XML Element Definitions'>
      <t>
        All elements defined here are in the "DAV:" namespace.
      </t>
      <section title='server-info XML element'>
        <t>
          <list style="hanging">
            <t hangText="Name:">
              server-info
            </t>
            <t hangText="Purpose:">
              Contains information about a single service.
            </t>
            <t hangText="Definition:">
              <figure>
                <artwork><![CDATA[
       <!ELEMENT server-info (token, services?, features?) >
                    ]]></artwork>
              </figure>
            </t>
          </list>
        </t>
      </section>

      <section title='token XML element'>
        <t>
          <list style="hanging">
            <t hangText="Name:">
              token
            </t>
            <t hangText="Purpose:">
              Contains an opaque token which changes when the document changes..
            </t>
            <t hangText="Definition:">
              <figure>
                <artwork><![CDATA[
       <!ELEMENT token (#PCDATA) >
                    ]]></artwork>
              </figure>
            </t>
          </list>
        </t>
      </section>

      <section title='services XML element'>
        <t>
          <list style="hanging">
            <t hangText="Name:">
              services
            </t>
            <t hangText="Purpose:">
              Contains information about all services on a host.
            </t>
            <t hangText="Definition:">
              <figure>
                <artwork><![CDATA[
       <!ELEMENT services (service*) >
                    ]]></artwork>
              </figure>
            </t>
          </list>
        </t>
      </section>

      <section title='service XML element'>
        <t>
          <list style="hanging">
            <t hangText="Name:">
              service
            </t>
            <t hangText="Purpose:">
              Contains information about a specific service on a host.
            </t>
            <t hangText="Definition:">
              <figure>
                <artwork><![CDATA[
       <!ELEMENT service (name, href?) >
                    ]]></artwork>
              </figure>
            </t>
          </list>
        </t>
      </section>

      <section title='name XML element'>
        <t>
          <list style="hanging">
            <t hangText="Name:">
              name
            </t>
            <t hangText="Purpose:">
              Within a service or feature element provides the registered name
              of that service or feature.
            </t>
            <t hangText="Definition:">
              <figure>
                <artwork><![CDATA[
       <!ELEMENT feature (#PCDATA) >
                    ]]></artwork>
              </figure>
            </t>
          </list>
        </t>
      </section>

      <section title='href XML element'>
        <t>
          <list style="hanging">
            <t hangText="Name:">
              href
            </t>
            <t hangText="Purpose:">
              Contains location of a specific service.
            </t>
            <t hangText="Definition:">
              <figure>
                <artwork><![CDATA[
       <!ELEMENT href (#PCDATA) >
                    ]]></artwork>
              </figure>
            </t>
          </list>
        </t>
      </section>

      <section title='features XML element'>
        <t>
          <list style="hanging">
            <t hangText="Name:">
              features
            </t>
            <t hangText="Purpose:">
              Contains information about all service features on a host.
            </t>
            <t hangText="Definition:">
              <figure>
                <artwork><![CDATA[
       <!ELEMENT features ANY* >
                    ]]></artwork>
              </figure>
            </t>
          </list>
        </t>
      </section>

      <!--
      <section title='properties XML element'>
        <t>
          <list style="hanging">
            <t hangText="Name:">
              properties
            </t>
            <t hangText="Purpose:">
              Contains any properties describing a feature.
            </t>
            <t hangText="Description:">
              A generic container for properties that describe a feature.
              All elements inside a 'properties' XML element MUST be
              properties related to the feature, although possible property
              names are in no way limited to those property names defined in
              this document or other standards.  This element MUST NOT contain
              text or mixed content.
            </t>
            <t hangText="Definition:">
              <figure>
                <artwork><![CDATA[
       <!ELEMENT properties ANY >
                    ]]></artwork>
              </figure>
            </t>
          </list>
        </t>
      </section>
    -->
    </section>

    <section title='WebDAV Features'
             anchor="webdav_features">
      <t>
        Here we define the feature elements for features
        defined in the various DAV related specifications.
      </t>

      <t>
        Specifications which extend this specification should define additions
        to this table. In addition, they may define the XML specification
        for that element.
      </t>

      <texttable>
        <ttcol>
          Namespace
        </ttcol>
        <ttcol>
          Name
        </ttcol>
        <ttcol>
          Reference
        </ttcol>

        <c>DAV</c>
        <c>class-1</c>
        <c><xref target='RFC4918'/>: section 18.1</c>

        <c>DAV</c>
        <c>class-2</c>
        <c><xref target='RFC4918'/>: section 18.2</c>

        <c>DAV</c>
        <c>class-3</c>
        <c><xref target='RFC4918'/>: section 18.3</c>

        <c>DAV</c>
        <c>access-control</c>
        <c><xref target='RFC3744'/>: section 7.2</c>

        <c>DAV</c>
        <c>version-control</c>
        <c><xref target='RFC3253'/>: section 3</c>

        <c>DAV</c>
        <c>extended-mkcol</c>
        <c><xref target='RFC5689'/>: section 3.1</c>

        <c>DAV</c>
        <c>quota</c>
        <c><xref target='RFC4331'/></c>

        <c>DAV</c>
        <c>sync-collection</c>
        <c><xref target='RFC6578'/></c>

        <c>DAV</c>
        <c>add-member</c>
        <c><xref target='RFC5995'/></c>
      </texttable>

      <section title='DAV class-1 feature XML element'>
        <t>
          <list style="hanging">
            <t hangText="Namespace:">DAV</t>
            <t hangText="Name:">class-1</t>
            <t hangText="DAV Header Name:">1</t>
            <t hangText="Reference:"><xref target='RFC4918'/>: section 18.1</t>
            <t hangText="Description:">Class 1 compliant resource</t>
            <t hangText="Definition:">
              <figure>
                <artwork><![CDATA[
      <!ELEMENT class-1 >
                    ]]></artwork>
              </figure>
            </t>
          </list>
        </t>
      </section>

      <section title='DAV class-2 feature XML element'>
        <t>
          <list style="hanging">
            <t hangText="Namespace:">DAV</t>
            <t hangText="Name:">class-2</t>
            <t hangText="DAV Header Name:">2</t>
            <t hangText="Reference:"><xref target='RFC4918'/>: section 18.2</t>
            <t hangText="Description:">Class 2 compliant resource</t>
            <t hangText="Definition:">
              <figure>
                <artwork><![CDATA[
      <!ELEMENT class-2 >
                            ]]></artwork>
              </figure>
            </t>
          </list>
        </t>
      </section>

      <section title='DAV class-3 feature XML element'>
        <t>
          <list style="hanging">
            <t hangText="Namespace:">DAV</t>
            <t hangText="Name:">class-3</t>
            <t hangText="DAV Header Name:">3</t>
            <t hangText="Reference:"><xref target='RFC4918'/>: section 18.3</t>
            <t hangText="Description:">Class 3 compliant resource</t>
            <t hangText="Definition:">
              <figure>
                <artwork><![CDATA[
      <!ELEMENT class-3 >
                                          ]]></artwork>
              </figure>
            </t>
          </list>
        </t>
      </section>

      <section title='DAV access control feature XML element'>
        <t>
          <list style="hanging">
            <t hangText="Namespace:">DAV</t>
            <t hangText="Name:">access-control</t>
            <t hangText="DAV Header Name:">access-control</t>
            <t hangText="Reference:"><xref target='RFC3744'/>: section 7.2</t>
            <t hangText="Description:">WebDAV ACL</t>
            <t hangText="Definition:">
              <figure>
                <artwork><![CDATA[
      <!ELEMENT access-control >
                                          ]]></artwork>
              </figure>
            </t>
          </list>
        </t>
      </section>

      <section title='DAV version control feature XML element'>
        <t>
          <list style="hanging">
            <t hangText="Namespace:">DAV</t>
            <t hangText="Name:">version-control</t>
            <t hangText="DAV Header Name:">version-control</t>
            <t hangText="Reference:"><xref target='RFC3253'/>: section 3</t>
            <t hangText="Description:">WebDAV DeltaV</t>
            <t hangText="Definition:">
              <figure>
                <artwork><![CDATA[
      <!ELEMENT version-control >
                                          ]]></artwork>
              </figure>
            </t>
          </list>
        </t>
      </section>

      <section title='DAV Extended mkcol feature XML element'>
        <t>
          <list style="hanging">
            <t hangText="Namespace:">DAV</t>
            <t hangText="Name:">extended-mkcol</t>
            <t hangText="DAV Header Name:">extended-mkcol</t>
            <t hangText="Reference:"><xref target='RFC5689'/>: section 3.1</t>
            <t hangText="Description:">Extended mkcol</t>
            <t hangText="Definition:">
              <figure>
                <artwork><![CDATA[
      <!ELEMENT extended-mkcol >
                                          ]]></artwork>
              </figure>
            </t>
          </list>
        </t>
      </section>

      <section title='DAV quota feature XML element'>
        <t>
          <list style="hanging">
            <t hangText="Namespace:">DAV</t>
            <t hangText="Name:">quota</t>
            <t hangText="Reference:"><xref target='RFC4331'/></t>
            <t hangText="Description:">DAV quotas. May not apply to all resources.
              Absence of this feature implies no support on any resource.
            </t>
            <t hangText="Definition:">
              <figure>
                <artwork><![CDATA[
      <!ELEMENT quota >
                                          ]]></artwork>
              </figure>
            </t>
          </list>
        </t>
      </section>

      <section title='DAV Sync Collection feature XML element'>
        <t>
          <list style="hanging">
            <t hangText="Namespace:">DAV</t>
            <t hangText="Name:">sync-collection</t>
            <t hangText="Reference:"><xref target='RFC6578'/></t>
            <t hangText="Description:">Collection synchronization report.
              May not apply to all resources.
              Absence of this feature implies no support on any resource.
            </t>
            <t hangText="Definition:">
              <figure>
                <artwork><![CDATA[
      <!ELEMENT sync-collection >
                                          ]]></artwork>
              </figure>
            </t>
          </list>
        </t>
      </section>

      <section title='DAV Add Member feature XML element'>
        <t>
          <list style="hanging">
            <t hangText="Namespace:">DAV</t>
            <t hangText="Name:">add-member</t>
            <t hangText="Reference:"><xref target='RFC6578'/></t>
            <t hangText="Description:">Using POST to add a member to a collection.
              May not apply to all resources.
              Absence of this feature implies no support on any resource.
            </t>
            <t hangText="Definition:">
              <figure>
                <artwork><![CDATA[
      <!ELEMENT add-member >
                                          ]]></artwork>
              </figure>
            </t>
          </list>
        </t>
      </section>
    </section>

    <section title='Examples'>
      <section title='WebDAV server information'>
        <t>
          TBD.
        </t>
      </section>
    </section>

    <section title='Notes'>
      <t>
    Tag enabling synchronization


    Document location (section 3)

    server-info token in DAV header returned as part of OPTIONS response

    Clients that see that and do not have a server-info document for that
        service should do a propfind to discover document href.

    Authenticated v unauth

    Clients may fetch the si doc in an unauth mode. When they auth they must recheck their token and refetch if appropriate.

    Caching by intermediaries might be an issue
    Server info may vary by user-agent.
      </t>
    </section>


    <section title="Security Considerations" anchor="SECURITY_CONSIDERATIONS">
      <t>
        TBD.
      </t>
    </section><!-- SECURITY_CONSIDERATIONS -->

    <section title='IANA Considerations' anchor ='iana_registry'>
      <t>
        TBD.
      </t>
    </section>

    <section title='Acknowledgments'>
      <t>
        This specification is a result of discussions that took place within the
        Calendaring and Scheduling Consortium's CalDAV Technical Committee. The
        author thanks the participants of that group.
      </t>
    </section>
  </middle>

  <back>
    <references title='Normative References'>
      &RFC2119;
      &RFC2518;
      &RFC3253;
      &RFC3339;
      &RFC3744;
      &RFC4331;
      &RFC4918;
      &RFC5689;
      &RFC5995;
      &RFC6578;

      <reference anchor="ISO.8601.2004">
        <front>
          <title>
            Data elements and interchange formats --
            Information interchange --
            Representation of dates and times
          </title>
          <author>
            <organization>
              International Organization for Standardization
            </organization>
          </author>
          <date year="2004"/>
        </front>
      </reference><!-- ISO.8601.2004-->
    </references>
  </back>

</rfc>
