Colombia - ICONTEC

Introduction

 

The second paragraph states that the format "is fully compatible with the large existing investments in Microsoft Office documents". Since the format for Microsoft documents is proprietary no such mapping is available, so this claim cannot be proven. Also a standard cannot be compatible with an investment.

 

The claim must be proven or removed.

 

Section 2.6

 

The requirements presented as necessary for interoperability only addresses a part of the problem. Apart of what is mentioned, it is also important to properly limit and define the use of extensions, as this will inevitably lead to problems of interoperability and portability, since documents using undocumented extensions will be valid OOXML documents, but will make the document unreadable by different applications than the one which created it.

 

Enforce interoperability throughout the standard. A document-producing application must inform the user when extensions which will break interoperability and portability are used, to avoid misleading the user into thinking that particular document can be consumed by any other OOXML compliant application. The standard should mandate the use of some mechanism to mark the document as “extended”, e.g. a warning message or a different document extension. Sections which include non-portable extensions in Part 4 include: 2.3.3.17, 2.16.5.33, 2.16.5.34, 2.17.3, 3.2.7, 4.6.9, 4.6.68, 4.6.69, 4.6.70, 4.6.93, 5.1.3.2, 5.2.3.4, 5.1.3.6, 5.1.3.7, 6.1.2.19

 

Section 4

 

The definition given here for “behavior, implementation-defined” contradicts its use in the normative sections of the standard. Although it is defined as "promoting predictability and reproducibility within any given implementation", the actual use of this term in the standard always implies undefined and unreferenced propietary behiour which in fact makes predictability and reproducibility impossible.

 

Adjust this definition to the actual contents of the standard, or better yet, revise the standard to make this this statement true by defining each particular "application specific" behavior (see further comments for section 4)

 

Section 9.1

 

According to this point (Constraints on Office Open XML's Use of OPC), OPC, Open Packaging Conventions, are more general than needed for the purpose of OOXML. This is due to bring confusion, and should be resolved

 

Propose OPC as a separate standard.

 

Section 15.2.14

 

OOXML allows the inclusion of binary data for printer settings (DEVMODE), which presents a potential security risk.

 

These configurations should be expressed with proper XML, and since they are platform specific, there should be proper definitions for each platform.

 

Introduction

 

The second paragraph states that the format "is fully compatible with the large existing investments in Microsoft Office documents". Since the format for Microsoft documents is proprietary no such mapping is available, so this claim cannot be proven. Also a standard cannot be compatible with an investment.

 

The claim must be proven or removed.

 

2.3.1

 

Closing quotes missing in example

 

Fix

 

2.4.1

 

The sentence “some require a designating specifying" makes no sense

 

Fix

 

2.4.2

 

The word “emphasized” must be in italics to agree with the example

 

Fix

 

2.4.2

 

tag <w:rPr> should be</w:rPr>

 

Fix

 

2.4.2

 

tag <w:rPr> should be</w:rPr>

 

Fix

 

2.4.2

 

tag <w:rPr> should be</w:rPr>

 

Fix

 

2.4.2

 

The sentence “the properties of only some the text” is not complete

 

Fix

 

2.5.2

 

Closing quotes missing

 

Fix

 

2.5.2

 

Use straight quotes instead of curly

 

Fix

 

2.5.2

 

Use straight quotes instead of curly

 

Fix

 

2.5.4

 

“World” should not be capitalized to agree with example

 

Fix

 

2.5.4

 

the line is not valid XML

 

Delete the line

 

2.6.2

 

www.contoso.com points to the Microsoft Office website

 

Use a neutral example

 

2.6.2

 

www.contoso.com points to the Microsoft Office website

 

Use a neutral example

 

2.6.2

 

www.contoso.com points to the Microsoft Office website

 

Use a neutral example

 

2.7.1

 

This listing appears identical in the previous page

 

Remove the duplicate text

 

2.8.2

 

“heading 1” should “Heading 1” to agree with the text

 

Fix

 

2.8.2

 

Element <w:style> has no child <w:priority>.

 

Fix

 

2.8.2

 

The example is repeted

 

Remove the duplicate text

 

2.8.5

 

The example is repeated on the same page

 

Remove the duplicate text

 

2.8.6

 

Element <w:style> has no child <w:priority>.

 

Fix

 

2.8.7

 

Element <w:style> has no child <w:priority>.

 

Fix

 

2.8.11

 

Element <w:latentStyles> has no child <w:defPriority>.

 

Fix

 

2.8.11

 

Element <w:style> has no child <w:priority>.

 

Fix

 

2.8.11

 

Element <w:style> has no child <w:priority>.

 

Fix

 

2.8.11

 

Element <w:style> has no child <w:priority>.

 

Fix

 

2.14.7

 

Code should read “Some “ (including white space) to agree with example

 

Element <w:style> has no child <w:priority>.

 

3.2.9.2.2

 

The method for specifying references to cells and external files using the <f> tag is presented, but the complete behavior is not presented in the normative section (Part 4 Section 3.3.1.37) for this tag. It is presented later in Part 4, Section 3.17.2.3, but even here there is no mention of references to external spreadsheets.

 

Define the behavior in the normative clauses.

 

3.16.9

 

In the 1900 date base system, the lower limit is January 1, 1900.

 

Remove this unnecessary restriction and allow better date support. Allow negative values in the serial number or define a system counting from an earlier date (e.g. 0 A.D.)

 

5.8.3.24

 

Code formatting differs from the rest of the standard. It is a graphic and has no line numbers

 

Fix

 

5.8.4.1

 

Code formatting differs from the rest of the standard. It is a graphic and has no line numbers

 

Fix

 

5.8.4.2

 

Code formatting differs from the rest of the standard. It is a graphic and has no line numbers

 

Fix

 

5.8.4.3

 

Code formatting differs from the rest of the standard. It is a graphic and has no line numbers

 

Fix

 

5.8.4.5

 

Code formatting differs from the rest of the standard. It is a graphic and has no line numbers

 

Fix

 

5.8.5.3

 

Code formatting differs from the rest of the standard. It is a graphic and has no line numbers

 

Fix

 

5.8.5.4

 

Code formatting differs from the rest of the standard. It is a graphic and has no line numbers

 

Fix

 

5.9.2.1

 

The definition for the unit EMU should be stated as 91440 EMU = 1 U.S. Inch and 36000 EMU = 1 cm.

 

Fix

 

5.9.4.3

 

Use straight quotes instead of curly ones

 

Fix

 

5.9.4.3.1

 

Use straight quotes instead of curly ones

 

Fix

 

5.12.3

 

The example presents invalid XML

 

Fix

 

5.12.3.1.1

 

The example presents invalid XML

 

Fix

 

5.12.3.1.2

 

The example presents invalid XML

 

Fix

 

5.12.3.1.3

 

The example presents invalid XML

 

Fix

 

5.13.2.2

 

Example is inconsistent.

 

Change for valid XML, o present as a tree graphic.

 

5.14.3

 

The example presents invalid XML

 

Fix

 

5.14.3.1.1

 

Code formatting differs from the rest of the standard. It is a graphic and has no line numbers

 

Fix

 

5.14.3.1.1

 

The example presents invalid XML

 

Fix

 

5.14.3.1.2

 

The example presents invalid XML

 

Fix

 

5.15.3.1.3

 

Missing closing quotes for attribute “maxOccurs”

 

Fix

 

5.15.3.1.4

 

Missing closing quotes for attribute "name"

 

Fix

 

5.15.4.1

 

Missing closing quotes for attribute "name"

 

Fix

 

5.15.4.1.3

 

Missing closing quotes for attribute "name"

 

Fix

 

5.15.4.1.6

 

Missing closing quotes for attribute "name"

 

Fix

 

5.15.4.1.6

 

Invalid text “odoc”

 

Remove

 

5.15.5.1.3

 

Invalid character at end of line

 

Remove

 

5.15.6.3.1

 

Attributes are given without quotes

 

Add quotes

 

5.15.6.3.16

 

Attribute “animLvl” is not closed with quotes and has no white space to separate it from next attribute “type”

 

Fix

 

5.15.6.3.39

 

Missing closing quotes for attribute “maxOccurs”

 

Fix

 

7.1

 

The description for OMath in this informative section is not detailed enough for the purpose of this section, especially when compared to the rest of the sections in this part. It has no code examples like the rest of the sections.

 

Make the text more detailed and consisten with the other sections

 

7.1

 

The term "mathematical equation" typically imples an equal sign.

 

Use of the term "mathematical expression" is recommended throughout the section

 

7.1

 

Duplicate expressions

 

Remove duplicates

 

7.1

 

Duplicate expressions

 

Remove duplicates

 

7.1.10

 

Expression "x+x+x" is used, and below it appears as "x+x+..."

 

Fix

 

7.1.12

 

The property refers to the upper index, no the lower one

 

Fix

 

7.2.1

 

Invalid XMl in example

 

Fix

 

7.4.3

 

Invalid XML in example. Closing element </b:nameList> missing three times

 

Fix

 

8.1

 

Code formatting is not consistent with the rest of the standard because it is in italics. For consistency use of double quotes instead of apostrophe is preferred.

 

Fix

 

8.2.5

 

El formato del código es diferente al resto del estándar. Además no es necesario usar una ruta de archivo tan larga para el ejemplo

 

Fix

 

8.3.4.1.1

 

The image is practically unreadable because of resolution and background color

 

Fix

 

2.2.1

 

Background elements are defined as using VML. However, Part 1, Section 8.2.6 says, “VML should be considered a deprecated format included in Office Open XML for legacy reasons only and new applications that need a file format for drawings are strongly encouraged to use preferentially DrawingML”. In this case, even new documents must use VML to specify backgorunds.

 

Remove references to VML and substitue for DrawingML.

 

2.2.1

 

Contradicting use of accent3 and accent5 – the text says one thing, but the example says another.

 

Fix the contradiction.

 

2.2.1

 

The sentence 'or auto to allow a consumer to automatically determine the background color as appropriate.' does not define the appropriate behavior of the consumer, whereas the definition of the corresponding simple type, found in Part 4, page 1737, explicitly states that 'This value shall be used to specify an automatically determined color value, the meaning of which is interpreted based on the context of the parent XML element.'

 

Define the characteristics of the auto value for the color attribute of the background element properly.

 

2.2.1

 

There are several instances of the word 'border' that are meaningless in this context (the text is supposed to describe the 'background' element at that location and no “border” has been defined).

 

Clarify which border the text refers to (if any notion of border must be introduced here) or else rewrite the text so that it makes sense.

 

2.3.1.8

 

The element “cnfStyle” uses a bitmask to specify various paragraph conditional formatting properties.. The use of bitmasks rather than a set of boolean types makes this data almost impossible to work with standard XML tools like XSLT which lack bit-level operations.

 

Rewrite this subclause to express the feature using XML constructs rather than bitmasks.

 

2.3.2.8

 

It is desired to have improved interoperability between ODF and OOXML. However, OOXML's "vert" attribute only allows text to be rotated 270 degrees, whereas ODF's equivalent allows text rotation by 90 or 270 degrees.

 

Include ability to specify 90 degree text rotation in addition to existing 270 degree rotation.

 

2.3.2.1

 

It is desired to have improved interoperability between ODF and OOXML. However, OOXML text runs only support two font weights, bold or normal, where ODF supports the fuller range of font weights from XSL-FO

 

Include support for additional font weights, 100, 200, 300, 400, 500,600. 700, 800 and 900.

 

2.3.2

 

It is not clear why formatting indications (like bold, italic, etc.) is to be done using individual elements, as this complicates parsing. This method presents no clear design benefit.

 

This can be done more naturally using attributes, which will make the document easier to interpret using standard XML tools.

 

2.3.3.17

 

The type of video element allowed is not specified. Use of propietary codecs will break portability of a document, and may present patent problems for implementation, since they are outside of the scope of this specification.

 

Specify a set of patent free, portable video codecs as base, and whenever other codecs are used, mark the document as “extended” (See comment for Part 1, Section 2.6)

 

2.3.3.19

 

The object element is used for embedding inline objects. However the text says “The layout properties of this embedded object are specified using the VML syntax”. VML is in the specification for legacy reasons only (See comment for 2.2.1). All OOXML consumers would need to support VML, even where legacy documents are not present.

 

Remove this element as there is already an element in section 2.3.3.9 which can embed DrawingML objects.

 

2.3.3.21

 

The object element is used for embedding inline objects. However the text says “The layout properties of this embedded object are specified using the VML syntax”. VML is in the specification for legacy reasons only (See comment for 2.2.1). All OOXML consumers would need to support VML, even where legacy documents are not present.

 

Remove this element as there is already an element in section 2.3.3.9 which can embed DrawingML objects.

 

2.4.7

 

This element uses a bitmask to specify various table cell formatting properties. The use of bitmasks rather than a set of boolean types makes this data almost impossible to work with standard XML tools like XSLT which lack bit-level operations.

 

Rewrite this subclause to express the feature using XML constructs rather than bitmasks.

 

2.4.8

 

This element uses bitmasks to specify various table row formatting properties. The use of bitmasks rather than a set of boolean types makes this data almost impossible to work with standard XML tools like XSLT which lack bit-level operations.

 

Rewrite this subclause to express the feature using XML constructs rather than bitmasks.

 

2.4.46

 

It is desired to have improved interoperability between ODF and OOXML. However, OOXML lacks the ability to specify a multi-row header that repeats across pages, where ODF does.

 

Include in this section the ability to specify that the first N rows of a table can be selected as a header.

 

2.4.51

 

This element uses a bitmask to specify various table style formatting properties.. The use of bitmasks rather than a set of boolean types makes this data almost impossible to work with standard XML tools like XSLT which lack bit-level operations.

 

Rewrite this subclause to express the feature using XML constructs rather than bitmasks.

 

2.4.52

 

This element uses a bitmask to specify various table style formatting exceptions. The use of bitmasks rather than a set of boolean types makes this data almost impossible to work with standard XML tools like XSLT which lack bit-level operations.

 

Rewrite this subclause to express the feature using XML constructs rather than bitmasks.

 

2.8.2.2

 

This value is said to signify “an Eastern European character set”. There is no such thing. First, “Eastern Europe” is not unambiguously delineated. Second, this region uses many character scripts, including Roman, Cyrillic, Arabic, Armenian, etc.

 

Explain what is meant by, “an Eastern European character set”.

 

2.8.2.2

 

The default character set is said to be “the ANSI character set”. But ANSI has standards for many character sets. Do you mean ANSI 209-1992 “Matrix Character Set for OCR”? Probably not. So a normative reference to a specific standard is required.

 

Provide normative reference for “the ANSI character set”.

 

2.8.2.16

 

Use of bit masks is not the right way in XML. This element of the specification uses a set of bitmasks to specify which code pages a given font supports. The use of bitmasks rather than an XML Schema derived type makes this data almost impossible to work with standard XML tools like XSLT which lack bit-level operations. One of the advantages of XML is that we don't need to encode data like this any more.

 

Rewrite this subclause to express the feature using XML constructs rather than bitmasks.

 

2.15

 

The settings mechanism is designed to accomodate Microsoft Office's particular settings only. The mechanism is not extensible.

 

Make the settings mechanism extensible.

 

2.15.1.28

 

The algorithm given here is new and has not undergone peer review. Even though this is an application-enforced security feature, a strong known and tested algorithm should be used.

 

Use a recognized standard cryptographic hash algorithm like SHA-256, Whirlpool, etc.

 

2.15.1.28

 

It is stated that document protection “shall be enforced”. “Shall”has been defined previously as required behavior. A few lines later it says that document protection “may be ignored”.

 

Clarify this contradiction.

 

2.15.1.28

 

This algorithm description fails to specify the encoding of the input password. The described algorithms make use of byte-level manipulations which depend on the machine architecture (big endian versus little endian). So it is necessary that all byte ordering assumptions be made explicit.

 

Make the byte ordering assumptions explicit, both for the input password and the processing steps, so as to allow cross-platform interoperability.

 

2.15.1.29

 

This element allows the classification of the document into one of three types: “letter”, “email” or “general”. Although the description says that this feature can be used by, “hosting applications to facilitate customized user interface and/or automatic formatting behaviors based on the 'type' of a given WordprocessingML document”, the taxonomy provided is so weak as to be practically useless.

 

Either provide a reasonable document type taxonomy, or loosen the declared type to an xsd:string to allow applications to provide their own classifications.

 

2.15.1.86

 

This element uses a bitmask to specify a style display filter. Use of bit masks is not the right way in XML.

 

Rewrite this subclause to express the feature using XML constructs rather than bitmasks.

 

2.15.1.87

 

This element uses a bitmask to specify style display sorting parameters. The use of bitmasks rather than a set of boolean types makes this data almost impossible to work with standard XML tools like XSLT which lack bit-level operations.

 

Rewrite this subclause to express the feature using XML constructs rather than bitmasks.

 

2.15.2.32

 

The element “optimizeForBrowser” only accomodates Internet Explorer and Netscape Navigator. This section requires that “all settings which are not compatible with the target web browser shall be disabled.” There is no way to specify a standards compliant optimized output with PNG, MathML and SVG.

 

This clause should be rewritten to express this feature in an application and platform neutral way, allowing more versatility.

 

2.15.3.6

 

This is the “autoSpaceLikeWord95” element is defined in terms of a particular application's behavior. The standard contains insufficient detail on how to replicate this behavior.

 

Define the intended behavior.

 

2.15.3.26

 

The “footnoteLayoutLikeWW8” element, is defined in terms of a particular application's behavior. The standard contains insufficient detail on how to replicate this behavior.

 

Define the intended behavior.

 

2.15.3.31

 

The “lineWrapLikeWord6” element, is defined in terms of a particular application's behavior. The standard contains insufficient detail on how to replicate this behavior.

 

Define the intended behavior.

 

2.15.3.32

 

The “mwSmallCaps” element, is defined in terms of a particular application's behavior. The standard contains insufficient detail on how to replicate this behavior.

 

Define the intended behavior.

 

2.15.3.41

 

The “shapeLayoutLikeWW8” element, is defined in terms of a particular application's behavior. The standard contains insufficient detail on how to replicate this behavior.

 

Define the intended behavior.

 

2.15.3.51

 

The “suppressTopSpacingWP” element, is defined in terms of a particular application's behavior. The standard contains insufficient detail on how to replicate this behavior.

 

Define the intended behavior.

 

2.15.3.53

 

This is the “truncateFontHeightsLikeWP6” element, which is defined in terms of mimicking a legacy application's behavior. The standard contains insufficient detail on how to replicate this behavior.

 

Define the intended behavior.

 

2.15.3.54

 

The “uiCompat97To2003” element is defined as: “Disable UI functionality that is not compatible with Word97-2003”. The standard must be application neutral.

 

Define this an application neutral way. If it is truly a Word-only feature, then remove it from OOXML and express as an application-defined extension.

 

2.15.3.63

 

The “useWord2002TableStyleRules” element is defined in terms of a particular application's behavior. The standard contains insufficient detail on how to replicate this behavior.

 

Define the intended behavior.

 

2.15.3.64

 

The “useWord97LineBreakRules” element is defined in terms of a particular application's behavior. The standard contains insufficient detail on how to replicate this behavior.

 

Define the intended behavior.

 

2.15.3.65

 

This is the “ wpJustification” element, which is defined in terms of mimicking a legacy application's behavior. The standard contains insufficient detail on how to replicate this behavior.

 

Define the intended behavior.

 

2.15.3.66

 

The “wpSpaceWidth” element is defined in terms of a particular application's behavior. The standard contains insufficient detail on how to replicate this behavior.

 

Define the intended behavior.

 

2.16.4.3

 

The definition for BATHTEXT references 'the given Thai format', which makes no sense in the context of that definition. What “given Thai format”?

 

Clarify the definition of 'BATHTEXT'.

 

2.16.5.33

 

The field INCLUDEPICTURE says that it merely retrieves the picture contained in the named document. Is nothing else to be done with the picture? For example, should it be displayed?

 

Define what is to be done with the picture once it is retrieved.

 

2.16.5.33

 

This does not define how a picture is named. Is it by a URI? By a local file system path? Either? The example given has a DOS file path, a construct which is not portable.

 

Define how pictures are named.

 

2.16.5.33

 

No picture formats are listed as valid. There may be undocumented of patented picture formats, which will break portability of a document.

 

Define a set of documented and patent-free formats for pictures, and mark the document as “extended” when a different one is used. See comment for Part 1, section 2.6)

 

2.16.5.34

 

This does not define how a document to be passed to the INCLUDETEXT field is named. Is it by a URI? By a local file system path? Either? The example given has a DOS file path, a construct which is not portable.

 

Define how documents are named.

 

2.16.5.34

 

The INCLUDETEXT field “Inserts all or part of the text and graphics contained in the document named”. However, no mention is made of what formats are permissible for the retrieved text.

 

There should be specified at least a small set of interoperable formats. Whenever this element is used with a format not mandated by OOXML, an application must mark the document as “extended” (see comment for Part 1, Section 2.6)

 

2.16.5.34

 

The \t flag will apply a named XSLT transform to the input XML file and insert the resulting output. However, no proper reference is given to XSLT, so we do not know what version XSLT transform is permitted here.

 

Provide a proper external normative reference for the XSLT and Xpath versions which are allowed here.

 

2.16.5.5

 

According to the text, the AUTONUM field is deprecated. A new standard should not contain deprecated parts.

 

Remove all references to AUTONUM from the OOXML text and make sure LISTITEM includes all functionality necessary. The transforming application must handle the conversion.

 

2.16.5.77

 

The example that illustrates USERINITIALS section instead shows USERNAME.

 

Correct the example.

 

2.17.3

 

The external content import elements in WordprocessingML put document interoperability at risk, since not even a common ground is defined. Any application can put any content (even the whole document in an application specific way) here and the file can still be considered valid OOXML.

 

It is necessary to set a common ground for external content, or declare that applications using this section are not OOXML comformant, to avoid misleading a user into thinking that a particular OOXML file can be viewed correctly by any application. One of OOXML's goals is interoperablity and application independence. Whenever this element is used, an application must mark the document as “extended” (see comment for Part 1, Section 2.6)

 

2.18.106

 

The length for the element ”ST_UcharHexNumber” is said to be “exactly 1 character”. This is inconsistent with the earlier language and the schema fragment given which defines it as being 1 octet long or two characters.

 

Clarify the definition. In particular note that xsd:hexBinary measure length in octets, not characters.

 

2.18.4

 

The borders lack proper definition, since no size, corner handling or additional files are given. No mechanism for expanding the set of art borders is provided. Since the specified art borders are heavily Western-oriented, it would be good to provide a way for an application to supplement these styles with graphics that provide more regional flavor.

 

Define the borders in detail. Provide an interoperable extensibility mechanism for a document author or application to specify their own art border graphics.

 

2.18.45

 

Length is said to be “exactly 3 characters”. This is inconsistent with the example given which has a length of 6 characters.

 

Clarify the definition. In particular note that xsd:hexBinary measure length in octets, not characters.

 

2.18.46

 

The list of highlight colors closely matches color codes in SVG 1.0 and ISO 15445, however there are innecessary divergences in a few colors like "darkBlue", "darkCyan" and "lightGray". Slight variations from widely used standards create confusion and are a source of errors.

 

Follow previous standards and either reference SVG 1.0 or ISO 15445, or compile a list that follows these standards

 

2.18.52

 

The use of a new set of language codes, apart from ISO 639 and ISO 639-2, adds no value and only increases the work required of any application that would process an OOXML document.
Applications which use their own values to represent languages can easily convert from the standard language representation system to the codes they use internally, and vice versa.

 

Drop the use of the redundant ST_LangCode

 

2.18.52

 

The type “ST_LangCode”is defined as containing, a two digit hexadecimal language code”. It is fruther stated that, “This simple type's contents must have a length of exactly 2 characters”. However, two hex digits can count up to 255 and the values enumerated in this clause go far beyond that.

 

Refine the definition of this function, especially with respect to pre-metric measures so as to remove ambiguity.

 

2.18.57

 

Type “ST_LongHexNumber” is defined simultaneously as containing four hexadecimal digits, four hexadecimal octets and exactly four characters. These definitions are not compatible. A hexadecimal octet is two hexadecimal digits.

 

Clarify the definition. In particular note that xsd:hexBinary measures length in octets, not characters.

 

2.18.66

 

The formatting system described here (ST_NumberFormat) is not clear. It lacks support for Armenian, Tamil, Greek alphabetic, Ethiopic and Khmer numerations, all in use today, as well as the various historical systems still used by scholars.

 

Use a more flexible, extensible, generative approach to numeration, such as that used by the W3C's XSLT standard in their xsl:number support

 

2.18.66

 

There is nothing in this section which is normatively defined except some enumeration values. No normative meanings to these values are given. An informative example is insufficient in all but the most trivial cases. For example, where is “Korean Legal Counting System” defined?

 

Give explicit definitions of these numbering styles or proper external normative references.

 

2.18.66

 

Format is defined in reference to the “Chicago Manual of Style”, but no edition or page reference is provided.

 

Either include the entire definition in the standard, or provide a proper external reference.

 

2.18.66

 

The example given does not show enclosed characters and so contradicts the normative text.

 

Reconcile the text and the example.

 

2.18.66

 

Several counting systems are defined to use letters of the alphabet, but nothing is mentioned about how counting continues once the letters of the alphabet are exhausted.

 

Clarify the text to explicitly cover this case.

 

2.18.66

 

Format requires use of “dash” to surround the number, but no indication of which Unicode dash is intended, en-dash, em-dash, hyphen-minus, figure-dash, quotation-dash, etc.

 

Specify the intended dash explicitly.

 

2.18.72

 

Length is said to be “exactly 10 characters”. This is inconsistent with the example given which has a length of 20 characters.

 

Clarify the definition. In particular note that xsd:hexBinary measure length in octets, not characters.

 

2.18.85

 

The fill patterns lack definitions. The illustrations given are insufficient. An application needs to know what in these illustrations are required behaviors and what are not. For example, is the exact dithering pattern used in the illustration required?

 

Provide full normative definitions for these graphical elements.

 

2.18.86

 

The definition of type “ST_ShortHexNumber” says it contains two hexadecimal digits, two hexadecimal octets and exactly two characters. These definitions are not compatible. A hexadecimal octet is two hexadecimal digits.

 

Clarify the definition. In particular note that xsd:hexBinary measure length in octets, not characters.

 

3.2.7

 

There is no description of the usage of the “ext” element. This elementa allows extending the capabilities of SpreadsheetML, but this can break document interoperability.

 

Define and limit the usage of the “ext” element or declare that applications using this element are not OOXML comformant as one of OOXML's goals is interoperablity and application independence. Whenever this element is used, an application must mark the document as “extended” (see comment for Part 1, Section 2.6)

 

3.2.29

 

No normative description of the password hashing algorithm is provided, so interoperability of this feature cannot be assumed. In an informative section, 5-pages of C-language source code is provided as “an example”, and this appears to involve machine-dependent bit manipulations.

 

Provide a normative, cross-platform definition of the hashing algorithm. Cross-platform source code can be given as an example, but the normative text should be in English, not in a programming language.

 

3.2.29

 

This seems to imply that if a password is entered in a script like Armenian or Ethiopic then the characters will be replaced all by a single character 0x3F, making the protection feature useless. This is unacceptable.

 

Remedy so password hashes can be calculated on any Unicode password.

 

3.2.29

 

This algorithm description fails to specify the encoding of the input password. Presumably it is Unicode, but in what encoding? UTF-16BE? UTF-16LE? UTF-16 with a BOM (Byte Ordering Mark)? The described algorithms make use of byte-level manipulations which depend on the machine architecture (big endian versus little endian). So it is necessary that all byte ordering assumptions be made explicit.

 

Make the byte ordering assumptions explicit, both for the input password and the processing steps, so as to allow cross-platform interoperability. Keep in mind that the hash may be calculated on a different machine architecture than the password was entered with.

 

3.2.29

 

The conversion from input password to single byte string is ambiguous. Certainly the input password could contain characters from more than one script, say some Korean, some Chinese. Do we process via multiple DBCS code pages? Or just one and then replace the unmapped characters with 0x3F? If only one DBCS code page is used, how is that determined in this case?

 

Clarify this processing, especially for passwords that use characters from more than one script.

 

3.2.29

 

A hash algorithm is provided to secure passwords, likely based on a legacy algorithm used in Excel. This legacy algorithm is known to be a weak algorithm and has effectively been cracked. One could argue that no hash algorithm would be effective in OOXML, since a user could simply unzip the document and hand edit the XML to remove the hash or to set it to some known value. However, some application types such as online editing via Google Docs, or other similar applications, can secure physical access to the document via other means. Editing access to the document does not necessarily presuppose physical access to the document's XML. So there is a necessity for a secure & interoperable hash algorithm, such as SHA-256 for document protection.

 

Use a standard, such ISO/IEC 10118-3:2004, compliant hash algorithm as the default. Other country specific standards could be acceptable such as FIPS-180 from NIST, but additionaly to glbal standards . Legacy hash algorithms should be supported via the described extension mechanism.

 

3.3.1.61

 

OOXML allows the inclusion of binary data for printer settings (DEVMODE), which presents a potential security risk.

 

These configurations should be expressed with proper XML, and since they are platform specific, there should be proper definitions for each platform.

 

3.3.1.62

 

OOXML allows the inclusion of binary data for printer settings (DEVMODE), which presents a potential security risk.

 

These configurations should be expressed with proper XML, and since they are platform specific, there should be proper definitions for each platform.

 

3.3.1.69

 

No normative description of the password hashing algorithm is provided, so interoperability of this feature cannot be assumed. In an informative section, C-language source code is provided as “an example”, and this appears to involve machine-dependent bit manipulations.

 

Provide a normative, cross-platform definition of the hashing algorithm. Cross-platform source code can be given as an example, but the normative text should be in English, not in a programming language.

 

3.3.1.69

 

The securityDescriptor attribute, “defines
user accounts who may edit this range without providing a password to access the range”. It is a string. But no information is given as to what user accounts are referred to here, or what the delimiter is. Are these comma-delimited local machine user accounts? Or semi-colon delimited LDAP DN's? There will be no interoperability if this is not defined.

 

Fully define this attribute.

 

3.17

 

Many of the financial functions rely on a “date count basis” value that is not defined in this standard. Without this level of definition implementors will not be able to evaluate these functions (e.g. page 2534(2541) “basis”, 2535(2542) “basis”) .

 

Provide a full definition of “day count basis”, in particular with respect to treatment of leap years and leap days.

 

3.17

 

The mathematical formula graphic given in many places borders on unreadable and compares very poorly with the clarify of the rest of the text and most other images (e.g. page 2552(2559) line 1, line 3).

 

Provide better quality mathematical formula graphics.

 

3.17.3

 

The “note” for this error value appears to define required behavior, not informative remarks

 

Make the contents of the note be part of the main text, not as a note.

 

3.17.4.1

 

In the 1900 date base system, the lower limit is January 1, 1900, which is too recent.

 

Allow negative date serial values to express dates prior to 1900 or define a system which starts at an earlier date (e.g. 1 A.D.).

 

3.17.4.1

 

OOXML mandates wrong data calculations when the 1900 date system is used.

 

For legacy considerations, introduce an compatibility tag such as “doLegacySpreadhseetDateCalculations” instead of forcing applications to perform wrong calculations.

 

3.17.4.1

 

Two base systems are given, and while one is necessary for legacy compatibility, the second one introduces unnecesary restrictions like no dates before 1904. Processing dates before this year are a necessity in many applications.

 

Remove the 1904 date base system and replace with a system that begins at an earlier date, e.g. 0 A.D.

 

3.17.4.2, 3.17.4.3, 3.17.6.7

 

It is insufficient to represent times simply as a numeric value without timezone information.

 

Specify that when stored in OOXML files, dates and times are always expressed in terms of UTC. Add a mechanism for storing in the file information on what timezone should be used to represent the time in human-readable form.

 

3.17.6.7

 

This calls for the date serial number to be stored, “as accurately as possible”. This requirement is not precise and is untestable.

 

State the minimum precision required.

 

3.17.7.4

 

It is not indicated whether the returned value shall be in radians or degrees

 

Specify the angular units that should returned

 

3.17.7.9

 

It is not specified whether this function short-circuits or not. In other words, must the remaining arguments be evaluated once one of them is found to be FALSE? Since some functions have side effects, it is necessary to define this in order to ensure interoperability.

 

Specify whether this function allows short-circuit evaluation.

 

3.17.7.11

 

This function converts a DBCS string to “half-width (single byte)” characters. But the mapping from DBCS to single byte. is undefined. What is intended here? Truncation? Conversion into nearest single byte character set?

 

Provide a fuller definition of this function.

 

3.17.7.12

 

It is not indicated whether the returned value shall be in radians or degrees

 

Specify the angular units that should returned

 

3.17.7.14

 

It is not indicated whether the returned value shall be in radians or degrees

 

Specify the angular units that should returned

 

3.17.7.15

 

It is not indicated whether the returned value shall be in radians or degrees

 

Specify the angular units that should returned

 

3.17.7.17

 

The example given is incorrect. It is a formula for calculating the number of combinations of n things taken k at a time. This does not concern absolute deviation.

 

Provide a correct example.

 

3.17.7.17

 

The function description has a typo/duplication: “cells with the value 0value 0”

 

Fix the typographical error

 

3.17.7.34

 

The list of values supported for the “format” argument is far shorter than the list of possible numeric formats. What happens if CELL(“format”, A1) is called on a cell with a format not on this list?

 

Specify what happens in this case, or define a new type to avoid these cases.

 

3.17.7.35

 

This function maps between numbers and characters. But this mapping must be defined by a character set and none is defined here.

 

Specify what character set is used for this mapping (ASCII?).

 

3.17.7.37

 

This function says, “CHIINV uses an iterative search technique”. This is specifying an implementation, not a testable performance criterion. Other approaches should be permitted.

 

Keep the suggestions, but put them in informative Notes or Guidance.

 

3.17.7.38

 

The definition of this function says the the results are “unspecified” if the two ranges do not have the same number of points. But isn't this a clear argument error where should be returned? Surely we can document what Excel does here?

 

Specify the required results for the case where the two ranges are of unequal size.

 

3.17.7.47

 

This function cannot be calculated without making an assumption about the distribution of the data? Are we assuming normally distributed data? uniformly distributed data?

 

Make the distribution assumptions explicit.

 

3.17.7.48

 

This function is ambiguously defined, especially with regards to the traditional units of measure. For example, a tablespoon is 15ml in the US, but 20ml in Australia. Which is meant here? Similarly, a cup is defined differently in various countries, e.g. 8 oz in US, except the FDA defines it for food labeling purposes as 240ml, while it is 250ml in Australia and 285ml in the UK. Also, the unit Pica is oncorrectly defined as 1/72 inch when it should be 1/72 foot.

 

Refine the definition of this function, especially with respect to pre-metric measures so as to remove ambiguity.

 

3.17.7.49

 

The definition of the arguments in the function is incorrect. It should say that x-bar and y-bar are the sample means, not x and y.

 

Correct the text

 

3.17.7.50

 

It is not indicated whether the parameter is in radians or degrees

 

Specify the angular units that this parameter is in

 

3.17.7.65

 

The “kpi-property” parameter lists a number of values which are undefined such as “temporal context”, “relative importance”, etc. This is made even more cryptic by the fact that this function, unlike almost all the others, has examples that fail to illustrate the returned values. If there is to interoperability in the use of this function, semantics in additional to syntax will need to be specified.

 

Provide the semantics for this function

 

3.17.7.65

 

The definition of this function says that it retrieves an OLAP Cube from a “SQL Server”. Surely this function is not limited to use only against Microsoft database servers?

 

Provide a vendor-neutral definition of this function.

 

3.17.7.66

 

A multidimensional expression (MDX) that evaluates to a unique member in the cube”. But MDX is undefined.

 

Define the syntax and semantics of an MDX

 

3.17.7.74

 

The definition of date normalization is rather loose. I think you want to say something like this; month is greater than 12, then month-12 shall be added to the first month in the year specified.”, etc. The problem with how it is stated is that “that” does not refer to anything in “that number of months”.

 

Clarify the definition of date normalization.

 

3.17.7.76

 

This function says that it can take a string in any valid date and/or time format. It further says that if the year portion of the input string is ommitted, that the current year is used. But what if the date is omitted as well, e.g, someone passes in a pure time string like “10:34”? Do we assume the current date? of the current year?

 

Resolve the ambiguity in the definition when a string with time format is passed in.

 

3.17.7.77

 

Normative information regarding the processing of “an entire column in a database” is placed in an informative note. Since it is clearly stating a requirement in the processing this should be in the normative text.

 

Rework the note into the normative description of this function.

 

3.17.7.78

 

The function does not define what a “Gregorian day” is, nor why it would be different in the 1900 versus 1904 date bases for a date in 1982. Is this just returning the day of the month? Why would this function return two values for that in 1982?

 

Define fully what this function returns.

 

3.17.7.91

 

The function is defined in terms of $100 face value, but there is nothing about the security discounting that is intrinsically tied to the US Dollar.

 

Recommend the use of the generic currency sign here (U+00A4)

 

3.17.7.95

 

This function is ambiguously defined. Specifically we need to know how many decimal digits we need to look at to determine the numerator of the fraction. The example given DOLLARDE(1.02,16) = 1+ 2/16. But what about, after a serious of calculations and in the presence of accumulated floating point error we have DOLLARDE(1.020000001, 16)? Is this now 1 + 20000001/16? or 1,250,001? Also the definition is worded incorrectly. The first parameter is not “a number expressed as a fraction.” It is “a numbered interpreted as a fraction”. Also, the information marked as “Note” seems to be the most critical part of the definition and so should be part of the normative material.

 

Clarify how this function works

 

3.17.7.96

 

The information marked as “Note” seems to contain the only definition of what this function actually should do, so it should be made part of the normative material.

 

Rework the note into the normative description of this function.

 

3.17.7.101

 

The function is defined in terms of $100 par value, but there is nothing about the bond calculations that is inherently tied to the US Dollar.

 

Recommend the use of the generic currency sign here (U+00A4)

 

3.17.7.111

 

String comparisons in an international setting are typically described as either lexical comparisons where the strings are compared character by character for identity, and by collation comparisons where equivalent characters are considered identical. This function does not say which method it uses.

 

Clarify what defines two strings as having identical content.

 

3.17.7.118

 

Similar issue to EXACT. Is this a lexical comparison or collation-based?

 

Clarify the basis for finding substrings

 

3.17.7.119

 

Similar issue to EXACT. Is this a lexical comparison or collation-based?

 

Clarify the basis for finding substrings

 

3.17.7.120

 

This function says, “FINV uses an iterative search technique”. This is specifying an implementation, not a testable performance criterion. Other approaches should be permitted.

 

Keep the suggestions, but put them in informative Notes or Guidance.

 

3.17.7.123

 

The rounding algorithm is not specified. How for example, do we calculate FIXED(0.5,0)? Round up, round down?

 

State what the rounding conventions are.

 

3.17.7.131

 

This function says, “GAMMAINV uses an iterative search technique”. This is specifying an implementation, not a testable performance criterion. Other approaches should be permitted.

 

Keep the suggestions, but put them in informative Notes or Guidance.

 

3.17.7.144

 

The definition says that an allowed format for the link-location parameter is a “universal naming convention (UNC) path on a server”, though this term is not defined.

 

Provide a normative definition or reference for a UNC path.

 

3.17.7.186

 

Definition is incomplete. Formulas don't stand for themselves. You need to connect the notation to the function arguments. So, as stated, “where s is the sample standard deviation”, but it should be followed by, “and n is the number of data points in the range, and X-bar is the sample mean”

 

Provide the complete definition.

 

3.17.7.201

 

This function is ambiguous. Is it asking for a lexical, character by character conversion to lowercase? Or for a whole-word conversion? For example, Greek capital Sigma has two lower case forms, one reserved for use as the terminal letter in a word. As written, it is not clear whether this function should be implemented to take that into consideration or not.

 

Clarify what it means to convert to lower case.

 

3.17.7.206

 

The function is defined in terms of $100 par value, but there is nothing about the bond calculations that is inherently tied to the US Dollar.

 

Recommend the use of the generic currency sign here (U+00A4)

 

3.17.7.207

 

The text currently says, “If there is an even number of numbers in the set, MEDIAN calculates the average of the two numbers in the middle”. This is ambiguous. Middle of what? Middle of the range is the most direct interpretation. Probably want something more like, “The values in the range are logically ranked from lowest to highest and the middle number is returned. If there is an even number of numbers in the set...”

 

Clarify the definition.

 

3.17.7.227

 

This text says, “NORMINV uses an iterative search technique”. This is specifying an implementation, not a testable performance criterion. Other approaches should be permitted.

 

Keep the suggestions, but put them in informative Notes or Guidance.

 

3.17.7.229

 

This text says, “NORMSINV uses an iterative search technique”. This is specifying an implementation, not a testable performance criterion. Other approaches should be permitted.

 

Keep the suggestions, but put them in informative Notes or Guidance.

 

3.17.7.243

 

It is not specified whether this function short-circuits or not. In other words, must the remaining arguments be evaluated once one of them is found to be TRUE? Since some functions have side effects, it is necessary to define this in order to ensure interoperability.

 

Specify whether this function allows short-circuit evaluation.

 

3.17.7.282

 

Is this a lexical comparison or collation-based search?

 

Clarify the basis for string comparisons

 

3.17.7.287

 

It is not indicated whether the parameter is in radians or degrees

 

Specify the angular units that this parameter is in

 

3.17.7.313

 

It is not indicated whether the parameter is in radians or degrees

 

Specify the angular units that this parameter is in

 

3.17.7.344

 

This function is defined to skip over weekends in its calculations, but weekend is not defined and has different definitions in different parts of the world.

 

Define this function unambiguously and preferably in a way which provides for cultural adaptability in the definition of a weekend.

 

3.17.7.348

 

This function is ambiguous. Specifically it does not treat the calculation in the presence of leap years. In the Actual/Actual basis, do we ever divide by 366? Or only by 365? Would we divide by 366 only if the leap day is between start-date and end-date? Of either start-date or end-date are in the leap year? If both start-date and end-date are in a leap year?

 

Clarify the definition of the function when involving leap years.

 

3.18.86

 

Length is said to be “exactly 4 characters”. This is inconsistent with the schema fragment given which defines it as being 4 octets long or 8 characters.

 

Clarify the definition. In particular note that xsd:hexBinary measure length in octets, not characters.

 

4.3.1.35

 

The element "smartTags" is insufficiently defined for DrawingML. Is the behavior equivalent to the behavior in WorprocessingML?

 

Define the behavior of smart tags for DrawingML

 

4.6.9

 

The audio codecs allowed for the “audio” element are not specified. There are many propietary and non-portable codecs which would break portability of a document.

 

Define a set of patent-free portable audio codecs as base. Whenever other codecs are used, the document must be marked as “extended” (see comment for Part 1, Section 2.6)

 

4.6.68

 

The audio codecs allowed for the “snd” element are not specified. There are many propietary and non-portable codecs which would break portability of a document.

 

Define a set of patent-free portable audio codecs as base. Whenever other codecs are used, the document must be marked as “extended” (see comment for Part 1, Section 2.6)

 

4.6.69

 

The audio codecs allowed for the “sndAc” element are not specified. There are many propietary and non-portable codecs which would break portability of a document.

 

Define a set of patent-free portable audio codecs as base. Whenever other codecs are used, the document must be marked as “extended” (see comment for Part 1, Section 2.6)

 

4.6.70

 

The audio codecs allowed for the “sndTgt” element are not specified. There are many propietary and non-portable codecs which would break portability of a document.

 

Define a set of patent-free portable audio codecs as base. Whenever other codecs are used, the document must be marked as “extended” (see comment for Part 1, Section 2.6)

 

4.6.93

 

The video codecs allowed for the “video” element are not specified. There are many propietary and non-portable codecs which would break portability of a document.

 

Define a set of patent-free portable video codecs as base. Whenever other codecs are used, the document must be marked as “extended” (see comment for Part 1, Section 2.6)

 

5

 

The new unit EMU (English metric units) is never properly defined and used in several places. e.g. Sections 5.1.12.42, 5.1.5.1.1, 5.1.12.16.

 

Produce a proper definition of EMU, clearly referenced when it is used, or use a standard unit of measure.

 

5.1.5.2.3

 

Smart tags are mentioned but they are not described elsewhere in the VML specification

 

Define the behavior of smart tags for VML

 

5.1.5.3.2

 

Smart tags are mentioned but they are not described elsewhere in the VML specification

 

Define the behavior of smart tags for VML

 

5.1.12.28

 

Length is said to be “exactly 3 characters”. This is inconsistent with the schema fragment given which defines it as being 3 octets long or 6 characters.

 

Clarify the definition. In particular note that xsd:hexBinary measure length in octets, not characters.

 

5.1.12.37

 

The Panose value is said to be used, “so that generating applications using this Office Open XML Standard may determine the closest font type if necessary”. However, no font distance metric or font matching heuristic is described.

 

Describe the intended font matching procedure.

 

5.1.12.37

 

Why are there several different definitions for a Panose value, both in Word Processing ML as well as Drawing ML?

 

Since they are exactly the same they should be defined once in a shared schema.

 

5.1.12.37

 

Length is said to be “exactly 10 characters”. This is inconsistent with the schema fragment given which defines it as being 10 octets long.

 

Clarify the definition. In particular note that xsd:hexBinary measure length in octets, not characters.

 

5.1.3.2

 

The audio codecs allowed for the “audioFile” element are not specified. There are many propietary and non-portable codecs which would break portability of a document.

 

Define a set of patent-free portable audio codecs as base. Whenever other codecs are used, the document must be marked as “extended” (see comment for Part 1, Section 2.6)

 

5.1.3.4

 

This describes the attachment of a QuickTime video to a presentation object. No description of the QuickTime format is provided. Without specifying a version and supported codecs, there will be no interoperability.

 

Provide an external reference for the version(s) of QuickTime format intended here as well as an interoperable codec. Since Quicktime is a propietary technology not covered within this specification, must cause the docuement to be marked as “extended” (See comment for Part 1, Section 2.6)

 

5.1.3.6

 

The video codecs allowed for the “videoFile” element are not specified. There are many propietary and non-portable codecs which would break portability of a document.

 

Define a set of patent-free, portable video codecs as base. Whenever other codecs are used, the document must be marked as “extended” (see comment for Part 1, Section 2.6)

 

5.1.3.7

 

The attribute “builtIn” specifies whether a sound is builtIn and is to be reference by name only and not included within the file. Since no list of built-in audio files is given, this will break a document's portabilty, as no application but the creator will posses certain audio files.

 

For the sake of portabilty, this attribute should be removed. If this is not desired, provide a list and set of built-in audiofiles. As a last option, documents using this attribute should be marked as “extended” (see comments for Part 1, Section 2.6)

 

Section 6

 

OOXML specifies here a markup language called Vector Markup Language (VML) which, in addition to DrawingML, specifies a vocabulary for describing graphical objects. Section 6.1 says, “The DrawingML format is a newer and richer format created with the goal of eventually replacing any uses of VML in the Office Open XML formats. VML should be considered a deprecated format included in Office Open XML for legacy reasons only and new applications that need a file format for drawings are strongly encouraged to use preferentially DrawingML” The need to support VML by OOXML consumers, in addition to DrawingML, would come at great implementation expense (the VML specification is over 600 pages) , would disadvantage all vendors but Microsoft, and would hurt interoperability.

 

Remove VML from OOXML and use DrawingML instead. If needed add special legacy features in DrawingML.

 

6.1.2.7

 

This element uses a bitmask to specify VML table properties. The use of bitmasks rather than a set of boolean types makes this data almost impossible to work with standard XML tools like XSLT which lack bit-level operations.

 

Rewrite this subclause to express the feature using XML constructs rather than bitmasks.

 

6.1.2.19

 

The "equationxml" attribute of the "shape" element is "used to rehydrate an equation using the Office Open XML Math syntax". However, the "actual format of the contents of this attribute are application-defined". This makes interoperability impossible when this element is present.

 

It is suggested that this element, for the sake of interoperability, not be made extensible. If it is considered absolutely necessary it would be preferable to create a separate element, e.g. "alternateequationxml", and mark the document as “extended” (see comment for Part 1, Section 2.6)

 

6.1.2.19

 

The "gfxdata" is defined as an encoded package whose contents are application defined. This lack of definition breaks interoperability as content placed here by an application may not be understood by another one.

 

It is suggested that this element, for the sake of interoperability be limited to a particular package type. If extensibilty is desired in this case mark the document as “extended” (see comment for Part 1, Section 2.6)

 

6.4.2.10

 

This element is defined as providing a, “general-use element for objects that use an image representation, such as OLE objects, embedded controls, cameras and signature lines.” However, the allowed values, EMF, WMF, etc., refer to formats for which no reference has been given.

 

Provide a proper external normative reference for the allowed formats containable within this element.

 

6.4.3.1

 

The allowed values of this enumeration, EMF, WMF, etc., are Windows-specific formats. No allowance seems to have been made for use by other operating systems. For example, in Linux images are typically copied on the clipboard in an open standard format like PNG.

 

Make standard neutral by adding options for other relevant platforms. The desire is to allow cross platform interoperability and efficiency.

 

7.1

 

This is the specification of Office Open Math Markup Language, a specialized XML vocabulary for the describing the layout of mathematical equations. This solves the same problem as MathML, a long-established W3C standard and an ongoing activity in the W3C. Since the equation editing feature of Word was entirely rewritten in Word 2007, there doesn't not seem to be the argument that an additional equation language must be introduced for the sake of legacy documents.

 

It is recommended that this section be removed from OOXML and that the proposers of OOXML work within the W3C's MathML activity, where MathML 3.0 is currently being drafted, to produce a single standard for equations that can be used later referenced by a future version of OOXML.

 

7.1

 

OOXML is not compatible with the industry standard language for displaying mathematical equations — MathML — used by the research community and the most important publications as Science, Nature, etc... . No interoperability with MathML is in the OOXML specifications.

 

Add the pertinent interoperability with MathML

 

7.4.2.4

 

This defines a new XML string type which allows the inclusion via an escape mechanism of Unicode characters which are otherwise impermissible in XML documents. However, any escape mechanism must also specify a mechanism for “escaping the escape”. So, how does one represent the literal example given in 7.4.2.4 in a bstr?

 

Complete the definition of the escape mechanism.

 

7.4.2.4

 

The presence of non-XML characters, escaped, or not escaped in an OOXML document, is contrary to interoperability of XML and XML-based tools. The W3C's Internationalization Activity confirms this interpretation, saying “Control codes should be replaced with appropriate markup. Since XML provides a standard way of encoding structured data, representing control codes other than as markup would undo the actual advantages of using XML. Use of control codes in HTML and XHTML is never appropriate, since these markup languages are for representing text, not data.”

 

Remove the bstr type from OOXML

 

7.4.2.5

 

It doesn't make sense to specify strings as null-terminated C-style strings and then to base-64 encode that. That is avoiding XML and will cause the markup to interoperate poorly with XML-based tools.

 

The entire Clipboard Data representation needs thought. It looks very much like it is mapping directly to the arbitrary internals of a single application. This clause should be rewritten to express this feature in an application and platform neutral way.

 

7.4.2.5

 

This element defines usage on Windows and Macintosh platforms only, but it doesn't specify whether OS 9 or OS X, and leaves out other important operating systems like Linux.

 

Make standard neutral, defining values for other prominent systems.

 

7.4.2.5

 

There is not enough information about the contents and their usage to provide interoperability. If these are binary blobs, they may present a security risk.

 

Expand section to provide interoperability, and consider using XML syntax.

 

7.5.2.1

 

The address at www.contoso.com points to the Microsoft Office product page.

 

Use a neutral example.

 

throughout

 

The naming of elements is very inconsistent. Even though the choice of one letter for common elements seems appropriate, there seems to be no common technique for naming. The capitalization and vowel removal is inconsistent, as there are elements with names like: (from, but not limited to, Part 4 Section 2.15.1): ActiveWritingStyle, attachedSchema, documentType, docVars, endnotePr, hdrShapeDefaults) . This is not a problem with the clarity of the specification, but it complicates the implementation of it unnecessarily, as developers will need to refer more often than necessary to the document to check for a certain element's particular spelling.

 

Use a common element naming system

 

Some of the wording for the comments is taken from the comments by AENOR and BSI.