Re: More on circular references (ACTION-2494)

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