Following a very useful discussion with Mike Taylor (see comments on this post), I have split the validation of RIOXX records into two stages:
a basic syntax check, following less strict rules and constraints than the full RCUK requirements a strict validation check against the full RCUK requirements The reason for doing this is to allow implementers to check that their software is correctly set-up. For example, if a RIOXX-enabling plugin for a repository is correctly configured, but the repository's metadata holds values for the 'version' which are not from the RCUK-approved vocabulary for versions, then records from that repository will fail the full RCUK validation test.