- From: Jon Ferraiolo <jon.ferraiolo@adobe.com>
- Date: Tue, 07 Jun 2005 12:12:11 -0700
- To: Andrew Sledd <Andrew.Sledd@ikivo.com>, www-svg@w3.org
- Message-id: <6.1.1.1.2.20050607112916.03ee6780@mailsj-v1.corp.adobe.com>
At 04:40 AM 6/7/2005, Andrew Sledd wrote:
>Hello,
>The processing of references (section 14.1) seems clear in its
>presentation but is a bit convoluted in practice, especially when combined
>with error processing. It appears to me that the SVG spec only sets
>restrictions on the resultant reference. The SVG spec defers completely to
>the IRI/URI reference for requirements on reference resolution.
>
>I have a question about interpretation and reference resolution, in
>particular about the reference xlink:href="". What does the reference
>resolve to? Is it valid for image in the SVG Tiny Profile? Is it valid for
>use and animation in the SVG Tiny Profile?
>
>I interpret the specs (SVG 1.2/IRI/URI) to say as follows:
>1) xlink:href="" resolves to a reference to the document itself (if no
>other xml:base attribute is explicitly given in the ancestors to the
>referencing element).
Andrew,
I think xlink:href="" is an error. The attribute definition references RFC
2396 [http://www.faqs.org/rfcs/rfc2396.html]. Reading through that RFC,
when you get to relative URIs in section 5, it says:
rel_path = rel_segment [ abs_path ]
rel_segment = 1*( unreserved | escaped |
";" | "@" | "&" | "=" | "+" | "$" | "," )
The key thing is the "1*", which looks to me as if there must be at least
one character in a relative URI.
Furthermore, even if "" were a valid relative URI, then I contend it would
still not reference the document itself. To illustrate, let's say the
current document has a URI of http://example.com/foo.svg. Then according to
section 5.2 of RFC 2396, step 6a, for relative URI processing, it says:
All but the last segment of the base URI's path component is
copied to the buffer. In other words, any characters after the
last (right-most) slash character, if any, are excluded.
Therefore, assuming for the moment that it is not error, an attribute value
of xlink:href="" would resolve to "http://example.com/", not
"http://example.com/foo.svg".
But there are greater URI experts around. (I am surprised none of them have
spoken up so far.)
Jon
>2) In terms of IRI processing (Section 14.1.1) this is both a local
>reference and for the scope of <image> and <use> is an indirect circular
>reference.
>
> From this I conclude that xlink:href="" to be invalid and put the
> document in error
>a) for <use> and <animation>; except in the case where its resolved
>xml:base breaks this inherent circular reference
>b) for <image>; except in the case where its resolved xml:base is a
>non-local reference
>
>Is this reasoning correct?
>
>Regards,
>Andy Sledd
>
>_______________________________________
>Andrew Sledd
>Ikivo AB
Received on Tuesday, 7 June 2005 19:17:08 UTC