- From: Don <dlarson@cgmlarson.com>
- Date: Mon, 26 Jan 2009 10:03:34 -0600
- To: Lofton Henderson <lofton@rockynet.com>, David Cruikshank <dvdcruikshank@gmail.com>, WebCGM WG <public-webcgm-wg@w3.org>
- cc: CGM Open WebCGM TC <cgmo-webcgm@lists.oasis-open.org>
Lofton,
> Dave,
> I think you missed Forrest's later message about this:
> http://lists.oasis-open.org/archives/cgmo-webcgm/200901/msg00057.html
> He pointed this out: dashLength is a sub-element of lineEdgeTypeDef.
> I.e., it is an element in the content model of lineEdgeTypeDef. Forrest
> is correct, according to the DTDs. Therefore, dashLength should precede
> the close tag of lineEdgeTypeDef.
I did see Forrest's email but we have 2 different interpretations on this.
Forrest's encoding would be this:
<webcgmConfig
<lineEdgeTypeDef lineIndex="1" repeatLength="100"
<dashLength>"10 2 5 2"</dashLength>
</lineEdgeTypeDef>
</webcgmConfig>
Whereas Dave says this is what he meant:
<webcgmConfig
<lineEdgeTypeDef lineIndex="1" repeatLength="100"
</lineEdgeTypeDef>
<dashLength>10</dashLength>
<dashLength>2</dashLength>
<dashLength>5</dashLength>
<dashLength>2</dashLength>
</webcgmConfig>
I think it's logical for dashLength to be sub element and a single
string as Forrest has it but I don't think that is what the spec
says now.
Don
> That aside, I agree that it is a matter of taste whether to make things
> attributes or elements. I'm not one (XML expert), but I understand that
> XML experts fight religious wars about element-or-attribute. Myself, I'm
> content to live with your choice (or any other).
> However, there is another issue to clarify
> It [2] says: "The dashLength element is a string, in the encoding of the
> ACI file, that contains a list of non-negative integers in the format of
> the WebCGMString List-of-number subtype. The integers specify the lengths
> of each dash andgap in the defined line pattern in abstract units, that
> are then normalized as a whole pattern to the repeatLength attribute of
> lineEdgeTypeDef. The first integer corresponds to solid, the second to
> gap, the third to solid, etc."
> That seems to clearly say that you can put the whole sequence into the
> CDATA content of one dashLength element.
> So this raises a new issue for clarification: since the content model
> says dashLength+, then what happens with 2 (or 3, or more) occurrences of
> dashLength?
> 1.) last one wins;
> 2.) or, the integer list accumulates.
> Your example (below) would suggest #2.
> Thoughts?
> (I'll redirect your answer if you like.)
> -Lofton.
> [1] http://lists.oasis-open.org/archives/cgmo-webcgm/
> [2]
> http://www.w3.org/Graphics/WebCGM/drafts/current-editor-21/WebCGM21-Config
> .html#ACI-ledtdef
>
> At 05:12 PM 1/25/2009 -0700, David Cruikshank wrote:
> [...redirected to TC list by Lofton...]
> I can't respond to the TC email list, so I'm sending my response this way.
> Don asked about the content model for the aci:
>
>
> I'm directing this question to you since you created the ACI DTD and
> perhaps could shed some light on this and at the same time confirm my XML
> coding. dashLength is defined as an Element rather than as an Attribute of
> lineEdgeTypeDef, thus an example the the XML encoding I believe would be-
> <webcgmConfig <lineEdgeTypeDef lineIndex="1" repeatLength="100"
> </lineEdgeTypeDef> <dashLength>"10 2 5 2"</dashLength> </webcgmConfig>
> However it seems more natural for dashLength to be an Attribute and coded
> like this: <webcgmConfig <lineEdgeTypeDef lineIndex="1"
> repeatLength="100" dashLength="10 2 5 2" </lineEdgeTypeDef>
> </webcgmConfig> This also applies to the directionVectors and gapWidth
> Elements assocaited with the hatchStyleDef. My response:
> When things are repeatable, I've tended to make them repeating elements as
> opposed to attributes. I think the correct encoding for your example is:
>
> <webcgmConfig
> <lineEdgeTypeDef lineIndex="1" repeatLength="100"
> </lineEdgeTypeDef>
> <dashLength>10</dashLength>
> <dashLength>2</dashLength>
> <dashLength>5</dashLength>
> <dashLength>2</dashLength>
> </webcgmConfig>
> Remember dashLength is specified as "dashLength+". That way no parsing is
> required to figure out the values.
> If people want parse, it's ok but this was an attempt to simplify the
> work.
>
> Dave
Received on Monday, 26 January 2009 16:04:11 UTC