In reply to:

Since XML also allows us to specify a XSLT tranformation that we want to apply to the XML, we can also have the rendering from XML into HTML suitable for a browser to work with, done on-the-fly by the client, provided we put a reference to the XSLT file in the XML file we produce and that have a web browser thats up to date enough to be able to transform the XML file using the XSLT reference in the XML.




number6, I think this is where everyone else is getting lost. The XML stuff is just data. The XSLT tells the browser how to view the data.

If you don't get it, take a look at crocklobster's post earlier in this thread with the attached xml/xslt files. Throw both of those files in notepad and you'll see that the 101.xml file is just a list of a few tracks wrapped in some basic tags. And at the top it points to listEntries.xsl. The XSLT file is similar to Jazzwire's template design except it's a little more confusing. But all the HTML is there and it's pretty easy to understand and edit. The best part is that the XSLT file doesn't have to be HTML, it can be anything, like a CSV or ABC, etc... However you want to represent the playlist data in the future, then just provide a proper XSLT file and you're done. This is much cleaner then asking Mark to add different handlers for everything we want supported.

As far as what the final XML file should look like, I think a good start is the XML that is output from a shoutcast server. It has a lot of good information about the current status of the server plus recently played songs and some other info which is nice. I'd like to see as much info as possible in an XML file that I can parse from somewhere else. I dunno, it'd be cool to plug in my empeg on the network and have a cheesy PHP script (on another webserver obviously) grab the XML file and update a webpage with stats from the empeg.

I know, that last part is well beyond the basic template plan. But the XML/XSLT method isn't as compilcated as you might think. An XSLT file is just a template file for the XML data.

later,
ajay