If you are generating XSPF, your playlist should be valid according to one of the tools listed below. This is crucial for interoperability. Please take it seriously, despite the inconvenience.
(Unix) xmlstarlet validate -e -r xspf-1_0.7.rng myplaylist.xspf (Windows) xml.exe validate -e -r xspf-1_0.7.rng myplaylist.xspfThere also exists a schema for XSPF-0, but working with XSPF-1 should be preferred.
(Unix) rnv xspf-1_0.7.rnc myplaylist.xspf (Windows) rnv xspf-1_0.7.rnc myplaylist.xspfThere also exists a schema for XSPF-0, but working with XSPF-1 should be preferred.
(Unix) cat myplaylist.xspf | xspf_check - (Windows) xspf_check - < myplaylist.xspf
(Unix) xmlstarlet validate -e -s xspf-1_0.2.xsd myplaylist.xspf (Windows) xml.exe validate -e -s xspf-1_0.2.xsd myplaylist.xspf
Note: The above XML Schema (XSD) is not fully spec compliant and therefore deprecated. Please use the Relax NG schema instead if you can. Since the XSD schema language is not powerful enough to express the XSPF specification there will never be a correct XSD schema for XSPF. Please see the mailing list archive for the discussion on this topic.