On 16.5.2019 8:38, Elisa Beshero-Bondar wrote:
> Engine name ISO Schematron
> Start location line: 4996, column: 0
Hi Elisa,
I suppose that oXygen points you to a wrong location as internaly it has
to extract Schematron from RELAX NG file, then compile it to XSLT and
then finally XSLT is run over your XML. oXygen probably can't track
error from XSLT back to Schematron and then back to RELAX NG file (it
would be very hard to do so.)
Problem is in few of your expressions. If you change
<sch:report role="info" test="$backRefs">
to
<sch:report role="info" test="not(empty($backRefs))">
<sch:report role="info" test="$backRefs and not($siRefs)">
to
<sch:report role="info" test="not(empty($backRefs)) and empty($siRefs)">
<sch:report role="warning" test="not($backRefs) and not($siRefs)">
to
<sch:report role="warning" test="empty($backRefs) and empty($siRefs)">
ie. using empty() to check for empty sequence, your validation should be
working again.
Jirka
--
------------------------------------------------------------------
Jirka Kosek e-mail: jirka@kosek.cz http://xmlguru.cz
------------------------------------------------------------------
Professional XML and Web consulting and training services
DocBook/DITA customization, custom XSLT/XSL-FO document processing
------------------------------------------------------------------
Bringing you XML Prague conference http://xmlprague.cz
------------------------------------------------------------------