<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:p="urn:schemas-microsoft-com:office:powerpoint" xmlns:a="urn:schemas-microsoft-com:office:access" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882" xmlns:rs="urn:schemas-microsoft-com:rowset" xmlns:z="#RowsetSchema" xmlns:b="urn:schemas-microsoft-com:office:publisher" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:c="urn:schemas-microsoft-com:office:component:spreadsheet" xmlns:odc="urn:schemas-microsoft-com:office:odc" xmlns:oa="urn:schemas-microsoft-com:office:activation" xmlns:html="http://www.w3.org/TR/REC-html40" xmlns:q="http://schemas.xmlsoap.org/soap/envelope/" xmlns:D="DAV:" xmlns:x2="http://schemas.microsoft.com/office/excel/2003/xml" xmlns:ois="http://schemas.microsoft.com/sharepoint/soap/ois/" xmlns:dir="http://schemas.microsoft.com/sharepoint/soap/directory/" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:dsp="http://schemas.microsoft.com/sharepoint/dsp" xmlns:udc="http://schemas.microsoft.com/data/udc" xmlns:xsd="http://www..w3.org/2001/XMLSchema" xmlns:sub="http://schemas.microsoft.com/sharepoint/soap/2002/1/alerts/" xmlns:ec="http://www.w3.org/2001/04/xmlenc#" xmlns:sp="http://schemas.microsoft.com/sharepoint/" xmlns:sps="http://schemas.microsoft.com/sharepoint/soap/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:udcs="http://schemas.microsoft.com/data/udc/soap" xmlns:udcxf="http://schemas.microsoft.com/data/udc/xmlfile" xmlns:udcp2p="http://schemas.microsoft.com/data/udc/parttopart" xmlns:wf="http://schemas.microsoft.com/sharepoint/soap/workflow/" xmlns:dsss="http://schemas.microsoft.com/office/2006/digsig-setup" xmlns:dssi="http://schemas.microsoft.com/office/2006/digsig" xmlns:mdssi="http://schemas.openxmlformats.org/package/2006/digital-signature" xmlns:mver="http://schemas.openxmlformats..org/markup-compatibility/2006" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns:mrels="http://schemas.openxmlformats.org/package/2006/relationships" xmlns:spwp="http://microsoft.com/sharepoint/webpartpages" xmlns:ex12t="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:ex12m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:pptsl="http://schemas.microsoft.com/sharepoint/soap/SlideLibrary/" xmlns:spsl="http://microsoft.com/webservices/SharePointPortalServer/PublishedLinksService" xmlns:Z="urn:schemas-microsoft-com:" xmlns:st="" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 12 (filtered medium)">
<style>
<!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        margin-top:0in;
        margin-right:0in;
        margin-bottom:0in;
        margin-left:.5in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
span.EmailStyle18
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
span.EmailStyle19
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
..MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page Section1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.Section1
        {page:Section1;}
-->
</style>
<!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=EN-US link=blue vlink=purple>
<div class=Section1>
<p class=MsoNormal><span style='color:#1F497D'>Apologies. I have the wrong URL
referenced below; the one in my original mail was an outdated version of their
binary file format documentation for spreadsheets. Instead, the very latest
version is here:<o:p></o:p></span></p>
<p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p>
<p class=MsoNormal><span style='color:#993366'><a
href="http://download.microsoft.com/download/2/4/8/24862317-78F0-4C4B-B355-C7B2C1D997DB/%5BMS-XLS%5D.pdf">http://download.microsoft.com/download/2/4/8/24862317-78F0-4C4B-B355-C7B2C1D997DB/%5BMS-XLS%5D.pdf</a><o:p></o:p></span></p>
<p class=MsoNormal><span style='color:#993366'><o:p> </o:p></span></p>
<p class=MsoNormal><span style='color:#1F497D'>And in this documentation, the structure
in question is lbl.<o:p></o:p></span></p>
<p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p>
<p class=MsoNormal><span style='color:#1F497D'>Thanks,<o:p></o:p></span></p>
<p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p>
<p class=MsoNormal><span style='color:#1F497D'>shawn<o:p></o:p></span></p>
<p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p>
<div>
<div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in'>
<p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>From:</span></b><span
style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'> Shawn Villaron
[mailto:shawnv@exchange.microsoft.com] <br>
<b>Sent:</b> Wednesday, February 18, 2009 6:15 PM<br>
<b>To:</b> 'e-SC34-WG4@ecma-international.org'<br>
<b>Subject:</b> DR-09-0014: SML: Incorrect restriction on the Name Representation<o:p></o:p></span></p>
</div>
</div>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>DR-09-0014: SML: Incorrect restriction on the Name
Representation<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>Hi everyone,<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>Not everyone was able to attend Okinawa last month and so I
wanted to take some time today to write up a summary mail regarding this
particular defect for your review. I’ve incorporated some of the feedback
I received in Okinawa, so even for the folks who were able to attend that
meeting, there is some new information contained herein. <o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>As background information for this defect, it is important
to remember that the intent of the IS 29500 standard was to fully encode
existing binary documents, binary spreadsheets and binary presentations using
XML. The latest document from Microsoft regarding these binary file
formats can be found here:<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal style='margin-left:.5in'><a
href="http://www.microsoft.com/interop/docs/officebinaryformats.mspx/">http://www.microsoft.com/interop/docs/officebinaryformats.mspx/</a><o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>The applicable documentation for this issue can be found in
the spreadsheet documentation. In particular, we’re addressing the
encoding of record 218h which is defined on page 144 in the PDF version.<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal><b>DR-09-0014<o:p></o:p></b></p>
<p class=MsoNormal>This issue deals with the scope of named cells within a
spreadsheet. <o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>Named cells are a common spreadsheet feature where one or
more cells in a spreadsheet can be given a “friendly” name which makes it
easier to reference those cells elsewhere in the spreadsheet. <o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>For example, suppose you want to calculate the payment on a
loan and you want to evaluate the impact that various interest rates would have
on that payment. One way to do this would be to use a cell to represent
the interest rate, name that cell interestRate and then use that name in the
formula that calculates the payment. This way you could play with the
value in the cell and not have to modify the actual formula to see the impact
it has on the payment. <o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>If we consider ThinkFree’s Office Calc 3 implementation, the
customer experience is pretty simple: select the cell that you will use for the
interest rate and use the <b>Insert / Name / Define …</b> menu. This will
bring up a dialog that shows you any named cells found in the
spreadsheet. In the dialog you can provide the name for the selected
cell(s). At this point, any time you want to refer to the contents of
this cell, you can refer to is as “interestRate” as opposed to “A:B2”.<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>An important observation here is that the scope of the named
cells is at the <i>workbook</i> level and not the <i>worksheet</i> level.
Given that worksheets can refer to cells in other worksheets, <u>the uniqueness
of named cells needs to be scoped at the workbook level</u>. Otherwise,
there could be two different cell ranges with the same name causing confusion
as to which named cell(s) value(s) should be used. Clearly this would be
a problem for data integrity and interoperability. <o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>Other vendors’ products such as OpenOffice.org Calc 3, Corel
Quatro Pro X4 and Microsoft’s Excel 2003 all have similar implementations: they
support the ability to name cells, they require workbook-level uniqueness and
they express named cells using the same manner described in the binary file
format document above. Because these four vendors have chosen similar
implementations, spreadsheets with named cells can be successfully passed
between these vendors’ products. <o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>I’ve attached a sample file generated from Think Free’s
Office Calc 3 product in case folks would like to experiment with this
functionality and the associated interop scenarios themselves. Naturally
there are some bugs in the vendors’ implementations, but you can take the
attached Think Free file and open it up successfully in the other
implementations. The spreadsheets open, the named cells are persisted and
the function which consumes the named cells continues to work as
expected. <o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>Additionally, Apple’s iWorks ’09 Numbers can consume files
generated from such implementations and make use of those named cells.
While they have similar functionality to named cells, I would not go so far as
to say they have native support for authoring named cells ( I can go into more
detail if anyone cares ).<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>If we look at the IS 29500 standard, the prose states the
following ( italics mine ):<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal style='margin-left:.5in'>18.17.6.5 Name Representation<o:p></o:p></p>
<p class=MsoNormal style='margin-left:.5in'>A formula can contain one or more
names. These names shall be defined in the <i>Worksheet</i> part's XML with
each being the subject of a definedName element, inside a definedNames element.<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>Not only does this conflict with existing binary spreadsheets,
it also conflicts with the intent of the schema. The only valid parent
element for the definedNames element is the workbook element. I interpret
this such that the intent of the standard was to match the existing binary
spreadsheets’ design and scope the uniqueness of named cells to the <i>workbook</i>
and not the <i>worksheet</i>.<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>Given that the standard’s prose conflicts with the
standard’s schema, that the industry has a common implementation of this that
successfully enables interoperability through the exchange of binary
spreadsheets and that the vendors’ implementation is consistent with the binary
spreadsheet documentation, I would recommend we change the prose to scope the
uniqueness of named cells to the <i>workbook</i>. The updated text would
look as follows ( italics to emphasize changed text ):<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal style='margin-left:.5in'>18.17.6.5 Name Representation<o:p></o:p></p>
<p class=MsoNormal style='margin-left:.5in'>A formula can contain one or more
names. These names shall be defined in the <i>Workbook</i> part's XML with each
being the subject of a definedName element, inside a definedNames element.<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>Thanks for reading.<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>shawn<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
</div>
</body>
</html>