Hello!
In the modsrdf.xsl XSLT file, I noticed that the variable declaration
xsl:variable name="resourceTypeClass"
line 1829 (or nearby) probably could be removed for clarity. Instead, two
lines further down, one could replace
xsl:value-of select="concat($resourceTypeURI,$resourceTypeClass)"
with the content of the declaration of $resourceTypeParts because the
for-each used to create
xsl:variable name="resourceTypeParts"
on lines 1824 to 1828 populates the $resourceTypeParts variable with an
already concatenated string (not with a sequence). Furthermore, (at least)
one of the vertical bars in the RegEx on line 1825 could be remove. I do
not know either in which cases we need any vertical bar. In other words,
removing the resourceTypeClass and resourceTypeParts variable
declarations, we could write the rdf:type element similarly to:
xsl:element name="rdf:type"
xsl:attribute name="rdf:resource"
xsl:value-of select="$resourceTypeURI" /
xsl:for-each select="tokenize(.,'[\s|,\-]')"
xsl:value-of select="concat(upper-case(substring(.,1,1)),substring(.,2))" /
/xsl:for-each
/xsl:attribute
/xsl:element
In the code above, I intentionally removed the greater-than and less-than
characters for the sake of readability in "older" e-mail user agents.
I also consider that the two following tests
xsl:if test="@collection"
and
xsl:if test="@manuscript"
could be rewritten for readability and expansibility with a for-each.
xsl:for-each select="@manuscript|@collection"
The value-of could then be rewritten similarly to:
xsl:value-of select="concat($resourceTypeURI,concat(upper-case(substring(name(.),1,1)),substring(name(.),2)))"
Regards!
SaaĊĦha,
|