Loading TOC...

xdmp:validate

xdmp:validate(
   node as node(),
   [mode as xs:string],
   [typeName as xs:QName]
) as element(xdmp:validation-errors)

Summary

Returns an element containing a summary of validation errors in a node.

Parameters
node The node to validate.
mode The validation mode, either "strict", "lax", or "type".
typeName The name of the type to validate against, if the mode is "type". An error is raised if a typeName is given with a different validation mode, or if no type is given if the mode is "type".

Example

declare namespace t="http://marklogic.com/xdmp/thesaurus";
xdmp:validate(
document {
<t:thesaurus>
  <t:entry>
     <t:term>one</t:term>
     <t:notes>unexpected stuff</t:notes>
     <t:part-of-speech>expl</t:part-of-speech>
     <t:synonym>
        <t:term>unique</t:term>
     </t:synonym>
  </t:entry>
</t:thesaurus>
} )
=>

<xdmp:validation-errors>
  <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>1.0-ml</error:xquery-version>
    <error:message>Invalid node</error:message>
    <error:format-string>XDMP-VALIDATEUNEXPECTED:
    (err:XQDY0027) validate full { () } -- Invalid node: Found t:notes but
    expected (t:part-of-speech?,t:qualifiers?,t:scope-notes?,t: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>t:notes</error:datum>
      <error:datum>(t:part-of-speech?,t:qualifiers?,t:scope-notes?,t: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:line>2</error:line>
        <error:column>0</error:column>
        <error:xquery-version>1.0-ml</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>1.0-ml</error:xquery-version>
    <error:message>Invalid node type</error:message>
    <error:format-string>XDMP-VALIDATEBADTYPE: (err:XQDY0027) validate
    full { () } -- Invalid node type: t:part-of-speech lexical value "expl"
    invalid for expected type #t: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>t:part-of-speech</error:datum>
      <error:datum>"expl"</error:datum>
      <error:datum>#t: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:line>2</error:line>
        <error:column>0</error:column>
        <error:xquery-version>1.0-ml</error:xquery-version>
      </error:frame>
    </error:stack>
  </error:error>
</xdmp:validation-errors>

Stack Overflow iconStack Overflow: Get the most useful answers to questions from the MarkLogic community, or ask your own question.