
Many thanks to Jirka and Peter for their replies, which precisely identified the problem with my ODD's Schematron rules testing sequences of values. Jirka, thanks also for explaining why the error messages seemed so random! I've implemented the changes each of you suggested and the schema is validating properly now. Cheers, Elisa On Thu, May 16, 2019 at 5:24 AM Jirka Kosek <jirka@kosek.cz> wrote:
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 ------------------------------------------------------------------
-- Elisa Beshero-Bondar, PhD Associate Professor of English University of Pittsburgh at Greensburg Humanities Division 150 Finoli Drive Greensburg, PA 15601 USA E-mail: ebb8@pitt.edu