Sam Ruby wrote:
URI(doc) = http://www.w3future.com/weblog/rss.xml?notransform
xml:base = http://w3future.com/weblog/rss.xml?notransform
Ah, ok, I missed that. (Just to be sure, you added www yourself, or is
there a link to the feed somewhere with www in it?)
Your feed is available from both of the URI's mentioned above. The
tinyurl quoted above is based on passing the first one to the feed
validator.
Oh, this is actually interesting. I send a 301 when you use
www.w3future.com. It looks like this is handled transparently by your
http library, giving you the file at w3future.com. In that case it
should be possible to request the actual uri that is used to get the file.
And then there's also the Content-Location header, which sets the base
URI. This is used with content negotiation. F.e. (I haven't actually
implemented this) if you would send a request to
http://w3future.com/weblog/
with the header
Accept: application/atom+xml
I could send you the atom file with this header:
Content-Location: http://w3future.com/weblog/rss.xml?notransform
Afaik this is how the HTTP spec suggest to implement content
negotiation. Then the value of Content-Location should be considered to
be the uri of the document.
Regarding the solution, my first suggestion would be to change the
xml:base to reference the atom document, e.g.:
<link href="." xml:base="http://example.com/blog/feed.atom" />
... which would resolve to http://example.com/blog/. Is that what we
want here?
The original in your example is
<link href="." xml:base="http://example.com/blog/" />.
Not being quite ready to drop the existing suggestion, I simply added
another.
http://www.feedvalidator.org/docs/warning/SameDocumentReference.html
That's what I meant by saying "first suggestion".
--
Sjoerd Visscher
http://w3future.com/weblog/