I'm (re)working on the learning object presentation code in CAREO. It currently uses a java class to figure out what sort of stuff it need to do to present a resource associated with a learning object. Some quasi-hackish code, like "if it claims to be a QuickTime movie, double-check the technical.location file extension. If that checks out, assume we're really talking about a QuickTime movie, and try to build a page to display it. Unless it's been uploaded to the ALOHA-managed streaming server, since that will already wrap a page around the file. In that case, just display the file as-is. Otherwise, go ahead and generate a web page, and add the object/embed tags to set up the QuickTime plugin. Feed it appropriate parameters, and return the page."
That goes on for other file types, checking file extensions and technical.format, not really trusting either. If the metadata is entered incorrectly, and someone provides a technical.format of something like "It's a Quicktime Movie" (I actually saw this in the repository!), I need to do stuff to fall back on displaying it based on filename extension. Assuming THAT is correct and standard...
I'm hoping to build an XSLT-based metadata presenter, that will respond to the schema used to store the metadata (IMS 1.2.1 vs. CanCore, vs. IMS CP 1.2 etc...) and build a page to represent the asset/media associated with the object. If it's a content package, I'll also need to generate a table of contents or menu of some sort.