Skip to content

Commit

Permalink
proposal for localisation of schematron strings
Browse files Browse the repository at this point in the history
  • Loading branch information
joachimnielandt committed Feb 21, 2025
1 parent b468272 commit 01405bf
Show file tree
Hide file tree
Showing 5 changed files with 39 additions and 15 deletions.
9 changes: 9 additions & 0 deletions src/main/plugin/dcat-ap/loc/dut/schematron-shared.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<strings>
<cardinality.title>Kardinaliteit van #element in #context</cardinality.title>
<cardinality.assert>#context/#element zou kardinaliteit #min..#max moeten hebben maar er werden #nodecount node(s) gevonden.</cardinality.assert>
<cardinality.report>#context/#element heeft kardinaliteit #min..#max. Gevonden node(s): #nodecount.</cardinality.report>
<multilingual.cardinality.title>Kardinaliteit van #element in #context per taal</multilingual.cardinality.title>
<multilingual.cardinality.assert>Deze elementen zouden uniek moeten zijn per taal. De minimum kardinaliteit is #min. Elementen moeten ofwel allemaal een taal definiëren, of niet.</multilingual.cardinality.assert>
<multilingual.cardinality.report>De elementen voldoen aan de minimum kardinaliteit #min.</multilingual.cardinality.report>
</strings>
9 changes: 9 additions & 0 deletions src/main/plugin/dcat-ap/loc/eng/schematron-shared.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<strings>
<cardinality.title>Cardinality of #element in #context</cardinality.title>
<cardinality.assert>#context/#element should have cardinality #min..#max but there were #nodecount node(s) present.</cardinality.assert>
<cardinality.report>#context/#element has cardinality #min..#max. Found node(s): #nodecount.</cardinality.report>
<multilingual.cardinality.title>Cardinality of #element in #context per language</multilingual.cardinality.title>
<multilingual.cardinality.assert>These elements should be unique per language. The minimum cardinality is #min. You cannot mix occurrences that do not specify a language and occurrences that do.</multilingual.cardinality.assert>
<multilingual.cardinality.report>Elements match the expected minimum cardinality of #min.</multilingual.cardinality.report>
</strings>
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<sch:schema xmlns:sch="http://purl.oclc.org/dsdl/schematron">
<sch:schema xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:geonet="http://www.fao.org/geonetwork">
<sch:ns prefix="spdx" uri="http://spdx.org/rdf/terms#"/>
<sch:ns prefix="owl" uri="http://www.w3.org/2002/07/owl#"/>
<sch:ns prefix="adms" uri="http://www.w3.org/ns/adms#"/>
Expand All @@ -26,29 +26,31 @@
<sch:title xmlns="http://www.w3.org/2001/XMLSchema">{$loc/strings/schematron.title}</sch:title>

<sch:pattern abstract="true" id="CardinalityCheck">
<sch:title>Cardinality of $element in $context</sch:title>
<sch:title>geonet:replacePlaceholders($loc/strings/cardinality.title, ('#context', '#element'), ('$context', '$element'))</sch:title>
<sch:rule context="$context">
<sch:assert test="count($element) &gt;= $min and ('$max' = 'n' or count($element) &lt;= $max)">
<sch:value-of select="'$context'"/>/<sch:value-of select="'$element'"/> should be of cardinality <sch:value-of select="'$min'"/>..<sch:value-of select="'$max'"/> but found <sch:value-of select="count($element)"/> nodes.</sch:assert>
<sch:value-of select="geonet:replacePlaceholders($loc/strings/cardinality.assert, ('#context', '#element', '#min', '#max', '#nodecount'), ('$context', '$element', '$min', '$max', string(count($element))))"/>
</sch:assert>
<sch:report test="count($element) &gt;= $min and ('$max' = 'n' or count($element) &lt;= $max)">
<sch:value-of select="'$context'"/>/<sch:value-of select="'$element'"/> is of cardinality <sch:value-of select="'$min'"/>..<sch:value-of select="'$max'"/>. Found <sch:value-of select="count($element)"/> nodes.</sch:report>
<sch:value-of select="geonet:replacePlaceholders($loc/strings/cardinality.report, ('#context', '#element', '#min', '#max', '#nodecount'), ('$context', '$element', '$min', '$max', string(count($element))))"/>
</sch:report>
</sch:rule>
</sch:pattern>

<sch:pattern abstract="true" id="MultilingualCardinalityCheck">
<sch:title>Cardinality of $element in $context per language</sch:title>
<sch:title>geonet:replacePlaceholders($loc/strings/multilingual.cardinality.title, ('#context', '#element'), ('$context', '$element'))</sch:title>
<sch:rule context="$context">
<sch:assert test="(count($element[@xml:lang]) = 0 or count($element[not(@xml:lang)]) = 0) and
((count(distinct-values($element/@xml:lang)) = count($element[@xml:lang])) or '$max' = 'n') and
((count($element[not(@xml:lang)]) &lt;= 1) or '$max' = 'n') and
(count(distinct-values($element/@xml:lang)) &gt;= $min or (count($element[not(@xml:lang)]) &gt;= $min))">
These elements should be unique per language. The minimum cardinality is <sch:value-of select="$min"/>. You cannot mix occurrences without a language specified and occurrences with a language specified.
<sch:value-of select="geonet:replacePlaceholders($loc/strings/multilingual.cardinality.assert, ('#min'), ('$min'))"/>
</sch:assert>
<sch:report test="(count($element[@xml:lang]) = 0 or count($element[not(@xml:lang)]) = 0) and
((count(distinct-values($element/@xml:lang)) = count($element[@xml:lang])) or '$max' = 'n') and
((count($element[not(@xml:lang)]) &lt;= 1) or '$max' = 'n') and
(count(distinct-values($element/@xml:lang)) &gt;= $min or (count($element[not(@xml:lang)]) &gt;= $min))">
These elements should be unique per language. The minimum cardinality is <sch:value-of select="$min"/>. You cannot mix occurrences without a language specified and occurrences with a language specified.
<sch:value-of select="geonet:replacePlaceholders($loc/strings/multilingual.cardinality.report, ('#min'), ('$min'))"/>
</sch:report>
</sch:rule>
</sch:pattern>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,20 +27,22 @@
<sch:title xmlns="http://www.w3.org/2001/XMLSchema">{$loc/strings/schematron.title}</sch:title>

<sch:pattern abstract="true" id="CardinalityCheck">
<sch:title>Cardinality of $element in $context</sch:title>
<sch:title>geonet:replacePlaceholders($loc/strings/cardinality.title, ('#context', '#element'), ('$context', '$element'))</sch:title>
<sch:rule context="$context">
<sch:assert test="count($element) &gt;= $min and ('$max' = 'n' or count($element) &lt;= $max)">
<sch:value-of select="'$context'"/>/<sch:value-of select="'$element'"/> should be of cardinality <sch:value-of select="'$min'"/>..<sch:value-of select="'$max'"/> but found <sch:value-of select="count($element)"/> nodes.</sch:assert>
<sch:value-of select="geonet:replacePlaceholders($loc/strings/cardinality.assert, ('#context', '#element', '#min', '#max', '#nodecount'), ('$context', '$element', '$min', '$max', string(count($element))))"/>
</sch:assert>
<sch:report test="count($element) &gt;= $min and ('$max' = 'n' or count($element) &lt;= $max)">
<sch:value-of select="'$context'"/>/<sch:value-of select="'$element'"/> is of cardinality <sch:value-of select="'$min'"/>..<sch:value-of select="'$max'"/>. Found <sch:value-of select="count($element)"/> nodes.</sch:report>
<sch:value-of select="geonet:replacePlaceholders($loc/strings/cardinality.report, ('#context', '#element', '#min', '#max', '#nodecount'), ('$context', '$element', '$min', '$max', string(count($element))))"/>
</sch:report>
</sch:rule>
</sch:pattern>

<sch:pattern is-a="CardinalityCheck" id="Dataset_hvdCategory">
<sch:param name="context" value="//dcat:Dataset"/>
<sch:param name="element" value="dcatap:hvdCategory"/>
<sch:param name="min" value="1"/>
<sch:param name="max" value="1"/>
<sch:param name="max" value="n"/>
</sch:pattern>
<sch:pattern is-a="CardinalityCheck" id="Dataset_applicableLegislation">
<sch:param name="context" value="//dcat:Dataset"/>
Expand All @@ -52,7 +54,7 @@
<sch:param name="context" value="//dcat:DataService"/>
<sch:param name="element" value="dcatap:hvdCategory"/>
<sch:param name="min" value="1"/>
<sch:param name="max" value="1"/>
<sch:param name="max" value="n"/>
</sch:pattern>
<sch:pattern is-a="CardinalityCheck" id="DataService_applicableLegislation">
<sch:param name="context" value="//dcat:DataService"/>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,12 +26,14 @@
<sch:title xmlns="http://www.w3.org/2001/XMLSchema">{$loc/strings/schematron.title}</sch:title>

<sch:pattern abstract="true" id="CardinalityCheck">
<sch:title>Cardinality of $element in $context</sch:title>
<sch:title>geonet:replacePlaceholders($loc/strings/cardinality.title, ('#context', '#element'), ('$context', '$element'))</sch:title>
<sch:rule context="$context">
<sch:assert test="count($element) &gt;= $min and ('$max' = 'n' or count($element) &lt;= $max)">
<sch:value-of select="'$context'"/>/<sch:value-of select="'$element'"/> should be of cardinality <sch:value-of select="'$min'"/>..<sch:value-of select="'$max'"/> but found <sch:value-of select="count($element)"/> nodes.</sch:assert>
<sch:value-of select="geonet:replacePlaceholders($loc/strings/cardinality.assert, ('#context', '#element', '#min', '#max', '#nodecount'), ('$context', '$element', '$min', '$max', string(count($element))))"/>
</sch:assert>
<sch:report test="count($element) &gt;= $min and ('$max' = 'n' or count($element) &lt;= $max)">
<sch:value-of select="'$context'"/>/<sch:value-of select="'$element'"/> is of cardinality <sch:value-of select="'$min'"/>..<sch:value-of select="'$max'"/>. Found <sch:value-of select="count($element)"/> nodes.</sch:report>
<sch:value-of select="geonet:replacePlaceholders($loc/strings/cardinality.report, ('#context', '#element', '#min', '#max', '#nodecount'), ('$context', '$element', '$min', '$max', string(count($element))))"/>
</sch:report>
</sch:rule>
</sch:pattern>

Expand Down

0 comments on commit 01405bf

Please sign in to comment.