<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=utf-8">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <p>Hi all</p>
    <p>Following the WG 4 face-to-face session on 2017-06-20 I have
      reviewed DR 16-0008 and the current specification of sml:sortState
      in prose and in the SML schemas (Strict and Transitional).</p>
    <p>Charlie Clark's original DR mentions two issues:</p>
    <p>- The prose in §18.3.1.92 only mentions the use of sml:sortState
      in one context: within AutoFilter Settings (see §18.3.1.2
      autoFilter and §18.3.2 AutoFilter Settings). But the schema
      specifies sml:sortState as a child element of sml:Worksheet. There
      is no prose mentioning the use of sml:sortState in this latter
      context.</p>
    <p>- The function of the element sml:sortState is unclear. It is not
      clear what purpose is served by storing sml:sortState in a
      document. It is not clear as to what, if anything, a conformant
      consuming implementation is supposed to do with this information.</p>
    <p>Following a series of exchanges, MS experts provided detailed
      feedback indicating that sml:sortState can be used in four
      contexts: <br>
    </p>
    <p>- sml:autoFilter<br>
      - sml:worksheet<br>
      - sml:table<br>
      - sml:queryTableRefresh</p>
    <p>In each case the element except the last, the element
      sml:sortState defines the last sort operation performed in the
      given context. In the case of sml:queryTableRefresh, the element
      sml:sortState defines the sort operation that will be performed
      when cell table data is refreshed.</p>
    I have checked the Strict and Transitional schemas, and in both
    cases sml:sortState is mentioned as a child element within a complex
    type CT_Macrosheet. This complex type is not used in the schemas and
    is not mentioned in prose. I propose that, as an adjunct to
    resolving this DR, these complex types should be removed from the
    schemas (XSD and RNG). <br>
    <p>The remaining occurrences of sml:sortState in the schemas
      correspond to the four contexts described by MS experts, i.e. as a
      child element of four complex types: CT_AutoFilter, CT_Worksheet,
      CT_Table and CT_QueryTableRefresh.<br>
    </p>
    <p>To resolve the two issues raised by Charlie Clark in the DR, I
      propose the following new text for §18.3.1.92, to replace the
      first paragraph:</p>
    <p>"This collection preserves information used to perform a sort
      operation on a specific range of data. The range of data may be
      specified with respect to a worksheet (§18.3.1), a filter applied
      to a worksheet (§18.3.1.2), a table within a worksheet (§18.5), or
      a query table (§18.12).</p>
    <p>[<i>Note</i>: A consuming implementation may choose to use the
      preserved information to configure its internal state for the next
      time a sort operation is performed, unless modified by the user. <i>end
        note</i>]"</p>
    <p>It would also be helpful to forward the most recent response of
      MS experts to Charlie Clark.<br>
    </p>
    <p>Kind regards,</p>
    <p>Francis<br>
    </p>
  </body>
</html>