premis v2.0 and schema munging

In an effort to get a better understanding of PREMIS after reading about the v2.0 release, I dug around for 5 minutes looking for a way to convert an XML Schema to RelaxNG. The theory being that the compact syntax of RelaxNG would be easier to read than the XSD.

I ended up with a little hack suggested here to chain together the rngconv from the Multi-Schema Validator and James Clarke’s Trang, which oddly can’t read an XSD as input.

#!/bin/bash
 
for i in $*
do
  BN=$(basename $i .xsd)
  java -jar /opt/rngconv/rngconv.jar ${i} > /tmp/${BN}.rng
  java -jar /opt/trang/trang.jar -I rng -O rnc /tmp/${BN}.rng ${BN}.rnc
done

The resulting RelaxNG can be seen here. As you can see I’m not sure it helps much…but it’s a start I guess. I’m interested in looking at what it might take to sublimate an PREMIS RDF vocabulary (hopefully just RDFS?) out of the XSD, mainly because I *think* parts of the vocabulary could prove useful in OAI-ORE resource maps.

Tags: , , , , ,

2 Responses to “premis v2.0 and schema munging”

  1. John Cowan Says:

    Trang is intended to produce a conversion that’s isomorphic to the original, whereas the MSV produces a conversion that’s equivalent only in effect. Nobody has written an isomorphism-preserving input module for XSD; I suspect that if James considered it too hard, nobody else has wanted to bother trying. Jing uses Xerces directly for XSD validation, bypassing the RNG engine altogether.

  2. inkdroid » Blog Archive » RepoCamp recap Says:

    [...] inkdroid beep beep « premis v2.0 and schema munging [...]

Leave a Reply

You must be logged in to post a comment.