XSPF provides a schema definition file that uses Relax NG.
The latest schema file is xspf-draft8.rng, and the example playlist to go with that is playlist.xml.
Please note that the schema definition does not match draft 8 completely. There are some notes at the top of the schema that outlines problems with respect to draft 8. Hopefully we can come up with draft 9 soon and write a schema that actually matches it. :-)
This schema allows for namespace extensions to be added and still have the document validate correctly: xspf-draft-8-ext.rng, and the example playlist to go with that is playlist-ext.xml.
For an explanation of this schema, please see this mailing list post.
To validate your XSPF playlists with the above schemas, we suggest using Jing.