The stylesheet assumes all vc:agent can be output as vra:creator. The ontology isn’t much broader, allowing agents to be either a vra:creator or a vra:author (in itself a peculiar distinction). However the ontology does allow there to be 26 kinds of vra:creator, so why not build this into the transform? Perhaps an xsl:choose with 26 conditions outputting 26 distinct properties, then an xsl:otherwise to catch all roles that aren’t one of the 26 and output them using the property vra:creator.
The stylesheet assumes all vc:agent can be output as vra:creator. The ontology isn’t much broader, allowing agents to be either a vra:creator or a vra:author (in itself a peculiar distinction). However the ontology does allow there to be 26 kinds of vra:creator, so why not build this into the transform? Perhaps an xsl:choose with 26 conditions outputting 26 distinct properties, then an xsl:otherwise to catch all roles that aren’t one of the 26 and output them using the property vra:creator.