Added By: Feedage Forager | ![]() |
Language: English | |
Tags: | |
approach danny date document doesn element elements essentially namespace opml org elements purl org qualified namespace xml | |
Rate this Feed![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Comments (0) |
Feed Details and Statistics ![]() |
Updated: 2016-10-24T13:44:47Z
-0001-11-30T00:00:00Z
Phil: Thanks for the practical example… I was wondering how many blogs I’d need to click through before I found something concrete. (Answer: four.)
Am I the only one wondering why they didn’t just come up with generic @data-type and @humanname attributes to ride atop other elements? Despite all this Creative Commons stuff, it seems kinda hostile to found the extension on the notion of repurposing other folks’ elements.
I dunno… I could easily be wrong, but isn’t it a bit screwed up that I could pull out all of the dc:dates in a document and discover that one or more of them is carrying the string ”My Very Kewl Date” as its content?
-0001-11-30T00:00:00Z
It sure seems odd to me. I was a little surprised to find that the validator doesn’t choke on such a thing. Apparently we don’t actually have anything that says what the content of dc:date
should be, only what the content of
should be, and once you insert one of your own elements in that chain, you then own the right to specify the contents of child elements that are in someone else’s namespace. If I had to point to a bit in some spec which says that’s the case, I’d be very hard pressed to find anything. I’m assuming that Microsoft has any number of people who know far more about XML than a completely self-taught amateur like me, so I guess it’s probably right, but it sure doesn’t feel right.
-0001-11-30T00:00:00Z
RSS has had lists (trees, tables etc etc) since 2000, remember RDF?
”…you then own the right to specify the contents of child elements that are in someone else’s namespace…” – where’s that from? It seems way off the mark. See XML Namespaces: ”These considerations require that document constructs should have universal names, whose scope extends beyond their containing document.” The key word being *Universal*.
The DC spec says ”Recommended best practice for encoding the date value is defined in a profile of ISO 8601 [W3CDTF] and includes (among others) dates of the form YYYY-MM-DD.”
I agree the data typing does seem strange, Roger’s suggestion would make more sense (see: @rdf:datatype, @rdfs:label).
-0001-11-30T00:00:00Z
PS. the sorting/typing approach seems to be essentially that of architectural forms. Very few XML formats I’m aware of follow this approach, as it requires the extra layer of interpretation.
OPML is a notable exception, except it lacks a useful way of declaring the interpretation in a globally unambiguous fashion – essentially type=”xxx” is whatever you like (as long as Dave approves, anyone paranoid about lock-in should take note).
-0001-11-30T00:00:00Z
You’re being extraordinarily charitable in saying that ”I’m assuming that Microsoft has any number of people who know far more about XML than a completely self-taught amateur like me, so I guess it’s probably right.” This example qualifies as a clever hack at best, and severe namespace abuse at worst. This because RSS has a namespace as well, although I gather there is some controversy as to what it should be. So the ”title” tag is qualified with a namespace, creating a unique name with specific semantics. Just sticking that same tag somewhere else with different semantics is just plain wrong, hence the problem you are encountering.
More correct would be something like:
etc.
The first example doesn’t specify a namespace prefix, so it should be assumed that it is qualified with the default namespace of the current document (i.e. the RSS namespace). In the second example, the Dublin Core namespace is specified explicitly, so ”ab732e5:date” wouldn’t match, nor should it. It’s a totally different tag.
Furthermore, it should be noted that the approach of ignoring tags outside of the document’s default namespace is part of RSS 2.0, not XML itself. Thus it is unfair to use this as proof that XML namespaces are broken (I really don’t believe they are). In fact, I’m not even averse to taking the RSS 2.0 approach to namespace (RELAX NG, for instance, does the same). People just need to understand that when you see a naked local name like ”title”, it is invisibly qualified by a namespace, and act accordingly.
In terms of your RSS parsing hack, can’t you just set the title from the first (i.e. correct) title tag and ignore any subsequent tags if the value is already set?
-0001-11-30T00:00:00Z
I hadn’t looked at the white paper yet, but oh lordy that’s awkward. Sorry, I know I’m an RDFer and in this world, we should be seen and not heard–wait, we should be not see or heard–but lordy that’s clunky.
Matthew, Phil can qualify his work and add yet more conditions to his processing, but seems to me that Microsoft has said that its extensions wouldn’t impact on those who weren’t interested in the data.
Seems to me this is an impact.
-0001-11-30T00:00:00Z
Errm, the RSS 2.0 vocabulary does not have a namespace, there’s no default namespace declaration, ”invisible” qualification doesn’t appear anywhere in any of the relevant specs.
There is an issue here though – it isn’t clear whether the MS spec is talking about local name ”date”, qname ”dc:date” or full name ”http://purl.org/dc/elements/1.1/date”.
-0001-11-30T00:00:00Z
[Sorry, out of sequence there – I was responding to Matthews comment]
-0001-11-30T00:00:00Z
OPML is a notable exception, except it lacks a useful way of declaring the interpretation in a globally unambiguous fashion – essentially type=”xxx” is whatever you like (as long as Dave approves, anyone paranoid about lock-in should take note).
If you were in the beta test for OPML Editor, you’d see that Dave’s encouraging people to extend OPML with new values for type.
I’ve been wondering when an RSS 1.0 advocate would start talking about how it can be used to specify the sequence of RSS items. I don’t know this new Simple List proposal well enough to see if they’re essentially doing the same thing as that Seq element.
-0001-11-30T00:00:00Z
Oh, well, we can just skip threading this time around ;)
Sadly true that RSS 2.0 has no namespace, an albatross I wear around my neck. Not really a problem in this case, though: when you speak of ”the title element in no namespace” you mean the RSS title, when you speak of ”the title element in the http://example.com/foo namespace” you mean another.
However, ab732e5:date
is a problem. Just because you write your XML file with dc:date
doesn’t mean it will retain those exact characters. Any intermediary along the way, say an OS-level parser, is completely free and utterly correct to reserialize your
as
, and it isn’t required to do string matching in attribute values and change them. So the only way I can see to point at another element in an XML document without using the element itself would be with the awkward
At which point the format designer says ”Dude, if you can’t keep track of a stack of open elements so you know whether you’re getting the element where it should be or somewhere else, you should probably give up on parsing XML.”