-
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 - warning for journal refs with editors
- Loading branch information
1 parent
742b5f3
commit 888043a
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/journal-ref-checks/journal-ref-editor/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="journal-ref-editor.sch"?> | ||
<!--Context: mixed-citation[@publication-type='journal'] | ||
Test: report person-group[@person-group-type='editor'] | ||
Message: This journal reference () has an editor person-group. This info isn;t typically included in journal refs. Is it really a journal ref? Does it really contain editors? --> | ||
<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="journal"> | ||
<person-group person-group-type="editor"/> | ||
</mixed-citation> | ||
</article> | ||
</root> |
157 changes: 157 additions & 0 deletions
157
test/tests/rp/journal-ref-checks/journal-ref-editor/journal-ref-editor.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="journal-ref-checks-pattern"> | ||
<rule context="mixed-citation[@publication-type='journal']" id="journal-ref-checks"> | ||
<report test="person-group[@person-group-type='editor']" role="warning" id="journal-ref-editor">[journal-ref-editor] This journal reference (<value-of select="if (ancestor::ref/@id) then concat('id ',ancestor::ref/@id) else 'no id'"/>) has an editor person-group. This info isn;t typically included in journal refs. Is it really a journal ref? Does it really contain editors?</report> | ||
</rule> | ||
</pattern> | ||
<pattern id="root-pattern"> | ||
<rule context="root" id="root-rule"> | ||
<assert test="descendant::mixed-citation[@publication-type='journal']" role="error" id="journal-ref-checks-xspec-assert">mixed-citation[@publication-type='journal'] must be present.</assert> | ||
</rule> | ||
</pattern> | ||
</schema> |
11 changes: 11 additions & 0 deletions
11
test/tests/rp/journal-ref-checks/journal-ref-editor/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,11 @@ | ||
<?oxygen SCHSchema="journal-ref-editor.sch"?> | ||
<!--Context: mixed-citation[@publication-type='journal'] | ||
Test: report person-group[@person-group-type='editor'] | ||
Message: This journal reference () has an editor person-group. This info isn;t typically included in journal refs. Is it really a journal ref? Does it really contain editors? --> | ||
<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="journal"> | ||
<person-group person-group-type="author"/> | ||
</mixed-citation> | ||
</article> | ||
</root> |
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