Loading TOC...

MarkLogic 9 Product Documentation
es:model-get-test-instances

es:model-get-test-instances(
   $model as map:map
) as element()*

Summary

This function is deprecated and will not be supported in MarkLogic 11.
Generate entity instances of each entity type in a basic model.

Parameters
model A valid basic model.

Usage Notes

This function is useful for examining what entity instances will look like by default and for testing code that manipulates entities.

A single test entity instance is generated for each entity type defined by the input basic model. Each instance is an XML element that is a valid representation of the entity type, although it might not be exactly what an implementation your application requires.

For each property in an entity type, this function emits an element containing a dummy value of the property's type. If a property is a reference to an entity type that can be resolved local to this model, then an instance of the referenced type is embedded within the referring instance. If a property is an array, only one element of the array item type is generated, but it has a datatype attribute that indicates it is an array. See the example below.

See Also

Example

xquery version "1.0-ml";
import module namespace es = "http://marklogic.com/entity-services"
  at "/MarkLogic/entity-services/entity-services.xqy";

es:model-get-test-instances(
  es:model-validate(
    <es:model xmlns:es="http://marklogic.com/entity-services">
      <es:info>
        <es:title>Example</es:title>
        <es:version>1.0.0</es:version>
        <es:description>ES Examples</es:description>
      </es:info>
      <es:definitions>
        <Name>
          <es:properties>
            <first><es:datatype>string</es:datatype></first>
            <middle><es:datatype>string</es:datatype></middle>
            <last><es:datatype>string</es:datatype></last>
          </es:properties>
          <es:required>first</es:required>
          <es:required>last</es:required>
        </Name>
        <Person>
          <es:properties>
            <id><es:datatype>int</es:datatype></id>
            <name><es:ref>#/definitions/Name</es:ref></name>
            <bio><es:datatype>string</es:datatype></bio>
            <rating><es:datatype>float</es:datatype></rating>
            <phone>
              <es:datatype>array</es:datatype>
              <es:items><es:datatype>string</es:datatype></es:items>
            </phone>
          </es:properties>
          <es:primary-key>id</es:primary-key>
          <es:required>id</es:required>
          <es:required>name</es:required>
        </Person>
      </es:definitions>
    </es:model>
))

(: ==> Two test instances, one for Name and one for Person. MarkLogic
       produces output similar to the following.

<Name>
  <first>some string</first>
  <middle>some string</middle>
  <last>some string</last>
</Name>

<Person>
  <id>123</id>
  <name>
    <Name>
      <first>some string</first>
      <middle>some string</middle>
      <last>some string</last>
    </Name>
  </name>
  <bio>some string</bio>
  <rating>123</rating>
  <phone datatype="array">some string</phone>
</Person>
:)
  

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