<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.21 (Ruby 3.0.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-ecrit-lost-planned-changes-12" category="std" consensus="true" submissionType="IETF" xml:lang="en" version="3">
  <!-- xml2rfc v2v3 conversion 3.25.0 -->
  <front>
    <title abbrev="LoST Planned Changes">Validation of Locations Around a Planned Change</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-ecrit-lost-planned-changes-12"/>
    <author initials="B." surname="Rosen" fullname="Brian Rosen">
      <organization/>
      <address>
        <email>br@brianrosen.net</email>
      </address>
    </author>
    <date year="2025" month="January" day="06"/>
    <area>ART</area>
    <workgroup>ecrit</workgroup>
    <abstract>
      <?line 25?>

<t>This document defines an extension to the Location to Service Translation (LoST) protocol (RFC5222) that allows  a LoST server to notify a client of planned changes to location data.  This extension is only useful with the validation function of LoST.  It is beneficial for LoST validation clients to be aware of planned changes, since at a known future date, previously valid records may become invalid, and new records may become valid.  This extension adds an element to the &lt;findService&gt; request to allow a LoST client to request validation as of a specified date.  It adds an optional Time-To-Live element to the response, which informs clients of the current expected lifetime of a validation.  It also adds a separate interface to a LoST server that allows a client to poll for planned changes.  Additionally, this document provides a conventional XML schema for LoST, as a backwards compatible alternative to the RelaxNG schema in RFC5222.</t>
    </abstract>
  </front>
  <middle>
    <?line 29?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Validation of civic locations involves dealing with data that may change over time.  A typical example is when a portion of a county or district that was not part of a municipality is "annexed" to a municipality.  Prior to the change, a Presence Information Data Format Location Object (PIDF-LO) <xref target="RFC5139"/> specifying a civic location in the affected area would have a blank A3 element, or would contain some other value; after the change, a PIDF-LO specifying the same location would contain an A3 element set to the name of the municipality that annexed that part of the county/district.  This kind of annexation has an effective date and time (typically 00:00 on the first or last day of a month), known in advance.  Other kinds of changes may also occur, and these will almost always also have an effective date that is known in advance.</t>
      <t>Records in a LoST client such as a Location Information Server (LIS) must change around these kinds of events.  Each affected old record must be discarded, and a new, validated record must be loaded into the client's database.  It is often difficult for a LIS operator to know that records must be changed around such events.  There are other circumstances where locations that were previously valid become invalid, such as a street renaming or renumbering event.  Using <xref target="RFC5222"/> validation, the only way for a LoST client such as a LIS to discover such changes is to periodically revalidate its entire database.  Of course, this does not facilitate timely changes, is not coordinated with the actual change event, and also adds significant load to LoST servers as well as LoST clients such as LISs.  Even when re-validation is used, a server has no mechanism to control, or suggest the time period for revalidation.</t>
      <t>This extension allows a LoST client to obtain from a LoST server sets of locations which may change.  It makes use of "partial location information" which is a set of location elements and values that, when compared against client location records, identify which of the client records may change as a result of the planned change.  A set of such partial locations is termed a "ChangeSet". ChangeSets have an ID, and a date when the change is effective.  IDs are ordered so that changes can be completed in the correct order.  The planned change interface is a REST/JSON interface that allows a client to poll a server using the last ID that it obtained from that server.  The response to a poll is a list of all the newer planned changes the server knows about beyond the ChangeSet whose ID was included in the poll.  The ID of the last ChangeSet in the returned list is used by the client in its next poll.</t>
      <t>When a LoST client such as a LIS receives a new ChangeSet, it may prepare one or more new records so that, at the precise planned event date and time, it may insert the new records into its active database and delete the old records.  As part of preparing the new records in advance of the change, a client may use the "asOf" date component of this extension to perform a LoST validation of the new record as of the effective date.</t>
      <t>The "asOf" date component of this extension  allow a LoST client such as a LIS to be prepared for and smoothly transition to planned changes.  The polling mechanism allows a client to be informed of planned changes, while the "asOf" date allows it to verify the validity of locations before they become active.</t>
      <t>Unplanned changes will occur, and periodic revalidation can still be used to maintain the data in the client's records.  However, LoST servers should be able to influence the rate of such revalidation.  For this purpose, this extension adds an optional "expires" element to the &lt;findServiceResponse&gt; to provide advice from a server to a client as to when revalidation is suggested. In a &lt;findServiceResponse&gt;, a LoST server may include the "expires" element to expressly state when the location should be re-validated. This avoids clients blindly revalidating every address on an arbitrary schedule.</t>
      <t>There are quite a few implementations of LoST.  Experience with these implementations indicates that the RelaxNG schema is very difficult to deal with, both because many commonly used development tools don't support it, and development staff is often unfamiliar with it.  Informal alternative schemas have been circulated, which is undesirable as they may not be in conformance with the RelaxNG schema in <xref target="RFC5222"/>.  This document provides an XML schema that replaces the RelaxNG schema.  It can be used by any implementation interchangeably with the RelaxNG schema.</t>
    </section>
    <section anchor="conventions">
      <name>Conventions used in this document</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

<t>"Server" in this document refers to a LoST server and "Client" is a LoST client.</t>
    </section>
    <section anchor="planned-change-poll-interface">
      <name>Planned Change Poll Interface</name>
      <t>This document defines a new interface to a LoST server.  The interface has three endpoints:</t>
      <ol spacing="normal" type="1"><li>
          <t>Versions, which returns the current version(s) the interface supports.  This allows the interface to evolve over time.</t>
        </li>
        <li>
          <t>PlannedChangePoll, which supports a polling mechanism.  The poll returns a list of changeSetIds which identify ChangeSet objects.</t>
        </li>
        <li>
          <t>GetChangeSet, which accepts a changeSetId and returns the identified ChangeSet object.</t>
        </li>
      </ol>
      <t>A ChangeSet object contains an identifier (changeSetId), a date (changeSetEffective) and an array of partial locations.</t>
      <t>A partial location is an array of location information element name and value pairs.  A LoST client (such as a LIS) compares the location elements with its records.  For each of the client's records where all of the location elements provided in the partial location have the same values as those in the partial location, that client record may be affected by the planned change.  The client's records may have other location elements, but those are not considered in the comparison.  So, for example, a partial location may have Country, A1, A2, A3 and A4 location elements, which means that any address with those Country, A1, A2, A3 and A4 values may be affected by the planned change, regardless of street name and number.  As another example, a partial location with Country, A1, A2, A3, A4, RD and POD but not HN applies to any address number on the specified street.</t>
      <t>Servers supporting this extension maintain an ordered list of changeSetIds.  A changeSetId is a string, which might not show the ordering.  For example, the ID could be a hashed timestamp, or a hashed sequence number, among other things.  Given a changeSetId returned in a prior poll, a server can identify which ChangeSets it has that come next, in order, after the specified changeSetId.  The effective date of a ChangeSet returned by a server need not be in the future.  Tardy clients might not keep up.  On the other hand, a server is not obligated to keep ChangeSets whose changeSetEffective date has passed by more than some arbitrary time.  A 12 month time period may be appropriate for a server whose service area doesn't have many changes, while a three month time period may be needed in a service area with frequent changes. A tardy client in a fast-changing environment might receive a large number of ChangeSetIds in response to a poll.</t>
      <t>Polls are expected every few minutes.  A new client (or one that has lost its last changeSetID) performs a poll without specifying an ID, and the server responds with all the changeSetsIds that it knows about.  Thereafter, the client retains the last changeSetId from its most recent poll and uses that in the next poll.  If the response to that poll contains no changeSetIds, it means the changeSetId the client has is the latest change the server knows about; the client uses the same changeSetId in subsequent polls until the server returns a new changeSetId.</t>
      <t>The version mechanism returns a list of versions of the web service the server supports.  This document specifies version 1.0. Versions are described as a major version and a minor version, where major and minor versions are integers, and a version description is a string consisting of the major version, a dot, and the minor version.  A backwards-compatible change within a major version <bcp14>MAY</bcp14> increment only the minor version number.  A non-backwards-compatible change <bcp14>MUST</bcp14> increment the major version number.  To achieve backwards compatibility, implementations <bcp14>MUST</bcp14> ignore any object members they do not recognize.  Minor version specifications <bcp14>SHALL</bcp14> only add objects, non-required members of existing objects, and non-mandatory-to-use functions and <bcp14>SHALL NOT</bcp14> delete any objects, members of objects or functions.  This means an implementation of a specific major version and minor version is backwards compatible with all minor versions of the major version.  The versions mechanism returns an array of supported versions, one for each major version supported, with the minor version listed being the highest supported minor version.  When versions are written or used as a string, the major version is first and separated from the minor version with a period.  For example major version 3, minor version 2 is written as "3.2".</t>
      <t>The normative definition of the web interface for these endpoints is contained in <xref target="pollInterface"/></t>
      <t>Discovering the Planned Change Poll interface uses the "lost+plannedChange" application tag with U-NAPTR using the name (application unique string) of the LoST server that provided validation as input along with this new service tag. Similarly to LoST, valid protocol tags for use in combination with "lost+plannedChange" are "http" and "https". The U-NAPTR responds with the base URI of the interface and the client must use the value for "baseURI" in the yaml in <xref target="pollInterface"/>.</t>
    </section>
    <section anchor="ltasofgt-element">
      <name>&lt;asOf&gt; Element</name>
      <t>This document defines a new element in the &lt;findService&gt; request and &lt;findServiceRespponse&gt; called &lt;asOf&gt;, which contains a date and time in dateTime format with a required timezone.  A server supporting this extension validates the location in the request as of the date and time specified, taking into account planned changes.  This allows a client to verify in advance that it can make changes in its records in accordance with changes at the LoST server.</t>
      <t>A server responds with what it knows (as of the moment of the request) will be in effect on or before the &lt;asOf&gt; date</t>
      <t>The LoST server is not expected to retain a history of changes.  Therefore, an &lt;asOf&gt; date in the past will return the same results as omitting it (meaning current data).  There are no constraints on how far in advance planned changes may occur, and changes to the data may occur at any time.  Therefore, two queries with the same future &lt;asOf&gt; value placed at different times can return different results.  The server responds with its current understanding of planned changes (including any planned or unplanned changes that have already occurred) and makes no guarantees about future queries of the same location.</t>
      <t>When a server responds with a result &lt;asOf&gt; a time other than the time of the query, the &lt;findServiceResponse&gt; <bcp14>MUST</bcp14> include &lt;asOf&gt; containing the time used and each &lt;mapping&gt; included <bcp14>MUST</bcp14> have the 'expires' attribute set to "NO-CACHE".  A server <bcp14>SHOULD NOT</bcp14> include &lt;asOf&gt; in the result if &lt;asOf&gt; was not requested or if it otherwise used the current time to formulate the response.  A client receiving a response containing &lt;asOf&gt; <bcp14>MUST NOT</bcp14> assume that any mappings returned will remain unchanged and be in effect in the future; a client wishing to contact a service is still expected to use LoST contemporaneously with that need.</t>
    </section>
    <section anchor="ltrevalidateaftergt-in-response">
      <name>&lt;revalidateAfter&gt; in Response</name>
      <t>This extension defines a new element &lt;revalidateAfter&gt; to be added to the extension point of the &lt;locationValidation&gt; element appearing in a &lt;findServiceResponse&gt;. The element contains a date and time after which the client may wish to revalidate the location with the server. Alternatively, the element may contain the value "NO-EXPIRATION" which is an assertion that the server is not currently aware of any planned changes that would affect the future validation result, but makes no suggestion as to when the client should revalidate.  A server <bcp14>MAY</bcp14> add this element to a response when validation is requested. A server is not expected to add this element when the client is asking for validation &lt;asOf&gt; a specified time significantly into the future.</t>
      <t>Selecting a revalidation interval is a complex balancing of timeliness, server load, stability of the underlying data, and policy at the LoST server.  Too short, and load on the server may be undesirably large.  Too long, and invalid data may persist in clients for unacceptable lengths of time.  The polling mechanism provides timely notice to synchronize changes, but even with it, it is advisable for clients to periodically revalidate their records.
In areas that have little change in data, such as fully built out, stable communities already part of a municipality, it may be reasonable to set revalidation periods of six months or longer.  In areas that are quickly growing, 20-30 day revalidation may be more appropriate, even though these revalidations might be a majority of the traffic at the LoST server.</t>
    </section>
    <section anchor="schema">
      <name>Replacement XML schema</name>
      <t>======================</t>
      <t>This schema is an alternative to The Relax NG schema in <xref target="RFC5222"/>.  Future extensions to LoST are expected to use this schema as the base for the extensions, rather than the Relax NG schema.  Existing extensions described using the Relax NG schema continue to be valid.</t>
      <sourcecode type="XML"><![CDATA[
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
           xmlns="urn:ietf:params:xml:ns:lost1"
           targetNamespace="urn:ietf:params:xml:ns:lost1"
           elementFormDefault="qualified">
  <xs:import namespace="http://www.w3.org/XML/1998/namespace" />

  <xs:element name="findService">
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="requestLocation"/>
        <xs:group ref="commonRequestPattern"/>
      </xs:sequence>
      <xs:attribute name="validateLocation" type="xs:boolean"/>
      <xs:attribute name="serviceBoundary">
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="reference"/>
            <xs:enumeration value="value"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
      <xs:attribute name="recursive" type="xs:boolean"/>
    </xs:complexType>
  </xs:element>

  <xs:element name="listServices">
    <xs:complexType>
      <xs:group ref="commonRequestPattern"/>
    </xs:complexType>
  </xs:element>

  <xs:element name="listServicesByLocation">
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="requestLocation"/>
        <xs:group ref="commonRequestPattern"/>
      </xs:sequence>
      <xs:attribute name="recursive" type="xs:boolean"/>
    </xs:complexType>
  </xs:element>

  <xs:element name="getServiceBoundary">
    <xs:complexType>
      <xs:group ref="extensionPoint"/>
      <xs:attributeGroup ref="serviceBoundaryKey"/>
    </xs:complexType>
  </xs:element>

  <xs:element name="findServiceResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="mapping" maxOccurs="unbounded"/>
        <xs:element ref="locationValidation" minOccurs="0"/>
        <xs:group ref="commonResponsePattern"/>
        <xs:group ref="locationUsed"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:element name="listServicesResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="serviceList"/>
        <xs:group ref="commonResponsePattern"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:element name="listServicesByLocationResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="serviceList"/>
        <xs:group ref="commonResponsePattern"/>
        <xs:group ref="locationUsed"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:element name="getServiceBoundaryResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="serviceBoundary"/>
        <xs:group ref="commonResponsePattern"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:group name="commonRequestPattern">
    <xs:sequence>
      <xs:group ref="service"/>
      <xs:element ref="path" minOccurs="0"/>
      <xs:group ref="extensionPoint"/>
    </xs:sequence>
  </xs:group>

  <xs:group name="commonResponsePattern">
    <xs:sequence>
      <xs:element ref="warnings" minOccurs="0"
        maxOccurs="unbounded"/>
      <xs:element ref="path"/>
      <xs:group ref="extensionPoint"/>
    </xs:sequence>
  </xs:group>

  <xs:group name="requestLocation">
    <xs:sequence>
      <xs:element ref="location" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:group>

  <xs:element name="location">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="locationInformation">
          <xs:attribute name="id" type="xs:token" use="required"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>

  <xs:complexType name="locationInformation">
    <xs:group ref="extensionPoint" maxOccurs="unbounded"/>
    <xs:attribute name="profile" type="xs:NMTOKEN"/>
  </xs:complexType>

  <xs:group name="serviceBoundary">
    <xs:sequence>
      <xs:element ref="serviceBoundary" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:group>

  <xs:element name="serviceBoundary" type="locationInformation"/>

  <xs:element name="serviceBoundaryReference">
    <xs:complexType>
      <xs:group ref="extensionPoint"/>
      <xs:attributeGroup ref="source"/>
      <xs:attributeGroup ref="serviceBoundaryKey"/>
    </xs:complexType>
  </xs:element>

  <xs:attributeGroup name="serviceBoundaryKey">
    <xs:attribute name="key" type="xs:token" use="required"/>
  </xs:attributeGroup>

  <xs:element name="path">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="via" maxOccurs="unbounded"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:element name="via">
    <xs:complexType>
      <xs:group ref="extensionPoint"/>
      <xs:attributeGroup ref="source"/>
    </xs:complexType>
  </xs:element>

  <xs:group name="locationUsed">
    <xs:sequence>
      <xs:element ref="locationUsed" minOccurs="0"/>
    </xs:sequence>
  </xs:group>

  <xs:element name="locationUsed">
    <xs:complexType>
      <xs:attribute name="id" type="xs:token" use="required"/>
    </xs:complexType>
  </xs:element>

  <xs:attributeGroup name="expires">
    <xs:attribute name="expires" use="required">
      <xs:simpleType>
        <xs:union memberTypes="xs:dateTime">
          <xs:simpleType>
            <xs:restriction base="xs:token">
              <xs:enumeration value="NO-CACHE"/>
            </xs:restriction>
          </xs:simpleType>
          <xs:simpleType>
            <xs:restriction base="xs:token">
              <xs:enumeration value="NO-EXPIRATION"/>
            </xs:restriction>
          </xs:simpleType>
        </xs:union>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>

  <xs:simpleType name="qnameList">
    <xs:list itemType="xs:QName"/>
  </xs:simpleType>

  <xs:element name="mapping">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="displayName"
             minOccurs="0" maxOccurs="unbounded"/>
        <xs:group ref="service"/>
        <xs:choice minOccurs="0">
          <xs:group ref="serviceBoundary"/>
          <xs:element ref="serviceBoundaryReference"/>
        </xs:choice>
        <xs:element ref="uri"
             minOccurs="0" maxOccurs="unbounded"/>
        <xs:element ref="serviceNumber" minOccurs="0"/>
        <xs:group ref="extensionPoint"/>
      </xs:sequence>
      <xs:attributeGroup ref="expires"/>
      <xs:attribute name="lastUpdated" type="xs:dateTime"
            use="required"/>
      <xs:attributeGroup ref="source"/>
      <xs:attribute name="sourceId" type="xs:token"
            use="required"/>
      <xs:attributeGroup ref="message"/>
    </xs:complexType>
  </xs:element>

  <xs:element name="displayName">
    <xs:complexType>
      <xs:simpleContent>
        <xs:extension base="xs:string">
          <xs:attribute ref="xml:lang" use="required"/>
        </xs:extension>
      </xs:simpleContent>
    </xs:complexType>
  </xs:element>

  <xs:element name="uri" type="xs:anyURI"/>

  <xs:element name="serviceNumber">
    <xs:simpleType>
      <xs:restriction base="xs:token">
        <xs:pattern value="[0-9*#]+"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>

  <xs:element name="locationValidation">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="valid" minOccurs="0"/>
        <xs:element ref="invalid" minOccurs="0"/>
        <xs:element ref="unchecked" minOccurs="0"/>
        <xs:group ref="extensionPoint"/>
     </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:element name="valid" type="qnameList"/>

  <xs:element name="invalid" type="qnameList"/>

  <xs:element name="unchecked" type="qnameList"/>

  <xs:complexType name="exceptionContainer">
    <xs:sequence>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="badRequest"/>
        <xs:element ref="internalError"/>
        <xs:element ref="serviceSubstitution"/>
        <xs:element ref="defaultMappingReturned"/>
        <xs:element ref="forbidden"/>
        <xs:element ref="notFound"/>
        <xs:element ref="loop"/>
        <xs:element ref="serviceNotImplemented"/>
        <xs:element ref="serverTimeout"/>
        <xs:element ref="serverError"/>
        <xs:element ref="SRSInvalid"/>
        <xs:element ref="locationInvalid"/>
        <xs:element ref="locationProfileUnrecognized"/>
      </xs:choice>
      <xs:group ref="extensionPoint"/>
    </xs:sequence>
    <xs:attributeGroup ref="source"/>
  </xs:complexType>

  <xs:element name="errors" type="exceptionContainer"/>

  <xs:element name="warnings" type="exceptionContainer"/>

  <xs:complexType name="basicException">
    <xs:annotation>
      <xs:documentation>
        Exception pattern.
      </xs:documentation>
    </xs:annotation>
    <xs:group ref="extensionPoint"/>
    <xs:attributeGroup ref="message"/>
  </xs:complexType>

  <xs:element name="badRequest" type="basicException"/>

  <xs:element name="internalError" type="basicException"/>

  <xs:element name="serviceSubstitution" type="basicException"/>

  <xs:element name="defaultMappingReturned" type="basicException"/>

  <xs:element name="forbidden" type="basicException"/>

  <xs:element name="notFound" type="basicException"/>

  <xs:element name="loop" type="basicException"/>

  <xs:element name="serviceNotImplemented" type="basicException"/>

  <xs:element name="serverTimeout" type="basicException"/>

  <xs:element name="serverError" type="basicException"/>

  <xs:element name="SRSInvalid" type="basicException"/>

  <xs:element name="locationInvalid" type="basicException"/>

  <xs:element name="locationValidationUnavailable"
          type="basicException"/>

  <xs:element name="locationProfileUnrecognized"
          type="basicException"/>

  <xs:element name="redirect">
    <xs:complexType>
      <xs:group ref="extensionPoint"/>
      <xs:attribute name="target" type="appUniqueString"
          use="required"/>
      <xs:attributeGroup ref="source"/>
      <xs:attributeGroup ref="message"/>
    </xs:complexType>
  </xs:element>

  <xs:attributeGroup name="message">
    <xs:attribute name="message" type="xs:token"/>
    <xs:attribute ref="xml:lang"/>
  </xs:attributeGroup>

  <xs:group name="service">
    <xs:sequence>
      <xs:element ref="service" minOccurs="0"/>
    </xs:sequence>
  </xs:group>

  <xs:element name="service" type="xs:anyURI"/>

  <xs:simpleType name="appUniqueString">
    <xs:restriction base="xs:token">
      <xs:pattern value="([a-zA-Z0-9\-]+\.)+[a-zA-Z0-9]+"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:attributeGroup name="source">
    <xs:attribute name="source" type="appUniqueString"
    use="required"/>
  </xs:attributeGroup>

  <xs:element name="serviceList">
    <xs:simpleType>
      <xs:list itemType="xs:anyURI"/>
    </xs:simpleType>
  </xs:element>

  <xs:group name="notLost">
    <xs:annotation>
      <xs:documentation>
        Any element not in the LoST namespace.
      </xs:documentation>
    </xs:annotation>
    <xs:choice>
      <xs:any namespace="##other" processContents="skip"/>
      <xs:any namespace="##local" processContents="skip"/>
    </xs:choice>
  </xs:group>

  <xs:group name="extensionPoint">
    <xs:annotation>
      <xs:documentation>
        A point where future extensions
        (elements from other namespaces)
        can be added.
      </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:group ref="notLost"
           minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:group>

</xs:schema>

]]></sourcecode>
    </section>
    <section anchor="extSchema">
      <name>Extension XML Schema</name>
      <t>This schema provides the extension to the prior section schema for planned changes:</t>
      <sourcecode type="XML"><![CDATA[
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
    targetNamespace="urn:ietf:params:xml:ns:lostPlannedChange1"
    elementFormDefault="qualified">

<!-- extend the extensionPoint of commonRequestPattern of findService
                            and findServiceResponse to include:  -->
      <xs:element name="asOf" type="xs:dateTime" />

<!-- extend the extensionPoint of locationValidation to include: -->
      <xs:element name="revalidateAfter">
        <xs:simpleType>
          <xs:union memberTypes="xs:dateTime">
            <xs:simpleType>
              <xs:restriction base="xs:token">
                <xs:enumeration value="NO-EXPIRATION"/>
              </xs:restriction>
            </xs:simpleType>
          </xs:union>
        </xs:simpleType>
      </xs:element>
</xs:schema>
]]></sourcecode>
    </section>
    <section anchor="pollInterface">
      <name>plannedChangePoll Interface Description</name>
      <sourcecode type="json"><![CDATA[
      openapi: 3.0.1
        info:
          title: LoST plannedChange
          version: "1.0"
        servers:
          - url: {baseUri}/LoST/v1
          variables:
             baseUri:
                default: https://localhost
                description: The base URI that is the output 
                of U-NAPTR resolution
        paths:
          /PlannedChangePoll:
            get:
              summary: Get a list of planned changeSetIds
              operationId: getPlannedChangeIds
              responses:
                '200':
                  description: Planned Changes
                  content:
                    application/json:
                      schema:
                        $ref: 
                          '#/components/schemas/PlannedChangeIdList'
          /GetChangeSet:
            get:
              summary: Get a ChangeSet
              operationId: getChangeSet
              parameters:
                - in: query
                  name: changeSetId
                  schema:
                    type: string
                  description: ID of a ChangeSet
              responses:
                '200':
                  description: return ChangeSet object
                  content:
                    application/json:
                      schema:
                        $ref: '#/components/schemas/ChangeSet'
          /Versions:
            servers:
              - url: {baseUri}/LoST
                variables:
                   baseUri:
                      default: https://localhost
                      description: The base URI that is the output 
                      of U-NAPTR resolution
            get:
              summary: Retrieves all supported versions
              operationId: RetrieveVersions
              responses:
                '200':
                  description: Versions supported
                  content:
                    application/json:
                      schema:
                        $ref: '#/components/schemas/VersionsArray'
        components:
          schemas:
            PlannedChangeIdList:
              type: array
              items:
                type: string
            ChangeSet:
              type: object
              properties:
                changeSetId:
                  type: string
                  description: ID of the ChangeSet
                changeSetEffective:
                  type: string
                  format: datetime
                  description: date and time change will come into
                    effect in dateTime format with a required 
                    timezone
                partialLocationList:
                  type: array
                  items:
                    type: object
                    properties:
                      caType:
                        type: string
                        description: CAtype name from IANA registry
                      value:
                        type: string
                        description: value for this caType
            VersionsArray:
              type: object
              required:
                - versions
              properties:
                versions:
                  type: array
                  items:
                    type: object
                    required:
                      - major
                      - minor
                    properties:
                      major:
                        type: integer
                        format: int32
                        description: Version major number
                      minor:
                        type: integer
                        format: int32
                        description: Version minor number

]]></sourcecode>
    </section>
    <section anchor="security">
      <name>Security Considerations</name>
      <t>As an extension to LoST, this document inherits the security issues raised in <xref target="RFC5222"/>.  Clients could poll at a rate which could affect other processing at the LoST server. This is not unlike any other type of denial of service attack at an HTTP server and similar mitigations are necessary.</t>
    </section>
    <section anchor="iana">
      <name>IANA Considerations</name>
      <section anchor="application-service-tag">
        <name>Application Service Tag</name>
        <t>This document registers the following U-NAPTR application service
   tag:</t>
        <artwork><![CDATA[
  Application Service Tag:  LoST-PlannedChange

  Defining Publication:  The specification contained within this
     document.
]]></artwork>
      </section>
      <section anchor="lost-xml-schema-registration">
        <name>LoST XML Schema Registration</name>
        <t>IANA is requested to add this document to the list of references for the lost1 entry in the schema subregistry of the IETF XML Registry</t>
      </section>
      <section anchor="planned-change-extension-xml-schema-registration">
        <name>Planned Change Extension XML Schema Registration</name>
        <artwork><![CDATA[
   BEGIN
   <?xml version="2.0"?>
   <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN"
     "http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">
   <html xmlns="http://www.w3.org/1999/xhtml">
   <head>
     <meta http-equiv="content-type"
           content="text/html;charset=iso-8859-1"/>
     <title>LoST Planned Change Namespace</title>
   </head>
   <body>
     <h1>Namespace for LoST Planned Changes</h1>
     <h2>urn:ietf:params:xml:ns:lostPlannedChange1</h2>
   <p>See <a href="http://www.rfc-editor.org/rfc/rfc????.txt">
      RFC????</a>.</p>
   </body>
   </html>
   END

]]></artwork>
        <t>The XML Schema is found in <xref target="extSchema"/>.</t>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-normative-references">
      <name>Normative References</name>
      <reference anchor="RFC5139">
        <front>
          <title>Revised Civic Location Format for Presence Information Data Format Location Object (PIDF-LO)</title>
          <author fullname="M. Thomson" initials="M." surname="Thomson"/>
          <author fullname="J. Winterbottom" initials="J." surname="Winterbottom"/>
          <date month="February" year="2008"/>
          <abstract>
            <t>This document defines an XML format for the representation of civic location. This format is designed for use with Presence Information Data Format Location Object (PIDF-LO) documents and replaces the civic location format in RFC 4119. The format is based on the civic address definition in PIDF-LO, but adds several new elements based on the civic types defined for Dynamic Host Configuration Protocol (DHCP), and adds a hierarchy to address complex road identity schemes. The format also includes support for the xml:lang language tag and restricts the types of elements where appropriate. [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="5139"/>
        <seriesInfo name="DOI" value="10.17487/RFC5139"/>
      </reference>
      <reference anchor="RFC5222">
        <front>
          <title>LoST: A Location-to-Service Translation Protocol</title>
          <author fullname="T. Hardie" initials="T." surname="Hardie"/>
          <author fullname="A. Newton" initials="A." surname="Newton"/>
          <author fullname="H. Schulzrinne" initials="H." surname="Schulzrinne"/>
          <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
          <date month="August" year="2008"/>
          <abstract>
            <t>This document describes an XML-based protocol for mapping service identifiers and geodetic or civic location information to service contact URIs. In particular, it can be used to determine the location-appropriate Public Safety Answering Point (PSAP) for emergency services. [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="5222"/>
        <seriesInfo name="DOI" value="10.17487/RFC5222"/>
      </reference>
      <reference anchor="RFC2119">
        <front>
          <title>Key words for use in RFCs to Indicate Requirement Levels</title>
          <author fullname="S. Bradner" initials="S." surname="Bradner"/>
          <date month="March" year="1997"/>
          <abstract>
            <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="2119"/>
        <seriesInfo name="DOI" value="10.17487/RFC2119"/>
      </reference>
      <reference anchor="RFC8174">
        <front>
          <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
          <author fullname="B. Leiba" initials="B." surname="Leiba"/>
          <date month="May" year="2017"/>
          <abstract>
            <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="8174"/>
        <seriesInfo name="DOI" value="10.17487/RFC8174"/>
      </reference>
    </references>
  </back>
  <!-- ##markdown-source:
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
42XDvf8DI3q4hMKBAAA=

-->

</rfc>
