schematron:validate( $document as node(), $validator-xslt as document-node() ) as document-node()
This function accepts the document to be validated and the validator XSLT and returns the output of the validation in SVRL (Schematron Validation Report Language) format, which is a simple XML based language used to report the results of Schematron validation.
Parameters | |
---|---|
document | The document to be validated. |
validator-xslt | The validator XSLT. |
(:Insert the document to be validated:) xdmp:document-insert("user001.xml", <user id="001"> <name>Alan</name> <gender>Male</gender> <age>14</age> <score total="90"> <test-1>50</test-1> <test-2>40</test-2> </score> <result>fail</result> </user>) (:Validate the document:) xquery version "1.0-ml"; import module namespace schematron = "http://marklogic.com/xdmp/schematron" at "/MarkLogic/schematron/schematron.xqy"; schematron:validate(fn:doc("user001.xml"), schematron:get("/userSchema.sch")) ==> <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <svrl:schematron-output title="user-validation" schemaVersion="1.0" xmlns:schold="http://www.ascc.net/xml/schematron" xmlns:iso="http://purl.oclc.org/dsdl/schematron" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:axsl="http://www.w3.org/1999/XSL/TransformAlias" xmlns:svrl="http://purl.oclc.org/dsdl/svrl"> <!-- --> <svrl:active-pattern document="user001.xml" id="structural" name="structural"/> <svrl:fired-rule context="user"/> <svrl:active-pattern document="user001.xml" id="co-occurence" name="co-occurence"/> <svrl:fired-rule context="score"/> <svrl:failed-assert test="(@total gt 30 and ../result = 'pass') or (@total le 30 and ../result = 'fail')" location="/user[1]/score[1]"> <svrl:text>if the score is greater than 30 then the result should be 'pass' else 'fail'</svrl:text> <svrl:diagnostic-reference diagnostic="d1"> the score does not match with the result</svrl:diagnostic-reference> </svrl:failed-assert> </svrl:schematron-output>
Stack Overflow: Get the most useful answers to questions from the MarkLogic community, or ask your own question.