proposed changes to ACI chapter

All--

Action:
-----
Please reply on list to this message:  approve proposed changes; or 
disapprove and state your reasons.

What:
-----
Following the Wednesday telecon, Dave and a small quality verification task 
team have looked at Ch.9, the ACI specification and its dtd.  The good news 
is that it appears to be sound now.  However, the group recommends some 
simple changes before 2nd LCWD review.

Details:
-----
For seven elements under the (XML) defaultAttributes element, the (XML) 
attributes associated with the element are optional and a default is 
given.  Consider for example the lineJoin ACI element [1]:

[1] 
http://www.w3.org/Graphics/WebCGM/drafts/current-editor-21/WebCGM21-Config.html#ACI-linejoin

<!ELEMENT lineJoin EMPTY >
<!ATTLIST lineJoin
           lineJoinInd ( 1 | 2 | 3 | 4 ) "1"
 >

While this is not incorrect or illegal, strictly speaking, on the other 
hand it is not sensible when viewed from the perspective of the purpose of 
the defaultAttributes element.  For example, it would allow:

<lineJoin></lineJoin>

and that construct would mean that the viewer should use the dtd's default 
value for lineJoinInd, "1" ('unspecified'),  in rendering.  That value is 
in fact the CGM:1999 default value for the LINE JOIN element, so the 
element is essentially an no-op.

But  the ACI defaultAttributes element was added to webcgm precisely to tie 
down such underspecified values, and enable uniform viewer results when 
dealing with the underspecified CGM:1999 defaults.  I.e., if someone is 
putting a lineJoin element into the ACI file, then the goal presumably is 
to nail down "unspecified" and tell the viewer to use a particular one of 
the other 3 well-defined values (which are the legal ways to handle 
"unspecified").  So the optionality and defaulting of the lineJoinInd 
attribute does not make sense for this group of elements.

It makes more sense to require the lineJoinInd attribute whenever the 
lineJoin element is present.

Proposal:
-----
Change the specification to:

<!ELEMENT lineJoin EMPTY >
<!ATTLIST lineJoin
           lineJoinInd ( 1 | 2 | 3 | 4 ) #REQUIRED
 >

If the ACI has a lineJoin element, it must have a lineJoinInd attribute.

This proposal would similarly be applied to:  lineCap, edgeCap, lineJoin, 
edgeJoin, lineTypeCont, edgeTypeCont, restrTextType.

Additional:
-----
Each of these elements also has something like this at the end of it 
definition:  "The default value is '1' or 'unspecified'."

I would change these occurrences to:
"Note (informative):  in the CGM:1999 specification, the default value for 
the associated CGM LINE JOIN Attribute element is "1 (unspecified)."

It would also be acceptable to simply delete them (speak up if you have a 
preference here.)

Tests:
-----
No ACI tests are affected.

Summary:
-----
Please reply with:  approval of this proposal; or, disapproval and your 
reasons.

Regards,
-Lofton.

Received on Friday, 22 May 2009 14:54:30 UTC