Subject: Yahoo and "Media RSS"

From: "Bob Wyman" <[email-masked]>
Date: Thu, 16 Dec 2004 12:02:09 -0500

Yahoo has recently announced "Media RSS" which is "An RSS module that
supplements the <enclosure> element capabilities of RSS 2.0 to allow for
more robust media syndication". It would seem to make sense for us to
consider how something similar, would be provided within an Atom based
system.

See: "Media RSS" Specification Version .9 (DRAFT)
http://tools.search.yahoo.com/mrss/

Frequently Asked Questions about Media RSS
http://tools.search.yahoo.com/mrss/mrss.html

	bob wyman

---

From: Danny Ayers <[email-masked]>
Date: Thu, 16 Dec 2004 19:09:19 +0100

Correct me if I'm wrong, but it looks a little broken:

 <media:content url="http://www.foo.com/movie.mov" fileSize="12216320"
type="video/quicktime"
    playerUrl="http://www.foo.com/player?id=1111" playerHeight="200"
playerWidth="400"
    isDefault="true" expression="full" bitrate="128" duration="185">

The attributes aren't namespace-qualified, yet aren't defined in the
RSS 2.0 spec.

Does anyone happen to know if this being discussed on a public list
anywhere, or is syndication back in
cloak-and-dagger-then-deploy-loudly land...

Cheeers,
Danny.

-- 

http://dannyayers.com

---

From: Danny Ayers <[email-masked]>
Date: Thu, 16 Dec 2004 19:15:47 +0100

> cloak-and-dagger-then-deploy-loudly land...

My bad, hadn't read faq properly, here's a list:

http://groups.yahoo.com/group/rss-media

-- 

http://dannyayers.com

---

From: Sam Ruby <[email-masked]>
Date: Thu, 16 Dec 2004 15:05:13 -0500

> The attributes aren't namespace-qualified, yet aren't defined in the

They don't need to be defined in the RSS 2.0 spec.  Semantics of 
attributes on an element are defined by the element itself, not by the 
containing document.

- Sam Ruby

---

From: Danny Ayers <[email-masked]>
Date: Thu, 16 Dec 2004 21:12:44 +0100

> attributes on an element are defined by the element itself, not by the

Do you have a reference, please?

What about:

<xx:thing yy:another="elsewhere" />

Where would you expect to the semantics of yy:another to be defined?

Cheers,
Danny.

-- 

http://dannyayers.com

---

From: Graham <[email-masked]>
Date: Thu, 16 Dec 2004 20:40:27 +0000

> Where would you expect to the semantics of yy:another to be defined?

In the yy document, though possibly also in the xx document. 
Un-namespaced attributes are a different thing and a special case. Its 
best to think of them as belonging to a special "namespace:element" 
psuedo-namespace (ie the qname is namespace:element:attr), though 
officially they belong to none at all. Special case, as I said. It's 
all in that errata document.

Graham

---

From: Danny Ayers <[email-masked]>
Date: Thu, 16 Dec 2004 22:00:35 +0100

> In the yy document, though possibly also in the xx document.

Ok, that would be my reading too.

> officially they belong to none at all. 

I accept they're special case, but "best to think of them" doesn't
help much in implementations - according to that SAX trace I posted,
the Yahoo attributes are in the same namespace ('') as the core RSS
2.0 elements.

The RSS 2.0 spec says:
"A RSS feed may contain elements not described on this page, only if
those elements are defined in a namespace."
but is (as far as I can see) silent on attributes, so perhaps the
Yahoo material is perfectly valid, as well as constructs like:

<item number="123">
...

Special case, as I said. It's
> all in that errata document.

Where? I can't find anything that covers this case. 

Cheers,
Danny.

-- 

http://dannyayers.com

---

From: Robert Sayre <[email-masked]>
Date: Thu, 16 Dec 2004 16:03:14 -0500

> Where would you expect to the semantics of yy:another to be defined?

Maybe explaining it in terms of the infoset[0] will help. We are 
interested in two properties:

[namespace name]
[owner element]

<xx:thing yy:another="elsewhere" yetanother="..." />

yy:another: [namespace name]: some namespace
             [owner element]: xx:thing instance

yetanother: [namespace name]:
             [owner element]: xx:thing instance

No "null" namespace, just no value. It is defined only by its owner 
element and local name. It's not sharing a "null" namespace with 
unqualified element names.

Robert Sayre

[0] http://www.w3.org/TR/xml-infoset/#infoitem.attribute

---

From: Danny Ayers <[email-masked]>
Date: Thu, 16 Dec 2004 22:24:23 +0100

> unqualified element names.

Ok, noting that this can be turned around to say an no-namespace
element is defined by its local name and attributes, and does not
share a namespace with other elements.

Which I think leaves the position that both the following would be legal:

<media:thing name="here" />

<item name="here" />

...and also that the code doesn't really care if the namespace has no
value or is null, the namespace component of unqualified elements and
attributes (in SAX in Java at least) have the same value (the empty
string).

Cheers,
Danny.

-- 

http://dannyayers.com

---

From: Sam Ruby <[email-masked]>
Date: Thu, 16 Dec 2004 16:29:54 -0500

> <media:thing name="here" />

The feedvalidator treats this as legal.

> <item name="here" />

The feedvalidator treats this as illegal.  Which has caught more than a 
few mispellings of isPermaLink.

- Sam Ruby

---

From: Danny Ayers <[email-masked]>
Date: Thu, 16 Dec 2004 23:43:37 +0100

> few mispellings of isPermaLink.

You can guess what's coming...how does/should the feedvalidator treat:

<media:content url="http://example.org/song.mp3" />

I can't really see where any special (semantic) relationship should be
assumed for the element/attributes structure compared to the
element/children structure based on the infoset. Personally I would
lean towards having the feedvalidator at least warn on all those
examples above to minimise confusion. Because it could easily get
worse :

<guid isPermaLink="true">...

<media:guid isPermaLink="true">...

<media:guid media:isPermaLink="true">...

<film:guid media:isPermaLink="true">...

<guid media:isPermaLink="true">...

<link isPermaLink="true">... 

<link isPermaLink="possibly">... 

<link media:isPermaLink="true">...

Which are valid? Which of the attributes share the same semantics?

Cheers,
Danny.
-- 

http://dannyayers.com

---

From: Sam Ruby <[email-masked]>
Date: Thu, 16 Dec 2004 18:23:53 -0500

> <media:content url="http://example.org/song.mp3" />

If the element is in an unrecognized namespace, then the whole element 
is treated as valid.

If the element is in a recognized namespace, then the validator 
validates all attributes which are either in no namespace or in a 
recognized namespace.  All others are treated as valid.

> <guid isPermaLink="true">...

known/valid.

> <media:guid isPermaLink="true">...

unknown/valid.

> <media:guid media:isPermaLink="true">...

unknown/valid.

> <film:guid media:isPermaLink="true">...

unknown/valid.

> <guid media:isPermaLink="true">...

unknown/valid.

> <link isPermaLink="true">... 

known/valid

> <link isPermaLink="possibly">... 

known/invalid

> <link media:isPermaLink="true">...

unknown/valid

> Which are valid? Which of the attributes share the same semantics?

Inferring that attributes which are in an explicit namespace are the 
same might be reasonable.  But inferring that attributes which are not 
in a namespace are the same because they happen to be spelled the same 
may produce false positives.

- Sam Ruby

---

From: Danny Ayers <[email-masked]>
Date: Fri, 17 Dec 2004 00:31:12 +0100

> may produce false positives.

I'm a little tired right now so might be missing something obvious,
but if you accept this latter point, then why shouldn't you also
accept the same interpretation for element names - i.e.

<item />
and
<item />

may not actually be the same..?

Cheers,
Danny.

-- 

http://dannyayers.com

---

From: Bill de hÓra <[email-masked]>
Date: Fri, 17 Dec 2004 00:50:55 +0000

> may not actually be the same..?

Because attributes and elements are not treated the same way by XML 
Namespaces, the same interpretation need not apply.

cheers
Bill