Review of DR 16-0008 — SML: sortState

Francis Cave francis at
Tue Jun 20 09:21:32 CEST 2017

Hi all

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).

Charlie Clark's original DR mentions two issues:

- The prose in § only mentions the use of sml:sortState in one 
context: within AutoFilter Settings (see § 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.

- 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.

Following a series of exchanges, MS experts provided detailed feedback 
indicating that sml:sortState can be used in four contexts:

- sml:autoFilter
- sml:worksheet
- sml:table
- sml:queryTableRefresh

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.

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).

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 

To resolve the two issues raised by Charlie Clark in the DR, I propose 
the following new text for §, to replace the first paragraph:

"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 
(§, a table within a worksheet (§18.5), or a query table (§18.12).

[/Note/: 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. /end note/]"

It would also be helpful to forward the most recent response of MS 
experts to Charlie Clark.

Kind regards,


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the sc34wg4 mailing list