<?xml version="1.0" encoding="UTF-8"?>
<sch:schema xmlns:sch="http://purl.oclc.org/dsdl/schematron" queryBinding="xslt2"
    defaultPhase="example">
    
    <sch:phase id="example">
        <sch:active pattern="p1"/>
    </sch:phase>
    
    <sch:pattern id="p1">
        <sch:rule context="/">
            <sch:assert test="false()" role="error" id="c1">error from assert</sch:assert>
            <sch:report test="true()" role="error" id="c2">error from report</sch:report>
            <sch:assert test="false()" role="warning" id="c3">warnin from assert</sch:assert>
            <sch:report test="true()" role="warning" id="c4">warning from report</sch:report>
            <sch:assert test="false()" role="info" id="c5">info from assert</sch:assert>
            <sch:report test="true()" role="info" id="c6">info from report</sch:report>
            <sch:assert test="false()" role="error" id="c7" diagnostics="d1 d2">error from assert with diagnostics</sch:assert>
            <sch:report test="true()" role="error" id="c8" diagnostics="d1 d2">error from report with diagnostics</sch:report>
        </sch:rule>
    </sch:pattern>
    
    <sch:diagnostics>
        <sch:diagnostic id="d1">diagnostic message 1.</sch:diagnostic>
        <sch:diagnostic id="d2">diagnostic message 2.</sch:diagnostic>
    </sch:diagnostics>
    
</sch:schema>