Figure 3. Multi-lingual schema suggested by Annex G of ISO/IEC 19757-3:2020
<sch:schema xmlns:sch="http://purl.oclc.org/dsdl/schematron"> <sch:title>Example of Multi-Lingual Schema</sch:title> <sch:pattern> <sch:rule context="dog"> <sch:assert test="bone" diagnostics="bone-en bone-de"/> </sch:rule> </sch:pattern> <sch:diagnostics> <sch:diagnostic xml:lang="en" id="bone-en">A dog should have a bone.</sch:diagnostic> <sch:diagnostic xml:lang="de" id="bone-de">Ein Hund sollte ein Bein haben.</sch:diagnostic> </sch:diagnostics> </sch:schema>
All three reporting elements are modelled as mixed-content elements. As a consequence,
an assertion message or diagnostic can only specify one language with an xml:lang
attribute. The suggested mechanism for multi-lingual
messages in Annex G of the specification, shown in Figure 3, “Multi-lingual schema suggested by Annex G of ISO/IEC 19757-3:2020”, is
cumbersome, at best. It suggests the schema author to define one diagnostic per localized
message and reference them in the diagnostics
attribute of
the respective assertion. Tobias Fischer [FISCHER2017] summarizes the
biggest problem with this approach: Adding a localization requires adding the respective
reference to every assertion.