Changes

Jump to: navigation, search

XSPF v1 Notes and Errata

2,853 bytes added, 05:22, 25 January 2010
Fix whitespace collapse example
and ''trackNum'' and your XSPF will be fine.
== Absolute vs. relative URIs in key attibutes attributes ==
The attributes ''rel'' (<meta> and <link>) and ''application'' (<extension>)
are by XSPF v1 specification allowed to hold relative URIs. For example this
=== Ignore in non-leaf elements ===
Whitespace in elements only holding child elements (but no text)
must be ignored.
will become
ABC DEF GHI DEF
Elements affected:
This means:
* You can use IPv6 host part URIs in XSPF v1
* You can should use a RFC 3986 parser for your XSPF v1 implementation == <playlist.location> and privacy ==Saving an absolute file location in ''playlist.location'' as is not a good idea as it has potential to hurt privacy. To give an example this playlist location <location>file:///home/bob/porn/soundtrack/ginawild34.xspf</location> might reveal information that Bob would have liked to keep private.This problem is not very XSPF-specific actually, for instance [https://bugs.launchpad.net/inkscape/+bug/168958 Inkscape does this wrong with SVG]. == <playlist.location> vs. xml:base == === playlist.location ===.. contains the (possibly relative) URI recommended to retrieve the surrounding playlist (or an updated version of it). playlist.location is ''not'' an embedded base URI used to resolve relative URIs, ''[[#xml:base|xml:base]]'' is. ''playlist.location'' can be thought of as XSPF's counterpart to [http://tools.ietf.org/html/rfc4287 Atom]'s [http://tools.ietf.org/html/rfc4287#section-4.1.1 ''feed.link''] element:  atom:feed elements SHOULD contain one atom:link element with a rel attribute value of "self". This is the preferred URI for retrieving Atom Feed Documents representing this Atom feed. === xml:base ===.. is an xml-wide attribute defined in [http://www.w3.org/TR/xmlbase/ XML Base].The ''xml:base'' attribute can appear in any element. The Base URI for an elementis computed from ''the stack of xml:base attributes''.The URI in ''xml:base'' can be relative so you will need an ''external Base URI''as a ''backup'' (from [http://www.w3.org/TR/xmlbase/#rfc2396 XML Base, 4.1]): # <s>The base URI is embedded in the document's content.</s># The base URI is that of the encapsulating entity (message, document, or none).# The base URI is the URI used to retrieve the entity.# The base URI is defined by the context of the application. Here is an example of ''xml:base'' in XSPF:  <?xml version="1.0" encoding="UTF-8"?> <playlist version="1" xmlns="http://xspf.org/ns/0/" xml:base="one/"> <trackList xml:base="two/"> <track xml:base="../../three/"> <location>four</location> </track> </trackList> </playlist> If our ''external Base URI'' would be http://example.org/ the location above wouldresolve to http://example.org/three/four. Though XML Base is mentioned in the XSPF specification, the ''xml:base'' attribute is not mentioned explicitly. Both XSPF-0 and XSPF-1 support the ''xml:base'' attribute and your implementation of XSPF should do as well. == Role of track creator == The //playlist/trackList/track/creator element is defined as "name of the entity (author, authors, group, company, etc) that authored the resource." However this leaves ambiguity as to the difference between performer and author. Please note that this element might contain any one of the performer, newsreader, composer, author, etc.
= Errata =
It also reads "xspf:playlist elements MAY contain exactly one" which
does not make sense for the content of an element and can be safely ignored.
 
[[Category:XSPF]]
1
edit

Navigation menu