<div dir="ltr">I still do not understand your remarks on schemas.  Do you <div>think that </div><div>  - a schema having (a|b)* , and</div><div> - another schema having  (a?,b?)*</div><div>imply different semantics of documents?</div><div><br></div><div>To me, they are identical.  </div><div><br></div><div>Regards,</div><div>Makoto</div></div><div class="gmail_extra"><br><div class="gmail_quote">2017-11-15 0:28 GMT+09:00 Charlie Clark <span dir="ltr"><<a href="mailto:charlie.clark@clark-consulting.eu" target="_blank">charlie.clark@clark-consulting.eu</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">Am .11.2017, 13:43 Uhr, schrieb Francis Cave <<a href="mailto:francis@franciscave.com" target="_blank">francis@franciscave.com</a>>:<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
I have some sympathy with Charlie regarding this DR.<br>
</blockquote>
<br></span>
Hi to you all in Geneva,<br>
<br>
sorry I couldn't answer this last week: I was fighting a cold.<br>
<br>
I don't really think that this is an XML issue. The only question here would be why a choice and not a sequence was chosen for the group.<br>
<br>
The real problem is interoperability. The schema is:<br>
<br>
<xsd:group name="EG_ColorTransform"><br>
    <xsd:choice><br>
        <xsd:element name="tint" type="CT_PositiveFixedPercenta<wbr>ge" minOccurs="1" maxOccurs="1"/><br>
        <xsd:element name="shade" type="CT_PositiveFixedPercenta<wbr>ge" minOccurs="1" maxOccurs="1"/><br>
        <xsd:element name="comp" type="CT_ComplementTransform" minOccurs="1" maxOccurs="1"/><br>
        <xsd:element name="inv" type="CT_InverseTransform" minOccurs="1" maxOccurs="1"/><br>
        <xsd:element name="gray" type="CT_GrayscaleTransform" minOccurs="1" maxOccurs="1"/><br>
        <xsd:element name="alpha" type="CT_PositiveFixedPercenta<wbr>ge" minOccurs="1" maxOccurs="1"/><br>
        <xsd:element name="alphaOff" type="CT_FixedPercentage" minOccurs="1" maxOccurs="1"/><br>
        <xsd:element name="alphaMod" type="CT_PositivePercentage" minOccurs="1" maxOccurs="1"/><br>
        <xsd:element name="hue" type="CT_PositiveFixedAngle" minOccurs="1" maxOccurs="1"/><br>
        <xsd:element name="hueOff" type="CT_Angle" minOccurs="1" maxOccurs="1"/><br>
        <xsd:element name="hueMod" type="CT_PositivePercentage" minOccurs="1" maxOccurs="1"/><br>
        <xsd:element name="sat" type="CT_Percentage" minOccurs="1" maxOccurs="1"/><br>
        <xsd:element name="satOff" type="CT_Percentage" minOccurs="1" maxOccurs="1"/><br>
        <xsd:element name="satMod" type="CT_Percentage" minOccurs="1" maxOccurs="1"/><br>
        <xsd:element name="lum" type="CT_Percentage" minOccurs="1" maxOccurs="1"/><br>
        <xsd:element name="lumOff" type="CT_Percentage" minOccurs="1" maxOccurs="1"/><br>
        <xsd:element name="lumMod" type="CT_Percentage" minOccurs="1" maxOccurs="1"/><br>
        <xsd:element name="red" type="CT_Percentage" minOccurs="1" maxOccurs="1"/><br>
        <xsd:element name="redOff" type="CT_Percentage" minOccurs="1" maxOccurs="1"/><br>
        <xsd:element name="redMod" type="CT_Percentage" minOccurs="1" maxOccurs="1"/><br>
        <xsd:element name="green" type="CT_Percentage" minOccurs="1" maxOccurs="1"/><br>
        <xsd:element name="greenOff" type="CT_Percentage" minOccurs="1" maxOccurs="1"/><br>
        <xsd:element name="greenMod" type="CT_Percentage" minOccurs="1" maxOccurs="1"/><br>
        <xsd:element name="blue" type="CT_Percentage" minOccurs="1" maxOccurs="1"/><br>
        <xsd:element name="blueOff" type="CT_Percentage" minOccurs="1" maxOccurs="1"/><br>
        <xsd:element name="blueMod" type="CT_Percentage" minOccurs="1" maxOccurs="1"/><br>
        <xsd:element name="gamma" type="CT_GammaTransform" minOccurs="1" maxOccurs="1"/><br>
        <xsd:element name="invGamma" type="CT_InverseGammaTransform<wbr>" minOccurs="1" maxOccurs="1"/><br>
    </xsd:choice><br>
</xsd:group><br>
<br>
But the implementers notes and the narrative specification and, apparently, Excel uses alphabetical order:<br>
<br>
alpha (Alpha)<br>
alphaMod (Alpha Modulation)<br>
alphaOff (Alpha Offset)<br>
blue (Blue)<br>
blueMod (Blue Modification)<br>
blueOff (Blue Offset)<br>
comp (Complement)<br>
gamma (Gamma)<br>
gray (Gray)<br>
green (Green)<br>
greenMod (Green Modification)<br>
greenOff (Green Offset)<br>
hue (Hue)<br>
hueMod (Hue Modulate)<br>
hueOff (Hue Offset)<br>
inv (Inverse)<br>
invGamma (Inverse Gamma)<br>
lum (Luminance)<br>
lumMod (Luminance Modulation)<br>
lumOff (Luminance Offset)<br>
red (Red)<br>
redMod (Red Modulation)<br>
redOff (Red Offset)<br>
sat (Saturation)<br>
satMod (Saturation Modulation)<br>
satOff (Saturation Offset)<br>
shade (Shade)<br>
tint (Tint)<br>
<br>
This means that *Off elements need to follow their *Mod counterpart. I worked this out debugging a chart and it was the only significant element. The purpose of the specification is to try and make this kind of reverse engineering unnecessary. I'm enclosing two files with sample charts illustrating the difference. In chartlines_1.xlsx the chartlines are light grey but in chartlines_2.xlsx they are black. The order of the lumMod and lumOff elements is the only difference.<br>
<br>
So, my preferred solution would have a sequence instead of a choice in the schema. I accept that there may be good reasons for not doing so. If this is not possible then I would suggest reordering the elements of the group so that the default order is the same as in the narrative documentation. The least viable solution would be to include a note to this effect in the narrative. It would, of course, be great to get Microsoft's take on this.<br>
<br>
If, as Francis says, we can also include information about viable combinations then I'm all for it because this particularly element group is used in awful lot of places. I haven't come across the need to deal with this yet but it could be very useful.<br>
<br>
Thank you all for your help.<span class="HOEnZb"><font color="#888888"><br>
<br>
Charlie<br>
-- <br>
Charlie Clark<br>
Managing Director<br>
Clark Consulting & Research<br>
German Office<br>
Kronenstr. 27a<br>
Düsseldorf<br>
D- 40217<br>
Tel: <a href="tel:%2B49-211-600-3657" value="+492116003657" target="_blank">+49-211-600-3657</a><br>
Mobile: <a href="tel:%2B49-178-782-6226" value="+491787826226" target="_blank">+49-178-782-6226</a></font></span></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><br>Praying for the victims of the Japan Tohoku earthquake<br><br>Makoto</div>
</div>