<div dir="ltr">Folks,<div><br></div><div>I studied each attribute group in vml-main.xsd.  I think that </div><div>factorization for AG_Adj, AG_ImageAttributes, AG_Path,</div><div>and AG_Type does not have enough advantages.</div><div><br></div><div><div>AG_Adj</div><div>Defines 1 attribute. Referenced 2 times.</div><div>AG_ImageAttributes</div><div>Defines 10 attribute. Referenced 2 times.</div><div>AG_Path</div><div>Defines 1 attribute. Referenced 2 times.</div><div>AG_Type</div><div>Defines 1 attribute. Referenced 1 time.</div></div><div><br></div><div>I propose to introduce 19.1.4 and define 12 </div><div>attribute groups there.</div><div><br></div><div>19.1.4 Attribute Groups</div><div>19.1.4.1<span style="white-space:pre">  </span>General</div><div><div>19.1.4.2<span style="white-space:pre">    </span>AG_AllCoreAttributes</div><div>19.1.4.3<span style="white-space:pre">  </span>AG_AllShapeAttributes</div><div>19.1.4.4<span style="white-space:pre"> </span>AG_Chromakey</div><div>19.1.4.5<span style="white-space:pre">  </span>AG_CoreAttributes</div><div>19.1.4.6<span style="white-space:pre">     </span>AG_Ext</div><div>19.1.4.7<span style="white-space:pre">        </span>AG_Fill</div><div>19.1.4.8<span style="white-space:pre">       </span>AG_Id</div><div>19.1.4.9<span style="white-space:pre"> </span>AG_OfficeCoreAttributes</div><div>19.1.4.10<span style="white-space:pre">      </span>AG_OfficeShapeAttributes</div><div>19.1.4.11<span style="white-space:pre">     </span>AG_ShapeAttributes</div><div>19.1.4.12<span style="white-space:pre">   </span>AG_StrokeAttributes</div><div>19.1.4.13<span style="white-space:pre">  </span>AG_Style</div></div><div><br></div><div>Regards,</div><div>Makoto</div></div><div class="gmail_extra"><br><div class="gmail_quote">2017-08-15 13:02 GMT+09:00 MURATA Makoto <span dir="ltr"><<a href="mailto:eb2m-mrt@asahi-net.or.jp" target="_blank">eb2m-mrt@asahi-net.or.jp</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>Dear colleagues,</div><div><br></div><div>In prose, attribute groups are simply expanded and then documented.</div><div>Thus, attributes defined in attribute groups are duplicated several times,</div><div>in both Parts 1 and 4.  Refactoring in Part 1 will eliminate 100 attribute </div><div>definitions.  Refactoring in Part 4 (VML) (in reply to this DR) will eliminate </div><div>611 attribute definitions.</div><div><br></div><div>I plan to submit 3 DRs for 1), 2), and 3), (see below).  Avoiding duplication </div><div>is nice, but part 1 refactoring will not remove many pages (less than 20 </div><div>pages, I guess).</div><div><br></div><div>Since VML attributes contain diagrams, these attributes significantly </div><div>increase the number of pages.  By deleting all VML common attributes, </div><div>we can remove 360 pages from Part 4.  Of course, we need new </div><div>subclauses for defining attribute groups.  But I am pretty sure </div><div>that more than 300 pages can be removed from Part 4.  I thus think </div><div>that addressing this DR by refactoring makes a lot of sense.</div><div><br></div><div><br></div><div>1) Attribute groups in DrawingML</div><div><br></div><div>Even when attributes are defined by attribute groups, existing</div><div>prose of ISO/IEC 29500-1 does not mention attribute groups.  As</div><div>a result, some attributes are repeated several times.  This DR</div><div>considers such repetition in DrawingML.</div><div><br></div><div>If we create a new subclause for each attribute group and reference if</div><div>from element definitions, we can remove 72 rows from attribute tables</div><div>from existing clauses and introduce 26 attribute rows in new</div><div>subclauses.  Additionally, we need 6 subclause titles and 5 header</div><div>rows in new subclauses.</div><div><br></div><div>dml-diagram.xsd:  <xsd:attributeGroup name="AG_IteratorAttributes"></div><div>Defines 6 attributes</div><div>Referenced 3 times</div><div><br></div><div>dml-diagram.xsd:  <xsd:attributeGroup name="AG_ConstraintAttributes"<wbr>></div><div>Defines 4 attributes</div><div>Referenced 2 times</div><div><br></div><div>dml-diagram.xsd:  <xsd:attributeGroup name="AG_ConstraintRefAttribut<wbr>es"></div><div>Defines 4 attributes</div><div>Referenced 1 time</div><div><br></div><div>dml-main.xsd:  <xsd:attributeGroup name="AG_Blob"></div><div>Defines 2 attributes</div><div>Referenced 1 time</div><div><br></div><div>dml-main.xsd:  <xsd:attributeGroup name="AG_Locking"></div><div>Defines 10 attributes</div><div>Referenced 4 times</div><div><br></div><div>2) Attribute groups in PML</div><div><br></div><div>Even when attributes are defined by attribute groups, existing</div><div>prose of ISO/IEC 29500-1 does not mention attribute groups.  As</div><div>a result, some attributes are repeated several times.  This DR</div><div>considers such repetition in PML.</div><div><br></div><div>If we create a new subclause for each attribute group and reference if</div><div>from element definitions, we can remove 28 rows from attribute tables</div><div>from existing clauses and introduce 10 attribute rows in new</div><div>subclauses.  Additionally, we need 4 subclause titles and 3 header</div><div>rows in new subclauses.</div><div><br></div><div>pml.xsd:  <xsd:attributeGroup name="AG_TLBuild"></div><div>Defines 3 attributes</div><div>Referenced 4 times</div><div><br></div><div>pml.xsd:  <xsd:attributeGroup name="AG_Ole"></div><div>Defines 5 attributes</div><div>Referenced 2 times</div><div><br></div><div>pml.xsd:  <xsd:attributeGroup name="AG_ChildSlide"></div><div>Defines 2 attributes</div><div>Referenced 3 times</div><div><br></div><div>3) Attribute groups in SML</div><div><br></div><div>Even when attributes are defined by attribute groups, existing</div><div>prose of ISO/IEC 29500-1 does not mention attribute groups.  As</div><div>a result, some attributes are repeated several times.  This DR</div><div>considers such repetition in SML.</div><div><br></div><div>If we create a new subclause for each attribute group and reference if</div><div>from element definitions, we can remove 42 rows from attribute tables</div><div>from existing clauses and introduce 10 attribute rows in new</div><div>subclauses.  Additionally, we need 3 subclause titles and 2 header</div><div>rows in new subclauses.</div><div><br></div><div>sml.xsd:  <xsd:attributeGroup name="AG_RevData"></div><div>Defines 3 attributes</div><div>Referenced 7 times</div><div><br></div><div>sml.xsd:  <xsd:attributeGroup name="AG_AutoFormat"></div><div>Defines 7 attributes</div><div>Referenced 3 times</div><div><br></div><div>4) Attribute groups in WML</div><div><br></div><div>Even when attributes are defined by attribute groups, existing</div><div>prose of ISO/IEC 29500-1 does not mention attribute groups.  As</div><div>a result, some attributes are repeated several times.  This DR</div><div>considers such repetition in WML.</div><div><br></div><div>If we create a new subclause for each attribute group and reference if</div><div>from element definitions, we can remove 12 rows from attribute tables</div><div>from existing clauses and introduce 8 attribute rows in new</div><div>subclauses.  Additionally, we need 3 subclause titles and 2 header</div><div>rows in new subclauses.</div><div><br></div><div>wml.xsd:  <xsd:attributeGroup name="AG_Password"></div><div>Defines 4 attributes</div><div>Referenced 1 time</div><div><br></div><div>wml.xsd:  <xsd:attributeGroup name="AG_SectPrAttributes"></div><div>Defines 4 attributes</div><div>Referenced 2 times</div><div><br></div><div>4) Attribute groups in VML</div><div><br></div><div>Even when attributes are defined by attribute groups, existing</div><div>prose of ISO/IEC 29500-4 does not mention attribute groups.  As</div><div>a result, some attributes are repeated several times.  This DR</div><div>considers such repetition in WML.</div><div><br></div><div>If we create a new subclause for each attribute group and reference if</div><div>from element definitions, we can remove 708 rows from attribute tables</div><div>from existing clauses and introduce 96 attribute rows in new</div><div>subclauses.  Additionally, we need 97 subclause titles and 96 header</div><div>rows in new subclauses.</div><div><br></div><div>vml-main.xsd  <xsd:attributeGroup name="AG_Id"></div><div>Defines 1 attribute</div><div>Referenced 8 times</div><div>vml-main.xsd  <xsd:attributeGroup name="AG_Style"></div><div>Defines 1 attribute</div><div>Referenced 2 times</div><div>vml-main.xsd  <xsd:attributeGroup name="AG_Type"></div><div>Defines 1 attribute</div><div>Referenced 1 time</div><div>vml-main.xsd  <xsd:attributeGroup name="AG_Adj"></div><div>Defines 1 attribute</div><div>Referenced 2 times</div><div>vml-main.xsd  <xsd:attributeGroup name="AG_Path"></div><div>Defines 1 attribute</div><div>Referenced 2 times</div><div>vml-main.xsd  <xsd:attributeGroup name="AG_Fill"></div><div>Defines 2 attributes</div><div>Referenced 2 times</div><div>vml-main.xsd  <xsd:attributeGroup name="AG_Chromakey"></div><div>Defines 1 attribute</div><div>Referenced 2 times</div><div>vml-main.xsd  <xsd:attributeGroup name="AG_Ext"></div><div>Defines 1 attribute</div><div>Referenced 18 times</div><div>vml-main.xsd  <xsd:attributeGroup name="AG_CoreAttributes"></div><div>Defines 9 attributes and inherit 2 attributes.</div><div>Inherited by AG_AllCoreAttributes</div><div>vml-main.xsd  <xsd:attributeGroup name="AG_ShapeAttributes"></div><div>Defines 5 attributes and inherit 3 attributes</div><div>Referenced 1 time</div><div>vml-main.xsd  <xsd:attributeGroup name="AG_OfficeCoreAttributes"<wbr>></div><div>Defines 23 attributes</div><div>Referenced 1 time</div><div>vml-main.xsd  <xsd:attributeGroup name="AG_OfficeShapeAttributes<wbr>"></div><div>Defines 11 attributes</div><div>Referenced 1 time</div><div>vml-main.xsd:  <xsd:attributeGroup name="AG_AllCoreAttributes"></div><div>Inherit 34 attributes</div><div>Referenced 11 times</div><div>vml-main.xsd:  <xsd:attributeGroup name="AG_AllShapeAttributes"></div><div>Inherit 19 attributes</div><div>Referenced 10 times</div><div>vml-main.xsd:  <xsd:attributeGroup name="AG_ImageAttributes"></div><div>Defines 10 atributes</div><div>Referenced 2 times</div><div>vml-main.xsd:  <xsd:attributeGroup name="AG_StrokeAttributes"></div><div>Defines 28 attributes</div><div>Referenced 1 time</div><div><br></div><div><br></div><div>Regards,</div><div>Makoto</div></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">2017-04-08 7:16 GMT+09:00 MURATA Makoto <span dir="ltr"><<a href="mailto:eb2m-mrt@asahi-net.or.jp" target="_blank">eb2m-mrt@asahi-net.or.jp</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Rex,<div><br></div><div>I think that the remaining task for option #3 is very small, and I </div><div>presume that new implementations cannot always avoid </div><div>Transitional.  </div><div><br></div><div>29500-4 repeats attributes too often.  I think that this repetition </div><div>makes the standard less readable.  Note that no other attributes </div><div>are repeated in OOXML.  It is only VML attributes that are </div><div>repeated.</div><div><br></div><div>Which part of the remaining task for option #3 </div><div>needs big efforts?</div><div><br></div><div>Regards,</div><div>Makoto</div></div><div class="gmail_extra"><div><div class="m_-3920745841964012224h5"><br><div class="gmail_quote">2017-04-08 3:15 GMT+09:00 Rex Jaeschke <span dir="ltr"><<a href="mailto:rex@rexjaeschke.com" target="_blank">rex@rexjaeschke.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">In private mail to Murata-san back in January, I identified the following<br>
three options for addressing this DR, listed here in increasing amount of<br>
effort:<br>
<br>
1.      Do nothing. [No effort]<br>
2.      Look at each of the 300+ examples and change them to have the<br>
appropriate parent element. [Some effort]<br>
3.      Look at removing the duplicate specification of all these<br>
attributes, by putting them in their own subclause and having the parent<br>
elements point there. (As I think there are other attribute groups used in<br>
multiple contexts, this option wouldn't make sense unless one<br>
rearranged/consolidated all such groups.) [A big effort]<br>
<br>
As indicated in the DR log, Murata-san supports Option #3.<br>
<br>
After considerable discussion with MS experts, I and MS favor Option #1. As<br>
is, the spec is good enough even if it's not strictly correct; in any event,<br>
examples are informative, not normative. No implementer has reported this as<br>
a problem, so it's not holding up anyone w.r.t conformance, and we presume<br>
new implementers aren't implementing Transitional stuff. We have more<br>
important issues to deal with, so we propose closing this DR without action.<br>
<span class="m_-3920745841964012224m_-299552692025306580HOEnZb"><font color="#888888"><br>
Rex<br>
<br>
</font></span></blockquote></div><br><br clear="all"><div><br></div></div></div><span class="m_-3920745841964012224HOEnZb"><font color="#888888">-- <br><div class="m_-3920745841964012224m_-299552692025306580gmail_signature" data-smartmail="gmail_signature"><br>Praying for the victims of the Japan Tohoku earthquake<br><br>Makoto</div>
</font></span></div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="m_-3920745841964012224gmail_signature" data-smartmail="gmail_signature"><br>Praying for the victims of the Japan Tohoku earthquake<br><br>Makoto</div>
</div>
</div></div></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>