- From: Doug Schepers <schepers@w3.org>
- Date: Thu, 19 Mar 2009 09:30:35 -0400
- To: Lee Martineau <lee.martineau@quickoffice.com>
- CC: "public-svg-wg@w3.org" <public-svg-wg@w3.org>
Hi, Lee- This was discussed at great length last year, and we decided that in fact, it is an error. Andrew Emmons was involved in those discussions on behalf of BitFlash, so it's odd to see this come up now. Since SVG Tiny 1.2 is now a Recommendation, it would be really difficult to make such a change now. We did make provision for UA-dependent "recursion buffer" in the spec already (and this is how the circular-reference test is structured). In 14.1.4 Reference restrictions, we say: [[ A circular IRI reference is an error. Because SVG user agents may vary on when they first detect and abort a circular reference, conforming SVG document fragments must not rely upon circular references. ]] Also, SVG Tiny has more forgiving error handling than SVG 1.1; you no longer have to "halt and catch fire", and you can change your error handling as appropriate for each particular type of error. It should be acceptable in the case of recursion for the "highly perceivable indication of error" to be that the UA simply stops rendering the results of the recursion (that is, at the point where your UA detects that this is a problem, you simply don't follow the circular reference anymore). This, in combination with the already permissive wording that leaves it up to the UA to decide when to abort circular references , should give you the flexibility you're after. Please let us know if this resolves your issue. [1] http://www.w3.org/TR/SVGMobile12/linking.html#ReferenceRestrictions Regards- -Doug Lee Martineau wrote (on 3/19/09 8:08 AM): > Hello WG, > > As Cameron said in the March 16 telcon minutes, the objective is to > eliminate having to provide "a highly perceivable indication of > error". > > In an embedded situation, there is generally no capability for > logging or displaying error information to the end user, so any error > condition that can reasonably be handled within the user agent is > simply handled. > > In anticipation of Doug's request for how to soften the circular > reference error processing, I have provided a possible approach > below. > > http://www.w3.org/TR/SVGMobile12/struct.html#UseElement > > Just before the schema is this sentence: > > "However, a set of references that directly or indirectly reference a > [sic] element to create a circular dependency is an error, as > described in the References section." > > How about: > > "However, a set of references that directly or indirectly reference > an element to create a circular dependency must be detected by the > user agent. The user agent may choose to handle the situation as an > error (as described in the References section) or it may continue > rendering until an implementation dependent limit on recursive > processing is reached." > > http://www.w3.org/TR/SVGMobile12/linking.html#ReferenceRestrictions > > Buried in here is: > > "A circular IRI reference is an error." > > How about: > > "A circular IRI reference must be detected by the user agent. Yada > yada..." > > -- Lee Martineau >
Received on Thursday, 19 March 2009 13:30:45 UTC