
schematron.validate( document as Node, validator-xslt as Node ) as 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
declareUpdate();
xdmp.documentInsert("request001.json",
{
"request" : {
"id" : "001",
"description" : "bedroom door knob broken",
"maintainance" : "yes",
"fixed" : "yes",
"raisedBy" : "Alan Rick",
"category" : "doors",
"fixedBy" : "Ron"
}
})
//Validate the document
const schematron = require("/MarkLogic/schematron/schematron.xqy");
schematron.validate(fn.doc("request001.json"),schematron.get("/requestSchema.sch"))
==>
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<svrl:schematron-output title="request-validation" schemaVersion="1.0" phase="phase2"
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="request001.json" id="co-occurence" name="co-occurence"/>
<svrl:fired-rule context="request"/>
<svrl:failed-assert test="(category = 'doors' and fixedBy = 'Tom') or (category != 'doors')" location="/request">
<svrl:text>if category is doors then fixedBy must be Tom</svrl:text>
<svrl:diagnostic-reference diagnostic="d1">
Requests of doors category should be fixed by Tom</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.