Loading TOC...


   $model-descriptor as node()
) as map:map


Validates an entity services model descriptor. If the descriptor is valid, returns an in-memory version of the basic model; otherwise, an exception is raised.

$model-descriptor A document or node containing a model descriptor, or a map:map representing a model descriptor.

Usage Notes

Use this function as an entry point to the Entity Services API code generation functions. You can pass in either an in-memory JSON or XML model descriptor or a document that contains a JSON or XML model descriptor.

If the input descriptor is valid, then this function returns a validated basic model. If the model descriptor is invalid, this function throws an ES-MODEL-INVALID exception. The error message includes details about the validation failure(s).

Note that a JSON model descriptor looks the same as the default serialization of a validated basic model, so the input and output will be identical if the input is a valid JSON descriptor.

See Also


(: Validate an in-memory XML model descriptor :)
xquery version "1.0-ml";
import module namespace es = "http://marklogic.com/entity-services"
  at "/MarkLogic/entity-services/entity-services.xqy";
  <es:model xmlns:es="http://marklogic.com/entity-services">

==> The basic model, as a <json:object/>. You can inspect the contents using
    map:map functions, as well as passing the basic model to any Entity 
    Services functions that expect a basic model as input. The map:map
    contents are equivalent to the following JSON serialization:
{ "info": {
    "title": "Example",
    "version": "1.0.0"
  "definitions": {
    "Name": {
      "properties": {
        "first": { "datatype": "string" },
        "middle": { "datatype": "string" },
        "last": { "datatype": "string" }
      "required": [ "first", "last" ]


(: Validate a descriptor in the db and use it as a map:map :)
(: Refer to the previous example for the descriptor contents :)
xquery version "1.0-ml";
import module namespace es = "http://marklogic.com/entity-services"
    at "/MarkLogic/entity-services/entity-services.xqy";

let $model-desc := fn:doc("/descriptors/name.xml")
let $basic-model := es:model-validate($model-desc)
return map:get($basic-model, "info")

==> The value of the "info" property of the basic model. The value is a
    <json:object/>. The JSON serialization appears as follows:

{"title":"Example", "version":"1.0.0"}

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