-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
RP - error for preprint ref w/ volume
- Loading branch information
1 parent
2c09239
commit 489f2b9
Showing
8 changed files
with
210 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
11 changes: 11 additions & 0 deletions
11
test/tests/rp/preprint-ref-checks/preprint-ref-volume/fail.xml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
<?oxygen SCHSchema="preprint-ref-volume.sch"?> | ||
<!--Context: mixed-citation[@publication-type='preprint'] | ||
Test: report volume | ||
Message: This preprint reference () has a volume - . That information is either tagged incorrectly, or the publication-type is wrong. --> | ||
<root xmlns:ali="http://www.niso.org/schemas/ali/1.0/" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink"> | ||
<article> | ||
<mixed-citation publication-type="preprint"> | ||
<volume/> | ||
</mixed-citation> | ||
</article> | ||
</root> |
9 changes: 9 additions & 0 deletions
9
test/tests/rp/preprint-ref-checks/preprint-ref-volume/pass.xml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
<?oxygen SCHSchema="preprint-ref-volume.sch"?> | ||
<!--Context: mixed-citation[@publication-type='preprint'] | ||
Test: report volume | ||
Message: This preprint reference () has a volume - . That information is either tagged incorrectly, or the publication-type is wrong. --> | ||
<root xmlns:ali="http://www.niso.org/schemas/ali/1.0/" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink"> | ||
<article> | ||
<mixed-citation publication-type="preprint"/> | ||
</article> | ||
</root> |
157 changes: 157 additions & 0 deletions
157
test/tests/rp/preprint-ref-checks/preprint-ref-volume/preprint-ref-volume.sch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,157 @@ | ||
<schema xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:meca="http://manuscriptexchange.org" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:ali="http://www.niso.org/schemas/ali/1.0/" xmlns:file="java.io.File" xmlns:java="http://www.java.com/" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xlink="http://www.w3.org/1999/xlink" queryBinding="xslt2"> | ||
<title>eLife reviewed preprint schematron</title> | ||
<ns uri="http://www.niso.org/schemas/ali/1.0/" prefix="ali"/> | ||
<ns uri="http://www.w3.org/XML/1998/namespace" prefix="xml"/> | ||
<ns uri="http://www.w3.org/1999/xlink" prefix="xlink"/> | ||
<ns uri="http://www.w3.org/2001/XInclude" prefix="xi"/> | ||
<ns uri="http://www.w3.org/1998/Math/MathML" prefix="mml"/> | ||
<ns uri="http://saxon.sf.net/" prefix="saxon"/> | ||
<ns uri="http://purl.org/dc/terms/" prefix="dc"/> | ||
<ns uri="http://www.w3.org/2001/XMLSchema" prefix="xs"/> | ||
<ns uri="https://elifesciences.org/namespace" prefix="e"/> | ||
<ns uri="java.io.File" prefix="file"/> | ||
<ns uri="http://www.java.com/" prefix="java"/> | ||
<ns uri="http://manuscriptexchange.org" prefix="meca"/> | ||
<xsl:function name="e:isbn-sum" as="xs:integer"> | ||
<xsl:param name="s" as="xs:string"/> | ||
<xsl:choose> | ||
<xsl:when test="string-length($s) = 10"> | ||
<xsl:variable name="d1" select="number(substring($s,1,1)) * 10"/> | ||
<xsl:variable name="d2" select="number(substring($s,2,1)) * 9"/> | ||
<xsl:variable name="d3" select="number(substring($s,3,1)) * 8"/> | ||
<xsl:variable name="d4" select="number(substring($s,4,1)) * 7"/> | ||
<xsl:variable name="d5" select="number(substring($s,5,1)) * 6"/> | ||
<xsl:variable name="d6" select="number(substring($s,6,1)) * 5"/> | ||
<xsl:variable name="d7" select="number(substring($s,7,1)) * 4"/> | ||
<xsl:variable name="d8" select="number(substring($s,8,1)) * 3"/> | ||
<xsl:variable name="d9" select="number(substring($s,9,1)) * 2"/> | ||
<xsl:variable name="d10" select="number(substring($s,10,1)) * 1"/> | ||
<xsl:value-of select="number($d1 + $d2 + $d3 + $d4 + $d5 + $d6 + $d7 + $d8 + $d9 + $d10) mod 11"/> | ||
</xsl:when> | ||
<xsl:when test="string-length($s) = 13"> | ||
<xsl:variable name="d1" select="number(substring($s,1,1))"/> | ||
<xsl:variable name="d2" select="number(substring($s,2,1)) * 3"/> | ||
<xsl:variable name="d3" select="number(substring($s,3,1))"/> | ||
<xsl:variable name="d4" select="number(substring($s,4,1)) * 3"/> | ||
<xsl:variable name="d5" select="number(substring($s,5,1))"/> | ||
<xsl:variable name="d6" select="number(substring($s,6,1)) * 3"/> | ||
<xsl:variable name="d7" select="number(substring($s,7,1))"/> | ||
<xsl:variable name="d8" select="number(substring($s,8,1)) * 3"/> | ||
<xsl:variable name="d9" select="number(substring($s,9,1))"/> | ||
<xsl:variable name="d10" select="number(substring($s,10,1)) * 3"/> | ||
<xsl:variable name="d11" select="number(substring($s,11,1))"/> | ||
<xsl:variable name="d12" select="number(substring($s,12,1)) * 3"/> | ||
<xsl:variable name="d13" select="number(substring($s,13,1))"/> | ||
<xsl:value-of select="number($d1 + $d2 + $d3 + $d4 + $d5 + $d6 + $d7 + $d8 + $d9 + $d10 + $d11 + $d12 + $d13) mod 10"/> | ||
</xsl:when> | ||
<xsl:otherwise> | ||
<xsl:value-of select="number('1')"/> | ||
</xsl:otherwise> | ||
</xsl:choose> | ||
</xsl:function> | ||
<xsl:function name="e:is-valid-issn" as="xs:boolean"> | ||
<xsl:param name="s" as="xs:string"/> | ||
<xsl:choose> | ||
<xsl:when test="not(matches($s,'^\d{4}\-\d{3}[\dX]$'))"> | ||
<xsl:value-of select="false()"/> | ||
</xsl:when> | ||
<xsl:otherwise> | ||
<xsl:variable name="d1" select="number(substring($s,1,1)) * 8"/> | ||
<xsl:variable name="d2" select="number(substring($s,2,1)) * 7"/> | ||
<xsl:variable name="d3" select="number(substring($s,3,1)) * 6"/> | ||
<xsl:variable name="d4" select="number(substring($s,4,1)) * 5"/> | ||
<xsl:variable name="d5" select="number(substring($s,6,1)) * 4"/> | ||
<xsl:variable name="d6" select="number(substring($s,7,1)) * 3"/> | ||
<xsl:variable name="d7" select="number(substring($s,8,1)) * 2"/> | ||
<xsl:variable name="remainder" select="number($d1 + $d2 + $d3 + $d4 + $d5 + $d6 + $d7) mod 11"/> | ||
<xsl:variable name="calc" select="if ($remainder=0) then 0 else (11 - $remainder)"/> | ||
<xsl:variable name="check" select="if (substring($s,9,1)='X') then 10 else number(substring($s,9,1))"/> | ||
<xsl:value-of select="$calc = $check"/> | ||
</xsl:otherwise> | ||
</xsl:choose> | ||
</xsl:function> | ||
<xsl:function name="e:get-name" as="xs:string"> | ||
<xsl:param name="name"/> | ||
<xsl:choose> | ||
<xsl:when test="$name/given-names[1] and $name/surname[1] and $name/suffix[1]"> | ||
<xsl:value-of select="concat($name/given-names[1],' ',$name/surname[1],' ',$name/suffix[1])"/> | ||
</xsl:when> | ||
<xsl:when test="not($name/given-names[1]) and $name/surname[1] and $name/suffix[1]"> | ||
<xsl:value-of select="concat($name/surname[1],' ',$name/suffix[1])"/> | ||
</xsl:when> | ||
<xsl:when test="$name/given-names[1] and $name/surname[1] and not($name/suffix[1])"> | ||
<xsl:value-of select="concat($name/given-names[1],' ',$name/surname[1])"/> | ||
</xsl:when> | ||
<xsl:when test="not($name/given-names[1]) and $name/surname[1] and not($name/suffix[1])"> | ||
<xsl:value-of select="$name/surname[1]"/> | ||
</xsl:when> | ||
<xsl:otherwise> | ||
<xsl:value-of select="'No elements present'"/> | ||
</xsl:otherwise> | ||
</xsl:choose> | ||
</xsl:function> | ||
<xsl:function name="e:get-copyright-holder"> | ||
<xsl:param name="contrib-group"/> | ||
<xsl:variable name="author-count" select="count($contrib-group/contrib[@contrib-type='author'])"/> | ||
<xsl:choose> | ||
<xsl:when test="$author-count lt 1"/> | ||
<xsl:when test="$author-count = 1"> | ||
<xsl:choose> | ||
<xsl:when test="$contrib-group/contrib[@contrib-type='author']/collab"> | ||
<xsl:value-of select="$contrib-group/contrib[@contrib-type='author']/collab[1]/text()[1]"/> | ||
</xsl:when> | ||
<xsl:otherwise> | ||
<xsl:value-of select="$contrib-group/contrib[@contrib-type='author']/name[1]/surname[1]"/> | ||
</xsl:otherwise> | ||
</xsl:choose> | ||
</xsl:when> | ||
<xsl:when test="$author-count = 2"> | ||
<xsl:choose> | ||
<xsl:when test="$contrib-group/contrib[@contrib-type='author']/collab"> | ||
<xsl:choose> | ||
<xsl:when test="$contrib-group/contrib[@contrib-type='author'][1]/collab and $contrib-group/contrib[@contrib-type='author'][2]/collab"> | ||
<xsl:value-of select="concat($contrib-group/contrib[@contrib-type='author']/collab[1]/text()[1],' & ',$contrib-group/contrib[@contrib-type='author']/collab[2]/text()[1])"/> | ||
</xsl:when> | ||
<xsl:when test="$contrib-group/contrib[@contrib-type='author'][1]/collab"> | ||
<xsl:value-of select="concat($contrib-group/contrib[@contrib-type='author'][1]/collab[1]/text()[1],' & ',$contrib-group/contrib[@contrib-type='author'][2]/name[1]/surname[1])"/> | ||
</xsl:when> | ||
<xsl:otherwise> | ||
<xsl:value-of select="concat($contrib-group/contrib[@contrib-type='author'][1]/name[1]/surname[1],' & ',$contrib-group/contrib[@contrib-type='author'][2]/collab[1]/text()[1])"/> | ||
</xsl:otherwise> | ||
</xsl:choose> | ||
</xsl:when> | ||
<xsl:otherwise> | ||
<xsl:value-of select="concat($contrib-group/contrib[@contrib-type='author'][1]/name[1]/surname[1],' & ',$contrib-group/contrib[@contrib-type='author'][2]/name[1]/surname[1])"/> | ||
</xsl:otherwise> | ||
</xsl:choose> | ||
</xsl:when> | ||
|
||
<xsl:otherwise> | ||
<xsl:variable name="is-equal-contrib" select="if ($contrib-group/contrib[@contrib-type='author'][1]/@equal-contrib='yes') then true() else false()"/> | ||
|
||
<xsl:value-of select="concat(e:get-surname($contrib-group/contrib[@contrib-type='author'][1]),' et al')"/> | ||
</xsl:otherwise> | ||
</xsl:choose> | ||
</xsl:function> | ||
<xsl:function name="e:get-surname" as="text()"> | ||
<xsl:param name="contrib"/> | ||
<xsl:choose> | ||
<xsl:when test="$contrib/collab"> | ||
<xsl:value-of select="$contrib/collab[1]/text()[1]"/> | ||
</xsl:when> | ||
<xsl:otherwise> | ||
<xsl:value-of select="$contrib//name[1]/surname[1]"/> | ||
</xsl:otherwise> | ||
</xsl:choose> | ||
</xsl:function> | ||
<pattern id="preprint-ref-checks-pattern"> | ||
<rule context="mixed-citation[@publication-type='preprint']" id="preprint-ref-checks"> | ||
<report test="volume" role="error" id="preprint-ref-volume">[preprint-ref-volume] This preprint reference (<value-of select="if (ancestor::ref/@id) then concat('id ',ancestor::ref/@id) else 'no id'"/>) has a volume - <value-of select="volume"/>. That information is either tagged incorrectly, or the publication-type is wrong.</report> | ||
</rule> | ||
</pattern> | ||
<pattern id="root-pattern"> | ||
<rule context="root" id="root-rule"> | ||
<assert test="descendant::mixed-citation[@publication-type='preprint']" role="error" id="preprint-ref-checks-xspec-assert">mixed-citation[@publication-type='preprint'] must be present.</assert> | ||
</rule> | ||
</pattern> | ||
</schema> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters