>
>> (Without extension functions, though, I don't
>> think Schematron can require that if @x is "yes", then @y
>> must be a prime number.)
>
> if(@x='yes') then
> not(some $i in 2 to (xs:integer(@y)-1) satisfies (@y mod $i) = 0)
Even in XML 1.0
(@x mod 2) = 0 or
(@x mod 3) = 0 or
(@x mod 5) = 0 or
(@x mod 7) = 0 or
(@x mod 11) = 0 or
(@x mod 13) = 0 or
(@x mod 17) = 0 or
(@x mod 19) = 0
on the understanding that the assertion *test* may be lossy compared to
the assertion *text* (no false negatives).
In Schematron the assertion text has the primacy: you can even make
assertions for which no effective test exists, such as "This element is a
date, in any notation and calendar, but ISO 8601 is preferred."
Cheers
Rick