xdmp.validate( node as Node, [mode as String], [typeName as xs.QName] ) as element(xdmp.validationErrors)
Returns an element containing a summary of validation errors in a node.
xdmp.validate( xdmp.unquote('<t:thesaurus xmlns:t="http://marklogic.com/xdmp/thesaurus">' + '<t:entry> \n \ <t:term>one</t:term> \n \ <t:notes>unexpected stuff</t:notes> \n \ <t:part-of-speech>expl</t:part-of-speech> \n \ <t:synonym> \n \ <t:term>unique</t:term> \n \ </t:synonym> \n \ </t:entry> \n \ </t:thesaurus>' ) ); => <xdmp:validation-errors xmlns:xdmp="http://marklogic.com/xdmp"> <error:error xmlns:error="http://marklogic.com/xdmp/error" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <error:code>XDMP-VALIDATEUNEXPECTED</error:code> <error:name>err:XQDY0027</error:name> <error:xquery-version>JavaScript</error:xquery-version> <error:message>Invalid node</error:message> <error:format-string>XDMP-VALIDATEUNEXPECTED: validate full { () } -- Invalid node: Found {http://marklogic.com/xdmp/thesaurus}notes but expected ({http://marklogic.com/xdmp/thesaurus}part-of-speech?, {http://marklogic.com/xdmp/thesaurus}qualifiers?, {http://marklogic.com/xdmp/thesaurus}scope-notes?, {http://marklogic.com/xdmp/thesaurus}synonym+) at fn:doc('')/t:thesaurus/t:entry/t:notes using schema "thesaurus.xsd"</error:format-string> <error:retryable>false</error:retryable> <error:expr>validate full { () }</error:expr> <error:data> <error:datum>{http://marklogic.com/xdmp/thesaurus}notes</error:datum> <error:datum>({http://marklogic.com/xdmp/thesaurus}part-of-speech?, {http://marklogic.com/xdmp/thesaurus}qualifiers?, {http://marklogic.com/xdmp/thesaurus}scope-notes?, {http://marklogic.com/xdmp/thesaurus}synonym+) </error:datum> <error:datum>fn:doc('')/t:thesaurus/t:entry/t:notes</error:datum> <error:datum>"thesaurus.xsd"</error:datum> </error:data> <error:stack> <error:frame> <error:operation>xdmp:eval("xdmp.validate(\nxdmp.unquote('<t:thesaurus xmlns:t=\"http://mark...", {}, <options xmlns="xdmp:eval"><database>18210430083193679484</database> <root>/space/appserver<...</options>) </error:operation> <error:xquery-version>JavaScript</error:xquery-version> </error:frame> <error:frame> <error:uri>/qconsole/endpoints/evaljs.sjs</error:uri> <error:xquery-version>JavaScript</error:xquery-version> </error:frame> </error:stack> </error:error><error:error xmlns:error="http://marklogic.com/xdmp/error" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <error:code>XDMP-VALIDATEBADTYPE</error:code> <error:name>err:XQDY0027</error:name> <error:xquery-version>JavaScript</error:xquery-version> <error:message>Invalid node type</error:message> <error:format-string>XDMP-VALIDATEBADTYPE: validate full { () } -- Invalid node type: {http://marklogic.com/xdmp/thesaurus}part-of-speech lexical value "expl" invalid for expected type #{http://marklogic.com/xdmp/thesaurus}part-of-speech at fn:doc('') /t:thesaurus/t:entry/t:part-of-speech using schema "thesaurus.xsd" </error:format-string> <error:retryable>false</error:retryable> <error:expr>validate full { () }</error:expr> <error:data> <error:datum> {http://marklogic.com/xdmp/thesaurus}part-of-speech </error:datum> <error:datum>"expl"</error:datum> <error:datum> #{http://marklogic.com/xdmp/thesaurus}part-of-speech </error:datum> <error:datum>fn:doc('')/t:thesaurus/t:entry/t:part-of-speech</error:datum> <error:datum>"thesaurus.xsd"</error:datum> </error:data> <error:stack> <error:frame> <error:operation>xdmp:eval("xdmp.validate(\nxdmp.unquote('<t:thesaurus xmlns:t=\"http://mark...", {}, <options xmlns="xdmp:eval"><database >18210430083193679484</database><root>/space/appserver <...</options>)</error:operation> <error:xquery-version>JavaScript</error:xquery-version> </error:frame> <error:frame> <error:uri>/qconsole/endpoints/evaljs.sjs</error:uri> <error:xquery-version>JavaScript</error:xquery-version> </error:frame> </error:stack> </error:error> </xdmp:validation-errors>