As reported by @dmj, a pattern may be active without necessarily having rules that fire.
David writes:
"If I validate the [...] SVRL report [...] with Jing it complains about
the following structure:
<svrl:fired-rule context="mods:name[not(parent::mods:subject)]"/>
<svrl:active-pattern/>
<svrl:active-pattern/>
Read: We have an active pattern with no matching rule.
But the RelaxNG of SVRL requires at least one svrl:fired-rule after an
svrl:active-pattern."
Therefore he proposes
https://github.com/Schematron/schema/blob/c785b593daf8b33ebd1bf7a942dd6ecd4c2d7bfd/svrl.rnc#L45
should be amended to read:
(fired-rule, (failed-assert | successful-report)*)*)+