Re: [SVGMobile12] Question on SVG implementation in an XLink-aware processor

Chris Lilley wrote:
> Such markup is not conformant to the schema for SVGT 1.2, but I assume
> you knew that.

Of course.  But I'm interested in how a non-validating UA (such as Gecko) would 
handle this.

> This use of values for show and actuate which are not licensed by the
> SVG specification is outside the scope of the SVG specification.

Sure.  But it's within the scope of the XLink specification and the XLink 
specification completely defines the behavior.

> Don't do that.

As an author, I don't.  As a UA implementor, I have to assume that authors will 
ignore little things like schema; when that happens I need to know what my UA 
should do.  Is the document in error in this case?  If not, I have to render it. 
  Then the question is "how".

> So your question is really, whether any random combination of XLink
> attributes can be used to override the semantics of any other element.

Yes, and it seems to me that

> I asked this on the XLink public list:
>   http://lists.w3.org/Archives/Public/www-xml-linking-comments/2006JanMar/0113.html
> (using your example, in fact)
> 
> and got this response
>   http://lists.w3.org/Archives/Public/www-xml-linking-comments/2006AprJun/0000.html

Which just says, "Yes, the markup is not conformant to the SVG schema."  Again, 
what does that mean in practice?  Is the document in error?  What does my UA do 
to handle this case?

Also, note that the actuate="onload" case doesn't even depend on the document 
being rendered; it's somewhat analogous to, say, having an <html:script> element 
in the DOM.  While SVG constrains the rendering behavior there (the <script> 
does not render), it does not constrain the semantics (the <script> executes). 
Even if the SVG document is in error, as far as I can tell based on the current 
spec.

So as far as I can tell, as a UA implementor, the actuate="onload" case should 
actuate onload as required by the XLink specification.  I see no provisions for 
doing otherwise, unless I happen to be a UA that completely abandons parsing the 
document and drops the entire DOM as soon as I detect non-conformance to the 
schema being used.

> so, basically, SVG describes what happens when allowed values for a
> particular element are used, consistent with the semantics of that
> element.

Agreed.

> By using non-allowed values, you are making a new language

As I read the XLink specification, authors are allowed to use any 
xlink-namespaced attributes on any elements in any language.  Again, that may 
make the result non-conformant wrt the language's schema.  But what does that 
mean in practice for a UA implementor?

 > Redefining the semantics
> of existing elements seems like poor design, so you would be better
> using elements in a different namespace.

Sure.  I'm not speaking as an author here.  I'm speaking as a UA implementor who 
wants to know how to handle the case of authors using said "poor design".

Again, I see no problem in the SVG specification as it stands; I just wanted to 
be sure there is no problem with Gecko implementing XLink in addition to SVG 
(that is, that they do not place contradictory constraints on what Gecko should 
be doing).  Sounds like they don't -- once we don't match the schema, the SVG 
spec places no constraints, so we should follow the XLink spec.

-Boris

Received on Tuesday, 4 April 2006 14:38:30 UTC