DR 16-0005: questions for MS experts

Francis Cave francis at franciscave.com
Fri Jun 8 00:34:08 CEST 2018


I have an action to propose questions to DrawingML experts at Microsoft, 
which would help us to resolve this DR. I have reviewed what MS-OI29500 
has to say about some of these attributes, and am able to propose 
resolutions in some cases. In others further testing is needed before we 
finally formulate specific questions to the experts.

*§19.3.1.4, §20.1.8.14, §20.2.2.1, §20.5.2.2, §21.3.2.2 blipFill 
(@rotWithShape) (complex type: CT_BlipFillProperties*

The example in §21.3.2.2 shows the element blipFill without 
@rotWithShape. Are we correct in deducing that, if the shape (a 
rectangle in the example) were rotated, the image filling the shape 
would also be rotated? If so, this would imply that the default value of 
@rotWithShape is 1 (true).

*§19.3.1.23, §20.1.2.2.22, §20.5.2.18, §21.3.2.14 grpSpPr (@bwMode) 
(complex type: CT_GroupShapeProperties)*

*§19.3.1.44, §20.1.2.2.35, §20.2.2.6, §20.5.2.30, §21.2.2.197, 
§21.3.2.23, §21.4.3.7 spPr (@bwMode) (complex type: CT_ShapeProperties)*

The standard specifies that the presence of the @bwMode attribute 
indicates that a shape should only be rendered in black and white: "No 
gray is to be used in rendering this image, only stark black and stark 
white" (for example, see description of attribute in §21.3.2.14). Yet 
the simple type ST_BlackWhiteMode includes many options involving gray 
and color as well as black and white.

MS-OI29500, section 2.1.1351(c), states that "Office uses this attribute 
to specify how the (group) shape should be rendered when in black and 
white mode". This all suggests the following:

- The description of the attribute in the standard is incorrect, since 
colors other than "stark black and stark white" can be specified by @bwMode.

- The default value of @bwMode for a shape is 'clr', unless specified on 
an ancestor element.

Is this interpretation consistent with Office?

*§20.1.2.2.24 ln (@algn) (complex type: CT_LineProperties)*

MS-OI29500, section 2.1.1203(a) states that Office uses a default value 
of 'ctr'. I propose that this be added to the schema.

*§20.1.2.3.33 sysClr (@lastClr) (complex type: CT_SystemColor)*

MS-OI29500, section 2.1.1233(a) states: "In Office, the lastClr 
attribute stores the RGB value of the last sysClr used". This suggests 
that Office might always specify this attribute, but this isn't 
completely certain. §20.1.10.58 states: "Applications shall use the 
lastClr attribute to determine the absolute value of the last color used 
if system colors are not supported". We cannot assume that all 
implementations specify this attribute, although we could recommend that 
new implementations do so for interoperability reasons. I therefore 
propose that the description of @lastClr be modified as follows:

    Specifies the color value that was last computed by the generating
    application. __I_t is recommended that this attribute be specified,
    to _promote interoperability with__consuming applications_ _that do
    not _support named system colors._

*§20.1.8.33 gradFill (@flip, @rotWithShape) (complex type: 
CT_GradientFillProperties)*

MS-OI29500, section 2.1.1288(a) states: "In Office the flip (Tile flip) 
attribute is ignored and flip mode xy is used". The attribute @flip is 
only relevant if the shape contains tiled areas (specified by the 
element tileRect), so clearly it should be omitted if tileRect is not 
present and no default value is implied. On this basis I propose no 
change to either the schema definition or the prose description of @flip.

NOTE: The images in the value table in §20.1.10.86 ST_TileFlipMode don't 
appear to make any sense.

The prose of the description of @rotWithShape makes no sense, since it 
relates to @flip. The diagrams relate to @rotWithShape, and seem to 
imply that a value for @rotWithShape is required. However, this is not 
consistent with what seems to be implied in the case of blipFill (see 
above). If @rotwithShape is omitted in this element, what is the 
behavior of Office?

*§20.1.8.38 headEnd, §20.1.8.57 tailEnd (@len, @type, @w) (complex type: 
CT_LineEndProperties)*

MS-OI29500 does not mention either of these elements. What are the 
default values of these three attributes? These elements don't make 
sense without there being explicit or implicit values for these attributes.

*§20.1.8.41 lin (@ang, @scaled) (complex type: CT_LinearShadeProperties)*

MS-OI29500 does not mention this element. This element doesn't make 
sense without there being explicit or implicit values for these attributes.

Tests suggest that in Office the default value of @ang is '0' and the 
default value of @scaled is '1'. Is that correct? While an 
implementation might choose different defaults to these, they are the 
most logical choices.

*§20.1.8.46 path (@path) (complex type: CT_PathShadeProperties)*

MS-OI29500 does not mention this element. The element path makes no 
sense without @path being specified, unless there is an explicit or 
implicit value for this attribute.

My impression is that the elements lin and path are poorly specified in 
the schema. They both appear in EG_ShadeProperties, which looks 
badly-written: a choice between two optional elements, each of which 
contains optional attributes. It looks as if the schema designer 
couldn't decide what to make optional, so made everything optional.

In passing, I note that the examples in §20.1.8.31 have incorrect values 
in the attributes @l, @r, @t and @b of the element fillToRect. These 
values should be of type ST_Percentage, e.g. '50%'.

*§20.1.8.47 pattFill (@prst) (complex_type: CT_PatternFillProperties)*

MS-OI29500 does not mention this element. The element pattFill makes no 
sense without @prst being specified, unless there is an explicit or 
implicit value for this attribute. None of the values in 
ST_PresetPatternVal suggests itself as a default value. Does Office 
require that this attribute be specified?

*§20.1.8.48 prstDash (@val) (complex type: CT_PresetLineDashProperties)*

MS-OI29500 does not mention this element. The element prstDash makes no 
sense without @val being specified, unless there is an explicit or 
implicit value for this attribute. Does Office require that this 
attribute be specified, or is a default value assumed ('dash', maybe)?

*§20.1.8.58 tile (@algn, @flip, @sx, @sy, @tx, @ty) (complex type: 
CT_TileInfoProperties)*

MS-OI29500 does not mention this element. The omission of any of these 
attributes makes no sense unless there are implicit or explicit default 
values. However, different implementations might choose different 
default values, e.g. 'tl' or 'ctr' for @algn. Does Office assume default 
values for these attributes?

*§21.1.2.2.2 defPPr (@defTabSz, @lvl) (complex type: 
CT_TextParagraphProperties)*

MS-OI29500, Section 2.1.1367(a) states that Office ignores the element 
defPPr.

Regarding @defTabSz, MS-OI29500, Section 2.1.1390(e) states: "Office 
uses a default value of 914400 EMUs". Other implementations might choose 
a different default value. The default value therefore appears to be 
implementation-defined.

I note a minor editorial nit in the first paragraph of 21.1.2.2.2: "If 
this attribute is omitted..." should be "If this element is omitted..."

*§21.1.2.2.3 endParaRPr (@baseline, @cap, @noProof) (complex type: 
CT_TextCharacterProperties)*

MS-OI29500, Section 2.1.1383(c) says that, if attributes are not 
specified, they "shall have their values determined by inheritance. 
Attribute values will be resolved using an applicable ancestor element 
of the same type as this element". Default values are only used if there 
is no inheritable value. There is no default value specified in the 
standard or in MS-OI29500 for @baseline.

A default value for @baseline is needed, but might vary between 
implementations. I propose that this should be specified in prose as 
implementation-defined.

MS-OI29500, Section 2.1.1383(f) states that Office uses a default value 
of '0' (false) for @noProof, which I believe is the only reasonable 
default value, so I propose that this be added to the schema.

MS-OI29500, Section 2.1.1383(g) states that Office uses a default value 
of 'none' (i.e. no capitalization) for @cap. It is unlikely that other 
implementations would choose a different default value, but might they? 
It might be safer to specify in prose that the default is implementation 
-defined.

I shall deal with the remainder of this DR in separate emails. This is 
enough for immediate discussion.

Francis

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.vse.cz/pipermail/sc34wg4/attachments/20180607/c8dc18d7/attachment-0001.html>


More information about the sc34wg4 mailing list