Shortcomings

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.