Change the xslt to a pattern matching rather than procedural idiom,
split into several files, (will make it a tiny bit more readable)
and base the tests on fragments of pbcore documents, rather than the whole thing.
add ntriples or turtle to fixtures: If a code change makes a difference in behavior, we need to be able to understand that change: rdf xml is not particularly human readable.
generate pbcore back from the rdf. We need to make sure this is possible. For the fixture, consider checking in a diff between the input and output xml.
The use fragments is an option but always comes the time to check that all pieces come together nicely.
I personally do not agree that RDF/XML is not human readable, I think this is more subjective than objective, but I agree there are different tastes according to developers
Transformation from and to (next requirement in the list) is probably easier (incl. validation of the results starting with first pass on well-formedness) from RDF/XML than Turtle or nTriple.
@afred : how does this look to you?
Thoughts about next directions: