Chapter 22. Data Services VDB Sequencer

22.1. Data Services VDB Sequencer

Teiid Designer is a visual tool that enables rapid, model-driven definition, integration, management and testing of data services without programming using the Data Services runtime engine. It is capable of modeling several different kinds of data structures, but the most common and widely-used are relational models that describe a relational database schema, including the catalogs/schemas, tables, views, columns, primary keys, foreign keys, indexes, procedures, procedure results, procedure results, and logical relationships. Teiid Designer can reverse-engineer a relational model from a JDBC relational database or DDL file. It can also define "virtual" models that are transformations of other models (where the transformations are defined in terms of SQL select, insert, update, and delete statements). These models can then be packaged into a virtual database, which can be deployed to a Data Services runtime engine.
Data Services is a high-performance database virtualization engine that allows JDBC and ODBC client applications access the virtual database as if it were a real database, using relational, XML, XQuery and procedural queries. Data Services dynamically (and in real-time) figures out how to answer the queries and operations issued by clients by efficiently accessing and manipulating the data inside the underlying data sources. The sophisticated engine is able to plan and optimize these operations, even when multiple heterogeneous relational and non-relational data sources must be accessed to obtain the required information.
The Data Services VDB sequencer parses the VDB archive files produced by the Teiid Designer, and extracts the structured relational data model described by each of the contained XMI files. This means that when VDB files are uploaded into a ModeShape repository, the sequencer writes to the repository all this virtual database and relational metadata contained in the VDB, where it can be queried and accessed by JCR, RESTful, and even JDBC clients.
The VdbSequencer has no properties for changing behavior.

22.2. Data Services VDB Sequencer UUIDs and References

A Data Services virtual database file is entirely self-contained: it contains all of the models required for the VDB. No model can contain references to objects outside of these models, so the entire VDB archive is consistent and complete. When the sequencer extracts the relational information from these models, it automatically resolves all references. Also, the resulting content is independent of any the content from all other previous sequencing operations, including that of the Data Services Model Sequencer ( Chapter 21, Data Services Relational Model Sequencer).

22.3. Data Services VDB Sequencer Node Types

The VDB sequencer follows JCR best-practices by defining all nodes to have a primary type of "nt:unstructured" (or a node type that extends "nt:unstructured"), meaning it is possible and valid for any node to have any property (with single or multiple values). However, it is still useful to capture the metadata about what that node represents, and so the sequencer use mixins for this.
The VDB sequencer reuses all of the node types (Section 21.4, “Data Services Relational Model Sequencer Node Types”) from the Data Services Model Sequencer (Chapter 21, Data Services Relational Model Sequencer), plus several new node types that are used for the VDB-specific metadata, as described below. Note that these are non-normative definitions of the node types; see the CND files in the "modeshape-sequencer-teiid" JAR file (or source) for the official definitions.

22.4. Content Node Definitions for the "vdb" Namespace

The compact node definitions for the "vdb" namespace are as follows:
<nt  = "http://www.jcp.org/jcr/nt/1.0">
<xmi = "http://www.omg.org/XMI">
<vdb = "http://www.metamatrix.com/metamodels/VirtualDatabase">
<mmcore = "http://www.metamatrix.com/metamodels/Core">

//------------------------------------------------------------------------------
// N O D E T Y P E S
//------------------------------------------------------------------------------

[vdb:virtualDatabase] > nt:unstructured
 - vdb:description (string) 
 - vdb:version (long) = '1'
 - vdb:preview (boolean) = 'false'
 - vdb:originalFile (string)
 - mmcore:sha1 (string)

[vdb:model] > xmi:model, mmcore:model
 - vdb:visible (boolean) = 'true'
 - vdb:checksum (long)
 - vdb:builtIn (boolean) = 'false'
 - vdb:pathInVdb (string)
 - vdb:sourceTranslator (string)
 - vdb:sourceJndiName (string)
 - vdb:sourceName (string)
 + vdb:markers (vdb:markers) = vdb:markers copy

[vdb:markers] > nt:unstructured
 + vdb:marker (vdb:marker) = vdb:marker copy sns

[vdb:marker] > nt:unstructured
 - vdb:severity (string) = 'WARNING' < 'WARNING','ERROR','INFO'
 - vdb:path (string)
 - vdb:message (string)

22.5. Data Services VDB Sequencer Example

Here is a representation of the nodes output by the sequencing of an example "qe.2.vdb" virtual database:
qe jcr:primaryType="vdb:virtualDatabase" 
  - jcr:mixinTypes=["mix:referenceable", "mode:derived"] 
  - jcr:uuid="1d110326-f8e9-4f5e-becd-2f3e4d63296e"
  - mode:derivedAt="2011-05-13T13:12:03.925Z" 
  - mode:derivedFrom="/files/foo.vdb"
  - vdb:description="This VDB is for testing Recursive XML documents and Text Sources"
  - vdb:originalFile="/vdb/qe.vdb"
  - vdb:preview="false"
  - mode:sha1="4cec9166f20a8d3772a1cfddb493329e35c3adb7"
  - vdb:version="2"
  text jcr:primaryType="vdb:model" jcr:mixinTypes=["mmcore:model","mix:referenceable","xmi:referenceable"] jcr:uuid="5cffd0ee-2edd-44af-8a8d-46459d849afe"
    - vdb:builtIn="true"
    - vdb:checksum="958072371"
    - mmcore:maxSetSize="100"
    - mmcore:modelType="PHYSICAL"
    - mmcore:originalFile="/vdb/qe.vdb"
    - vdb:pathInVdb="QuickText/text.xmi"
    - mmcore:primaryMetamodelUri="http://www.metamatrix.com/metamodels/Relational"
    - mmcore:producerName="Teiid Designer"
    - mmcore:producerVersion="7.0.0.v20100807-1026-H168-M1"
    - mode:sha1="893accdcb0745f8061626b4ab60079daeb3eb74f"
    - vdb:sourceJndiName="empdata-file"
    - vdb:sourceName="text"
    - vdb:sourceTranslator="file"
    - mmcore:supportsDistinct="true"
    - mmcore:supportsJoin="true"
    - mmcore:supportsOrderBy="true"
    - mmcore:supportsOuterJoin="true"
    - mmcore:supportsWhereAll="true"
    - xmi:uuid="ba1f1ca6-b9a7-44f8-9d89-8d9ba9f801ba"
    - xmi:version="2.0"
    - mmcore:visible="true"
    - vdb:visible="true"
    vdb:markers jcr:primaryType="vdb:markers"
      vdb:marker jcr:primaryType="vdb:marker"
        - vdb:message="Missing or invalid Length on column with a string/character datatype  (See validation Preferences)"
        - vdb:path="getTextFiles/NewProcedureResult/filePath"
        - vdb:severity="WARNING"
    XMLSchema jcr:primaryType="mmcore:import" jcr:mixinTypes=["mix:referenceable","xmi:referenceable"] jcr:uuid="1787cc24-d545-437c-a7ef-e18569eec9c3"
      - mmcore:modelType="TYPE"
      - mmcore:primaryMetamodelUri="http://www.eclipse.org/xsd/2002/XSD"
      - xmi:uuid="mmuuid:5a23faba-871a-490e-9799-efdffea80b6b"
    SimpleDatatypes-instance jcr:primaryType="mmcore:import" jcr:mixinTypes=["mix:referenceable","xmi:referenceable"] jcr:uuid="4e11258b-06e2-4d39-8a10-7e6b8e02dc37"
      - mmcore:modelType="TYPE"
      - mmcore:primaryMetamodelUri="http://www.eclipse.org/xsd/2002/XSD"
      - xmi:uuid="mmuuid:b09c455c-1c5a-4de4-8373-e823482ce517"
    getTextFiles jcr:primaryType="relational:procedure" jcr:mixinTypes=["mix:referenceable","xmi:referenceable"] jcr:uuid="137968e0-e375-43c3-b25a-03953ff975ff"
      - xmi:uuid="bf60b5cb-fd8c-474a-9f4c-68eb42ca40f2"
      pathAndPattern jcr:primaryType="relational:procedureParameter" jcr:mixinTypes=["mix:referenceable","xmi:referenceable"] jcr:uuid="2a2de9a3-561d-4d14-82cf-8155b965d2bb"
        - relational:nullable="NULLABLE"
        - relational:radix="10"
        - relational:typeHref="http://www.w3.org/2001/XMLSchema#string"
        - relational:typeName="string"
        - relational:typeXmiUuid="bf6c34c0-c442-1e24-9b01-c8207cd53eb7"
        - xmi:uuid="f44bb026-8bdf-413b-b705-65dcd40bf437"
      NewProcedureResult jcr:primaryType="relational:procedureResult" jcr:mixinTypes=["mix:referenceable","xmi:referenceable"] jcr:uuid="b5d7be35-9a73-477e-ab20-5a4b9248da9f"
        - xmi:uuid="eb2f5c65-bede-4dd2-8c85-441c240ebca1"
        file jcr:primaryType="relational:column" jcr:mixinTypes=["mix:referenceable","xmi:referenceable"] jcr:uuid="2ebe184b-25ce-4cb4-89f4-0e6289112c68"
          - relational:autoIncremented="false"
          - relational:caseSensitive="true"
          - relational:currency="false"
          - relational:distinctValueCount="-1"
          - relational:nullValueCount="-1"
          - relational:nullable="NULLABLE"
          - relational:radix="10"
          - relational:searchability="SEARCHABLE"
          - relational:selectable="true"
          - relational:signed="true"
          - relational:typeHref="http://www.metamatrix.com/metamodels/SimpleDatatypes-instance#clob"
          - relational:typeName="clob"
          - relational:typeXmiUuid="559646c0-4941-1ece-b22b-f49159d22ad3"
          - relational:updateable="true"
          - xmi:uuid="092a2a85-7ec6-40da-9437-afd0812eccbb"
        filePath jcr:primaryType="relational:column" jcr:mixinTypes=["mix:referenceable","xmi:referenceable"] jcr:uuid="ec43aa0d-20df-49ff-8b4f-ed95961aa9a5"
          - relational:autoIncremented="false"
          - relational:caseSensitive="true"
          - relational:currency="false"
          - relational:distinctValueCount="-1"
          - relational:nullValueCount="-1"
          - relational:nullable="NULLABLE"
          - relational:radix="10"
          - relational:searchability="SEARCHABLE"
          - relational:selectable="true"
          - relational:signed="true"
          - relational:typeHref="http://www.w3.org/2001/XMLSchema#string"
          - relational:typeName="string"
          - relational:typeXmiUuid="bf6c34c0-c442-1e24-9b01-c8207cd53eb7"
          - relational:updateable="true"
          - xmi:uuid="232d5fd7-e5a6-49a7-bd5f-e5d6b7e753a3"
  Employees jcr:primaryType="vdb:model" jcr:mixinTypes=["mmcore:model","mix:referenceable","xmi:referenceable"] jcr:uuid="88ca643b-ebab-43a1-902c-462f3ea17fd8"
    - vdb:builtIn="true"
    - vdb:checksum="1269937912"
    - mmcore:maxSetSize="100"
    - mmcore:modelType="VIRTUAL"
    - mmcore:originalFile="/vdb/qe.vdb"
    - vdb:pathInVdb="QuickEmployees/Employees.xmi"
    - mmcore:primaryMetamodelUri="http://www.metamatrix.com/metamodels/Relational"
    - mmcore:producerName="Teiid Designer"
    - mmcore:producerVersion="7.0.0.v20100807-1026-H168-M1"
    - mode:sha1="a63c108098232739aad1d6ab4cf0d3cc1911aa12"
    - mmcore:supportsDistinct="true"
    - mmcore:supportsJoin="true"
    - mmcore:supportsOrderBy="true"
    - mmcore:supportsOuterJoin="true"
    - mmcore:supportsWhereAll="true"
    - xmi:uuid="9c034c0d-10c7-4fa5-beae-ff602bfcf88e"
    - xmi:version="2.0"
    - mmcore:visible="true"
    - vdb:visible="true"
    vdb:markers jcr:primaryType="vdb:markers"
      vdb:marker jcr:primaryType="vdb:marker"
        - vdb:message="Possible cross-join: Group/s '[f, emp]' are not joined either directly or transitively to other groups through a join criteria. Check all queries in the transformation."
        - vdb:path="EmpTable"
        - vdb:severity="WARNING"
    text jcr:primaryType="mmcore:import" jcr:mixinTypes=["mix:referenceable","xmi:referenceable"] jcr:uuid="ee4b288a-47b0-4c81-98e5-ddf01f8a4cda"
      - mmcore:modelType="PHYSICAL"
      - mmcore:primaryMetamodelUri="http://www.metamatrix.com/metamodels/Relational"
      - xmi:uuid="mmuuid:46ba6b40-bb81-43ba-996e-6f3ebaffea3b"
    SimpleDatatypes-instance jcr:primaryType="mmcore:import" jcr:mixinTypes=["mix:referenceable","xmi:referenceable"] jcr:uuid="98b1dbae-5ad6-4439-adb0-64d6e5d0a42f"
      - mmcore:modelType="TYPE"
      - mmcore:primaryMetamodelUri="http://www.eclipse.org/xsd/2002/XSD"
      - xmi:uuid="mmuuid:36a2080b-7243-445c-a153-79a19d42f558"
    XMLSchema jcr:primaryType="mmcore:import" jcr:mixinTypes=["mix:referenceable","xmi:referenceable"] jcr:uuid="71eba18c-195e-47ec-b925-415f981bcd45"
      - mmcore:modelType="TYPE"
      - mmcore:primaryMetamodelUri="http://www.eclipse.org/xsd/2002/XSD"
      - xmi:uuid="mmuuid:ea4a1ff7-fa32-4348-b5a2-192c554b70a4"
    EmpTable jcr:primaryType="relational:baseTable" jcr:mixinTypes=["transform:transformed","mix:referenceable","xmi:referenceable"] jcr:uuid="6209d827-62eb-4909-8e66-edbf615a42db"
      - transform:deleteAllowed="true"
      - transform:deleteSqlDefault="true"
      - transform:inputHrefs="../QuickText/text.xmi#mmuuid/bf60b5cb-fd8c-474a-9f4c-68eb42ca40f2"
      - transform:inputNames="getTextFiles"
      - transform:inputXmiUuids="bf60b5cb-fd8c-474a-9f4c-68eb42ca40f2"
      - transform:inputs="137968e0-e375-43c3-b25a-03953ff975ff"
      - transform:insertAllowed="true"
      - transform:insertSqlDefault="true"
      - relational:materialized="false"
      - transform:selectSql="SELECT * FROM (EXEC text.getTextFiles('EmpData.txt')) AS f, TEXTTABLE(F.file COLUMNS lastName string, firstName string, middleName string, empId biginteger, department string, annualSalary double, title string, homePhone string, mgrId biginteger, street string, city string, state string, ZipCode string HEADER 3) AS emp"
      - relational:supportsUpdate="true"
      - relational:system="false"
      - transform:updateAllowed="true"
      - transform:updateSqlDefault="true"
      - xmi:uuid="6179a495-7b7e-4e12-9da3-998e4f709de4"
      file jcr:primaryType="relational:column" jcr:mixinTypes=["transform:transformed","mix:referenceable","xmi:referenceable"] jcr:uuid="de7902d1-9782-4137-a002-85681e45c0c6"
        - relational:autoIncremented="false"
        - relational:caseSensitive="true"
        - relational:currency="false"
        - relational:distinctValueCount="-1"
        - transform:inputHrefs="../QuickText/text.xmi#mmuuid/092a2a85-7ec6-40da-9437-afd0812eccbb"
        - transform:inputNames="file"
        - transform:inputXmiUuids="092a2a85-7ec6-40da-9437-afd0812eccbb"
        - transform:inputs="2ebe184b-25ce-4cb4-89f4-0e6289112c68"
        - relational:nullValueCount="-1"
        - relational:nullable="NULLABLE"
        - relational:radix="10"
        - relational:searchability="SEARCHABLE"
        - relational:selectable="true"
        - relational:signed="true"
        - relational:typeHref="http://www.metamatrix.com/metamodels/SimpleDatatypes-instance#clob"
        - relational:typeName="clob"
        - relational:typeXmiUuid="559646c0-4941-1ece-b22b-f49159d22ad3"
        - relational:updateable="true"
        - xmi:uuid="5ca79549-8edc-4972-9d05-cb3066d41676"
      filePath jcr:primaryType="relational:column" jcr:mixinTypes=["transform:transformed","mix:referenceable","xmi:referenceable"] jcr:uuid="4b19a0f6-d65b-4b5b-845f-f30027947f6c"
        - relational:autoIncremented="false"
        - relational:caseSensitive="true"
        - relational:currency="false"
        - relational:distinctValueCount="-1"
        - transform:inputHrefs="../QuickText/text.xmi#mmuuid/232d5fd7-e5a6-49a7-bd5f-e5d6b7e753a3"
        - transform:inputNames="filePath"
        - transform:inputXmiUuids="232d5fd7-e5a6-49a7-bd5f-e5d6b7e753a3"
        - transform:inputs="ec43aa0d-20df-49ff-8b4f-ed95961aa9a5"
        - relational:length="10"
        - relational:nullValueCount="-1"
        - relational:nullable="NULLABLE"
        - relational:radix="10"
        - relational:searchability="SEARCHABLE"
        - relational:selectable="true"
        - relational:signed="true"
        - relational:typeHref="http://www.w3.org/2001/XMLSchema#string"
        - relational:typeName="string"
        - relational:typeXmiUuid="bf6c34c0-c442-1e24-9b01-c8207cd53eb7"
        - relational:updateable="true"
        - xmi:uuid="fea43d8f-94e4-41f3-9743-3286f8c28590"
      lastName jcr:primaryType="relational:column" jcr:mixinTypes=["mix:referenceable","xmi:referenceable"] jcr:uuid="6672adb4-1ded-4289-989d-3b707fc7384b"
        - relational:autoIncremented="false"
        - relational:caseSensitive="true"
        - relational:currency="false"
        - relational:distinctValueCount="-1"
        - relational:length="10"
        - relational:nullValueCount="-1"
        - relational:nullable="NULLABLE"
        - relational:radix="10"
        - relational:searchability="SEARCHABLE"
        - relational:selectable="true"
        - relational:signed="true"
        - relational:typeHref="http://www.w3.org/2001/XMLSchema#string"
        - relational:typeName="string"
        - relational:typeXmiUuid="bf6c34c0-c442-1e24-9b01-c8207cd53eb7"
        - relational:updateable="true"
        - xmi:uuid="f0b80cce-dd11-44b7-ab2d-4e382befd701"
      firstName jcr:primaryType="relational:column" jcr:mixinTypes=["mix:referenceable","xmi:referenceable"] jcr:uuid="13986096-1e2f-483b-b603-3e7098bc0897"
        - relational:autoIncremented="false"
        - relational:caseSensitive="true"
        - relational:currency="false"
        - relational:distinctValueCount="-1"
        - relational:length="10"
        - relational:nullValueCount="-1"
        - relational:nullable="NULLABLE"
        - relational:radix="10"
        - relational:searchability="SEARCHABLE"
        - relational:selectable="true"
        - relational:signed="true"
        - relational:typeHref="http://www.w3.org/2001/XMLSchema#string"
        - relational:typeName="string"
        - relational:typeXmiUuid="bf6c34c0-c442-1e24-9b01-c8207cd53eb7"
        - relational:updateable="true"
        - xmi:uuid="aae0eea7-fb09-4b46-9a41-8815bf5331db"
      middleName jcr:primaryType="relational:column" jcr:mixinTypes=["mix:referenceable","xmi:referenceable"] jcr:uuid="53ba886e-e6b7-4771-8a70-bf0e6c9cad63"
        - relational:autoIncremented="false"
        - relational:caseSensitive="true"
        - relational:currency="false"
        - relational:distinctValueCount="-1"
        - relational:length="10"
        - relational:nullValueCount="-1"
        - relational:nullable="NULLABLE"
        - relational:radix="10"
        - relational:searchability="SEARCHABLE"
        - relational:selectable="true"
        - relational:signed="true"
        - relational:typeHref="http://www.w3.org/2001/XMLSchema#string"
        - relational:typeName="string"
        - relational:typeXmiUuid="bf6c34c0-c442-1e24-9b01-c8207cd53eb7"
        - relational:updateable="true"
        - xmi:uuid="74333281-f3f8-4907-8ac1-4c819dfc76a8"
      empId jcr:primaryType="relational:column" jcr:mixinTypes=["mix:referenceable","xmi:referenceable"] jcr:uuid="80fcf4ac-d51d-4d24-b84f-3db7dbbcfa2b"
        - relational:autoIncremented="false"
        - relational:caseSensitive="true"
        - relational:currency="false"
        - relational:distinctValueCount="-1"
        - relational:nullValueCount="-1"
        - relational:nullable="NULLABLE"
        - relational:radix="10"
        - relational:searchability="SEARCHABLE"
        - relational:selectable="true"
        - relational:signed="true"
        - relational:typeHref="http://www.metamatrix.com/metamodels/SimpleDatatypes-instance#biginteger"
        - relational:typeName="biginteger"
        - relational:typeXmiUuid="822b9a40-a066-1e26-9b08-d6079ebe1f0d"
        - relational:updateable="true"
        - xmi:uuid="5e42fcfc-fe7a-476d-8b55-8a5ce0cd7050"
      department jcr:primaryType="relational:column" jcr:mixinTypes=["mix:referenceable","xmi:referenceable"] jcr:uuid="8c805831-d1f9-4070-9e4b-a95234e6a7d7"
        - relational:autoIncremented="false"
        - relational:caseSensitive="true"
        - relational:currency="false"
        - relational:distinctValueCount="-1"
        - relational:length="10"
        - relational:nullValueCount="-1"
        - relational:nullable="NULLABLE"
        - relational:radix="10"
        - relational:searchability="SEARCHABLE"
        - relational:selectable="true"
        - relational:signed="true"
        - relational:typeHref="http://www.w3.org/2001/XMLSchema#string"
        - relational:typeName="string"
        - relational:typeXmiUuid="bf6c34c0-c442-1e24-9b01-c8207cd53eb7"
        - relational:updateable="true"
        - xmi:uuid="36ea6df0-ddc0-4311-be2e-f4a6cbe2b580"
      annualSalary jcr:primaryType="relational:column" jcr:mixinTypes=["mix:referenceable","xmi:referenceable"] jcr:uuid="d9ee87bd-3567-4446-80f8-17bead52dd4b"
        - relational:autoIncremented="false"
        - relational:caseSensitive="true"
        - relational:currency="false"
        - relational:distinctValueCount="-1"
        - relational:nullValueCount="-1"
        - relational:nullable="NULLABLE"
        - relational:radix="10"
        - relational:searchability="SEARCHABLE"
        - relational:selectable="true"
        - relational:signed="true"
        - relational:typeHref="http://www.w3.org/2001/XMLSchema#double"
        - relational:typeName="double"
        - relational:typeXmiUuid="1f18b140-c4a3-1e24-9b01-c8207cd53eb7"
        - relational:updateable="true"
        - xmi:uuid="79c7b080-c9de-42c9-b252-a449d44e5d34"
      title jcr:primaryType="relational:column" jcr:mixinTypes=["mix:referenceable","xmi:referenceable"] jcr:uuid="794a1e06-6160-4255-8f7a-23f30e5e9af5"
        - relational:autoIncremented="false"
        - relational:caseSensitive="true"
        - relational:currency="false"
        - relational:distinctValueCount="-1"
        - relational:length="10"
        - relational:nullValueCount="-1"
        - relational:nullable="NULLABLE"
        - relational:radix="10"
        - relational:searchability="SEARCHABLE"
        - relational:selectable="true"
        - relational:signed="true"
        - relational:typeHref="http://www.w3.org/2001/XMLSchema#string"
        - relational:typeName="string"
        - relational:typeXmiUuid="bf6c34c0-c442-1e24-9b01-c8207cd53eb7"
        - relational:updateable="true"
        - xmi:uuid="001ac238-21c6-45f3-8959-3fa0c7bea6c6"
      homePhone jcr:primaryType="relational:column" jcr:mixinTypes=["mix:referenceable","xmi:referenceable"] jcr:uuid="24edebac-093d-4aaf-8063-2b4e48c9f08d"
        - relational:autoIncremented="false"
        - relational:caseSensitive="true"
        - relational:currency="false"
        - relational:distinctValueCount="-1"
        - relational:length="10"
        - relational:nullValueCount="-1"
        - relational:nullable="NULLABLE"
        - relational:radix="10"
        - relational:searchability="SEARCHABLE"
        - relational:selectable="true"
        - relational:signed="true"
        - relational:typeHref="http://www.w3.org/2001/XMLSchema#string"
        - relational:typeName="string"
        - relational:typeXmiUuid="bf6c34c0-c442-1e24-9b01-c8207cd53eb7"
        - relational:updateable="true"
        - xmi:uuid="432c3937-e7ad-40de-9cb4-deb9d52511b2"
      mgrId jcr:primaryType="relational:column" jcr:mixinTypes=["mix:referenceable","xmi:referenceable"] jcr:uuid="c61173a4-27c8-41c2-bebf-05e24fa82f94"
        - relational:autoIncremented="false"
        - relational:caseSensitive="true"
        - relational:currency="false"
        - relational:distinctValueCount="-1"
        - relational:nullValueCount="-1"
        - relational:nullable="NULLABLE"
        - relational:radix="10"
        - relational:searchability="SEARCHABLE"
        - relational:selectable="true"
        - relational:signed="true"
        - relational:typeHref="http://www.metamatrix.com/metamodels/SimpleDatatypes-instance#biginteger"
        - relational:typeName="biginteger"
        - relational:typeXmiUuid="822b9a40-a066-1e26-9b08-d6079ebe1f0d"
        - relational:updateable="true"
        - xmi:uuid="9c7b26dc-bbf6-4b83-9f03-438ad6a0b3f0"
      street jcr:primaryType="relational:column" jcr:mixinTypes=["mix:referenceable","xmi:referenceable"] jcr:uuid="ae505cbf-13bd-4c87-b020-526dece5c8b9"
        - relational:autoIncremented="false"
        - relational:caseSensitive="true"
        - relational:currency="false"
        - relational:distinctValueCount="-1"
        - relational:length="10"
        - relational:nullValueCount="-1"
        - relational:nullable="NULLABLE"
        - relational:radix="10"
        - relational:searchability="SEARCHABLE"
        - relational:selectable="true"
        - relational:signed="true"
        - relational:typeHref="http://www.w3.org/2001/XMLSchema#string"
        - relational:typeName="string"
        - relational:typeXmiUuid="bf6c34c0-c442-1e24-9b01-c8207cd53eb7"
        - relational:updateable="true"
        - xmi:uuid="1181dfe5-0d2b-4331-b10b-5d6409dd6cbe"
      city jcr:primaryType="relational:column" jcr:mixinTypes=["mix:referenceable","xmi:referenceable"] jcr:uuid="7f32a1c1-622f-40ff-8005-ab42bb02a857"
        - relational:autoIncremented="false"
        - relational:caseSensitive="true"
        - relational:currency="false"
        - relational:distinctValueCount="-1"
        - relational:length="10"
        - relational:nullValueCount="-1"
        - relational:nullable="NULLABLE"
        - relational:radix="10"
        - relational:searchability="SEARCHABLE"
        - relational:selectable="true"
        - relational:signed="true"
        - relational:typeHref="http://www.w3.org/2001/XMLSchema#string"
        - relational:typeName="string"
        - relational:typeXmiUuid="bf6c34c0-c442-1e24-9b01-c8207cd53eb7"
        - relational:updateable="true"
        - xmi:uuid="60792162-1659-416b-a6da-b78119429247"
      state jcr:primaryType="relational:column" jcr:mixinTypes=["mix:referenceable","xmi:referenceable"] jcr:uuid="41067115-320e-44e3-a70a-8a71e85fa8d8"
        - relational:autoIncremented="false"
        - relational:caseSensitive="true"
        - relational:currency="false"
        - relational:distinctValueCount="-1"
        - relational:length="10"
        - relational:nullValueCount="-1"
        - relational:nullable="NULLABLE"
        - relational:radix="10"
        - relational:searchability="SEARCHABLE"
        - relational:selectable="true"
        - relational:signed="true"
        - relational:typeHref="http://www.w3.org/2001/XMLSchema#string"
        - relational:typeName="string"
        - relational:typeXmiUuid="bf6c34c0-c442-1e24-9b01-c8207cd53eb7"
        - relational:updateable="true"
        - xmi:uuid="67ed3d16-7fd6-43bb-b16a-61579a49db91"
      ZipCode jcr:primaryType="relational:column" jcr:mixinTypes=["mix:referenceable","xmi:referenceable"] jcr:uuid="93c47676-fec3-46fa-aa19-777be6136de2"
        - relational:autoIncremented="false"
        - relational:caseSensitive="true"
        - relational:currency="false"
        - relational:distinctValueCount="-1"
        - relational:length="10"
        - relational:nullValueCount="-1"
        - relational:nullable="NULLABLE"
        - relational:radix="10"
        - relational:searchability="SEARCHABLE"
        - relational:selectable="true"
        - relational:signed="true"
        - relational:typeHref="http://www.w3.org/2001/XMLSchema#string"
        - relational:typeName="string"
        - relational:typeXmiUuid="bf6c34c0-c442-1e24-9b01-c8207cd53eb7"
        - relational:updateable="true"
        - xmi:uuid="2c2267b6-bddf-4d42-aef8-7d24e7527b65"
  EmpV jcr:primaryType="vdb:model" jcr:mixinTypes=["mmcore:model","mix:referenceable","xmi:referenceable"] jcr:uuid="c9722b47-03ad-4cdd-81d1-d75e639517a1"
    - vdb:builtIn="true"
    - vdb:checksum="2273245105"
    - mmcore:maxSetSize="100"
    - mmcore:modelType="VIRTUAL"
    - mmcore:originalFile="/vdb/qe.vdb"
    - vdb:pathInVdb="QuickEmployees/EmpV.xmi"
    - mmcore:primaryMetamodelUri="http://www.metamatrix.com/metamodels/Relational"
    - mmcore:producerName="Teiid Designer"
    - mmcore:producerVersion="7.0.0.v20100807-1026-H168-M1"
    - mode:sha1="502cc1e3dbec4c5cd880662473e8dc2a668d5e78"
    - mmcore:supportsDistinct="true"
    - mmcore:supportsJoin="true"
    - mmcore:supportsOrderBy="true"
    - mmcore:supportsOuterJoin="true"
    - mmcore:supportsWhereAll="true"
    - xmi:uuid="e17f3917-d880-4bad-9a19-7d0f8f3d2135"
    - xmi:version="2.0"
    - mmcore:visible="true"
    - vdb:visible="true"
    vdb:markers jcr:primaryType="vdb:markers"
      vdb:marker jcr:primaryType="vdb:marker"
        - vdb:message="Missing or invalid Precision on column with a numeric datatype (See validation Preferences)"
        - vdb:path="EmpTable/empId"
        - vdb:severity="WARNING"
    XMLSchema jcr:primaryType="mmcore:import" jcr:mixinTypes=["mix:referenceable","xmi:referenceable"] jcr:uuid="54a5401e-3bab-4918-81cb-4a278d0263c4"
      - mmcore:modelType="TYPE"
      - mmcore:primaryMetamodelUri="http://www.eclipse.org/xsd/2002/XSD"
      - xmi:uuid="mmuuid:deb854d2-af4d-4158-9846-4ac17f207291"
    SimpleDatatypes-instance jcr:primaryType="mmcore:import" jcr:mixinTypes=["mix:referenceable","xmi:referenceable"] jcr:uuid="699f153e-7301-4ef4-bffa-7522475f8c0a"
      - mmcore:modelType="TYPE"
      - mmcore:primaryMetamodelUri="http://www.eclipse.org/xsd/2002/XSD"
      - xmi:uuid="mmuuid:6471e823-eeee-46e8-8d7d-fb00b336cfe7"
    Employees jcr:primaryType="mmcore:import" jcr:mixinTypes=["mix:referenceable","xmi:referenceable"] jcr:uuid="5f672add-38cd-469f-a180-ac75306298b5"
      - mmcore:modelType="VIRTUAL"
      - mmcore:primaryMetamodelUri="http://www.metamatrix.com/metamodels/Relational"
      - xmi:uuid="mmuuid:5806eb6e-fc70-4ad7-b7ff-13f14ec00ca2"
    EmpTable jcr:primaryType="relational:baseTable" jcr:mixinTypes=["transform:transformed","mix:referenceable","xmi:referenceable"] jcr:uuid="0568b4b9-44c9-4798-9bee-662094015d67"
      - transform:deleteAllowed="true"
      - transform:deleteSqlDefault="true"
      - transform:inputHrefs="Employees.xmi#mmuuid/6179a495-7b7e-4e12-9da3-998e4f709de4"
      - transform:inputNames="EmpTable"
      - transform:inputXmiUuids="6179a495-7b7e-4e12-9da3-998e4f709de4"
      - transform:inputs="6209d827-62eb-4909-8e66-edbf615a42db"
      - transform:insertAllowed="true"
      - transform:insertSqlDefault="true"
      - relational:materialized="false"
      - transform:selectSql="SELECT "Employees.EmpTable.lastName", "Employees.EmpTable.firstName", "Employees.EmpTable.middleName", "Employees.EmpTable.empId", "Employees.EmpTable.department", "Employees.EmpTable.annualSalary", "Employees.EmpTable.title", "Employees.EmpTable.homePhone", "Employees.EmpTable.mgrId", "Employees.EmpTable.street", "Employees.EmpTable.city", "Employees.EmpTable.state", "Employees.EmpTable.ZipCode" FROM "Employees.EmpTable""
      - relational:supportsUpdate="true"
      - relational:system="false"
      - transform:updateAllowed="true"
      - transform:updateSqlDefault="true"
      - xmi:uuid="92cbc96b-f080-42d6-85dc-95cd07edd682"
      lastName jcr:primaryType="relational:column" jcr:mixinTypes=["transform:transformed","mix:referenceable","xmi:referenceable"] jcr:uuid="cf26def7-de5a-4a1a-8276-f48d988439e4"
        - relational:autoIncremented="false"
        - relational:caseSensitive="true"
        - relational:currency="false"
        - relational:distinctValueCount="-1"
        - transform:inputHrefs="Employees.xmi#mmuuid/f0b80cce-dd11-44b7-ab2d-4e382befd701"
        - transform:inputNames="lastName"
        - transform:inputXmiUuids="f0b80cce-dd11-44b7-ab2d-4e382befd701"
        - transform:inputs="6672adb4-1ded-4289-989d-3b707fc7384b"
        - relational:length="10"
        - relational:nullValueCount="-1"
        - relational:nullable="NULLABLE"
        - relational:radix="10"
        - relational:searchability="SEARCHABLE"
        - relational:selectable="true"
        - relational:signed="true"
        - relational:typeHref="http://www.w3.org/2001/XMLSchema#string"
        - relational:typeName="string"
        - relational:typeXmiUuid="bf6c34c0-c442-1e24-9b01-c8207cd53eb7"
        - relational:updateable="true"
        - xmi:uuid="a4c30553-7f10-445b-971b-c54cee534639"
      firstName jcr:primaryType="relational:column" jcr:mixinTypes=["transform:transformed","mix:referenceable","xmi:referenceable"] jcr:uuid="5b932651-6de2-4e89-917f-0d515a5270b0"
        - relational:autoIncremented="false"
        - relational:caseSensitive="true"
        - relational:currency="false"
        - relational:distinctValueCount="-1"
        - transform:inputHrefs="Employees.xmi#mmuuid/aae0eea7-fb09-4b46-9a41-8815bf5331db"
        - transform:inputNames="firstName"
        - transform:inputXmiUuids="aae0eea7-fb09-4b46-9a41-8815bf5331db"
        - transform:inputs="13986096-1e2f-483b-b603-3e7098bc0897"
        - relational:length="10"
        - relational:nullValueCount="-1"
        - relational:nullable="NULLABLE"
        - relational:radix="10"
        - relational:searchability="SEARCHABLE"
        - relational:selectable="true"
        - relational:signed="true"
        - relational:typeHref="http://www.w3.org/2001/XMLSchema#string"
        - relational:typeName="string"
        - relational:typeXmiUuid="bf6c34c0-c442-1e24-9b01-c8207cd53eb7"
        - relational:updateable="true"
        - xmi:uuid="a48c7515-d271-45ed-8920-22cf8c9d01bb"
      middleName jcr:primaryType="relational:column" jcr:mixinTypes=["transform:transformed","mix:referenceable","xmi:referenceable"] jcr:uuid="ac7511b4-4b3d-4d42-886e-26ea5b669b5b"
        - relational:autoIncremented="false"
        - relational:caseSensitive="true"
        - relational:currency="false"
        - relational:distinctValueCount="-1"
        - transform:inputHrefs="Employees.xmi#mmuuid/74333281-f3f8-4907-8ac1-4c819dfc76a8"
        - transform:inputNames="middleName"
        - transform:inputXmiUuids="74333281-f3f8-4907-8ac1-4c819dfc76a8"
        - transform:inputs="53ba886e-e6b7-4771-8a70-bf0e6c9cad63"
        - relational:length="10"
        - relational:nullValueCount="-1"
        - relational:nullable="NULLABLE"
        - relational:radix="10"
        - relational:searchability="SEARCHABLE"
        - relational:selectable="true"
        - relational:signed="true"
        - relational:typeHref="http://www.w3.org/2001/XMLSchema#string"
        - relational:typeName="string"
        - relational:typeXmiUuid="bf6c34c0-c442-1e24-9b01-c8207cd53eb7"
        - relational:updateable="true"
        - xmi:uuid="1d792d5e-ae70-4855-b59f-3eb7dceeb5a3"
      empId jcr:primaryType="relational:column" jcr:mixinTypes=["transform:transformed","mix:referenceable","xmi:referenceable"] jcr:uuid="d1a61bb1-f94d-40c9-bee7-f91d12b26d80"
        - relational:autoIncremented="false"
        - relational:caseSensitive="true"
        - relational:currency="false"
        - relational:distinctValueCount="-1"
        - transform:inputHrefs="Employees.xmi#mmuuid/5e42fcfc-fe7a-476d-8b55-8a5ce0cd7050"
        - transform:inputNames="empId"
        - transform:inputXmiUuids="5e42fcfc-fe7a-476d-8b55-8a5ce0cd7050"
        - transform:inputs="80fcf4ac-d51d-4d24-b84f-3db7dbbcfa2b"
        - relational:nullValueCount="-1"
        - relational:nullable="NULLABLE"
        - relational:radix="10"
        - relational:searchability="SEARCHABLE"
        - relational:selectable="true"
        - relational:signed="true"
        - relational:typeHref="http://www.metamatrix.com/metamodels/SimpleDatatypes-instance#biginteger"
        - relational:typeName="biginteger"
        - relational:typeXmiUuid="822b9a40-a066-1e26-9b08-d6079ebe1f0d"
        - relational:updateable="true"
        - xmi:uuid="d9cc45f7-c9de-44f9-b22e-3674b1a7d33c"
      department jcr:primaryType="relational:column" jcr:mixinTypes=["transform:transformed","mix:referenceable","xmi:referenceable"] jcr:uuid="46c5910c-0cb0-481c-bbad-577e52ac9c96"
        - relational:autoIncremented="false"
        - relational:caseSensitive="true"
        - relational:currency="false"
        - relational:distinctValueCount="-1"
        - transform:inputHrefs="Employees.xmi#mmuuid/36ea6df0-ddc0-4311-be2e-f4a6cbe2b580"
        - transform:inputNames="department"
        - transform:inputXmiUuids="36ea6df0-ddc0-4311-be2e-f4a6cbe2b580"
        - transform:inputs="8c805831-d1f9-4070-9e4b-a95234e6a7d7"
        - relational:length="10"
        - relational:nullValueCount="-1"
        - relational:nullable="NULLABLE"
        - relational:radix="10"
        - relational:searchability="SEARCHABLE"
        - relational:selectable="true"
        - relational:signed="true"
        - relational:typeHref="http://www.w3.org/2001/XMLSchema#string"
        - relational:typeName="string"
        - relational:typeXmiUuid="bf6c34c0-c442-1e24-9b01-c8207cd53eb7"
        - relational:updateable="true"
        - xmi:uuid="19932ef1-4794-496d-a98b-027971cb5599"
      annualSalary jcr:primaryType="relational:column" jcr:mixinTypes=["transform:transformed","mix:referenceable","xmi:referenceable"] jcr:uuid="61cb7c5a-c7f8-420d-b84a-0a4cabceed81"
        - relational:autoIncremented="false"
        - relational:caseSensitive="true"
        - relational:currency="false"
        - relational:distinctValueCount="-1"
        - transform:inputHrefs="Employees.xmi#mmuuid/79c7b080-c9de-42c9-b252-a449d44e5d34"
        - transform:inputNames="annualSalary"
        - transform:inputXmiUuids="79c7b080-c9de-42c9-b252-a449d44e5d34"
        - transform:inputs="d9ee87bd-3567-4446-80f8-17bead52dd4b"
        - relational:nullValueCount="-1"
        - relational:nullable="NULLABLE"
        - relational:radix="10"
        - relational:searchability="SEARCHABLE"
        - relational:selectable="true"
        - relational:signed="true"
        - relational:typeHref="http://www.w3.org/2001/XMLSchema#double"
        - relational:typeName="double"
        - relational:typeXmiUuid="1f18b140-c4a3-1e24-9b01-c8207cd53eb7"
        - relational:updateable="true"
        - xmi:uuid="925999e2-15a5-4728-a76e-e0c9ae235d80"
      title jcr:primaryType="relational:column" jcr:mixinTypes=["transform:transformed","mix:referenceable","xmi:referenceable"] jcr:uuid="e2db3e5e-d2c9-462c-9581-24c700792f0c"
        - relational:autoIncremented="false"
        - relational:caseSensitive="true"
        - relational:currency="false"
        - relational:distinctValueCount="-1"
        - transform:inputHrefs="Employees.xmi#mmuuid/001ac238-21c6-45f3-8959-3fa0c7bea6c6"
        - transform:inputNames="title"
        - transform:inputXmiUuids="001ac238-21c6-45f3-8959-3fa0c7bea6c6"
        - transform:inputs="794a1e06-6160-4255-8f7a-23f30e5e9af5"
        - relational:length="10"
        - relational:nullValueCount="-1"
        - relational:nullable="NULLABLE"
        - relational:radix="10"
        - relational:searchability="SEARCHABLE"
        - relational:selectable="true"
        - relational:signed="true"
        - relational:typeHref="http://www.w3.org/2001/XMLSchema#string"
        - relational:typeName="string"
        - relational:typeXmiUuid="bf6c34c0-c442-1e24-9b01-c8207cd53eb7"
        - relational:updateable="true"
        - xmi:uuid="36cf25e4-5164-4c9f-81a9-572d0fc11e8b"
      homePhone jcr:primaryType="relational:column" jcr:mixinTypes=["transform:transformed","mix:referenceable","xmi:referenceable"] jcr:uuid="6ef5a18f-db08-44e6-beb0-d7e6842f3ca5"
        - relational:autoIncremented="false"
        - relational:caseSensitive="true"
        - relational:currency="false"
        - relational:distinctValueCount="-1"
        - transform:inputHrefs="Employees.xmi#mmuuid/432c3937-e7ad-40de-9cb4-deb9d52511b2"
        - transform:inputNames="homePhone"
        - transform:inputXmiUuids="432c3937-e7ad-40de-9cb4-deb9d52511b2"
        - transform:inputs="24edebac-093d-4aaf-8063-2b4e48c9f08d"
        - relational:length="10"
        - relational:nullValueCount="-1"
        - relational:nullable="NULLABLE"
        - relational:radix="10"
        - relational:searchability="SEARCHABLE"
        - relational:selectable="true"
        - relational:signed="true"
        - relational:typeHref="http://www.w3.org/2001/XMLSchema#string"
        - relational:typeName="string"
        - relational:typeXmiUuid="bf6c34c0-c442-1e24-9b01-c8207cd53eb7"
        - relational:updateable="true"
        - xmi:uuid="8a782b60-0296-4e10-85b1-e0ec03b34d00"
      mgrId jcr:primaryType="relational:column" jcr:mixinTypes=["transform:transformed","mix:referenceable","xmi:referenceable"] jcr:uuid="11a41f81-5a32-434a-8cd9-04bbbdc4b00c"
        - relational:autoIncremented="false"
        - relational:caseSensitive="true"
        - relational:currency="false"
        - relational:distinctValueCount="-1"
        - transform:inputHrefs="Employees.xmi#mmuuid/9c7b26dc-bbf6-4b83-9f03-438ad6a0b3f0"
        - transform:inputNames="mgrId"
        - transform:inputXmiUuids="9c7b26dc-bbf6-4b83-9f03-438ad6a0b3f0"
        - transform:inputs="c61173a4-27c8-41c2-bebf-05e24fa82f94"
        - relational:nullValueCount="-1"
        - relational:nullable="NULLABLE"
        - relational:radix="10"
        - relational:searchability="SEARCHABLE"
        - relational:selectable="true"
        - relational:signed="true"
        - relational:typeHref="http://www.metamatrix.com/metamodels/SimpleDatatypes-instance#biginteger"
        - relational:typeName="biginteger"
        - relational:typeXmiUuid="822b9a40-a066-1e26-9b08-d6079ebe1f0d"
        - relational:updateable="true"
        - xmi:uuid="4f0439b3-8899-44f9-99a6-30971c4a563f"
      street jcr:primaryType="relational:column" jcr:mixinTypes=["transform:transformed","mix:referenceable","xmi:referenceable"] jcr:uuid="8b7dea23-1a6b-4a76-9fbf-5b4770b8cac9"
        - relational:autoIncremented="false"
        - relational:caseSensitive="true"
        - relational:currency="false"
        - relational:distinctValueCount="-1"
        - transform:inputHrefs="Employees.xmi#mmuuid/1181dfe5-0d2b-4331-b10b-5d6409dd6cbe"
        - transform:inputNames="street"
        - transform:inputXmiUuids="1181dfe5-0d2b-4331-b10b-5d6409dd6cbe"
        - transform:inputs="ae505cbf-13bd-4c87-b020-526dece5c8b9"
        - relational:length="10"
        - relational:nullValueCount="-1"
        - relational:nullable="NULLABLE"
        - relational:radix="10"
        - relational:searchability="SEARCHABLE"
        - relational:selectable="true"
        - relational:signed="true"
        - relational:typeHref="http://www.w3.org/2001/XMLSchema#string"
        - relational:typeName="string"
        - relational:typeXmiUuid="bf6c34c0-c442-1e24-9b01-c8207cd53eb7"
        - relational:updateable="true"
        - xmi:uuid="c68dfbeb-bc26-4932-ae0b-d354ed000a4e"
      city jcr:primaryType="relational:column" jcr:mixinTypes=["transform:transformed","mix:referenceable","xmi:referenceable"] jcr:uuid="a1c94897-33ae-4d9e-9dd5-7c9a09e7ebf2"
        - relational:autoIncremented="false"
        - relational:caseSensitive="true"
        - relational:currency="false"
        - relational:distinctValueCount="-1"
        - transform:inputHrefs="Employees.xmi#mmuuid/60792162-1659-416b-a6da-b78119429247"
        - transform:inputNames="city"
        - transform:inputXmiUuids="60792162-1659-416b-a6da-b78119429247"
        - transform:inputs="7f32a1c1-622f-40ff-8005-ab42bb02a857"
        - relational:length="10"
        - relational:nullValueCount="-1"
        - relational:nullable="NULLABLE"
        - relational:radix="10"
        - relational:searchability="SEARCHABLE"
        - relational:selectable="true"
        - relational:signed="true"
        - relational:typeHref="http://www.w3.org/2001/XMLSchema#string"
        - relational:typeName="string"
        - relational:typeXmiUuid="bf6c34c0-c442-1e24-9b01-c8207cd53eb7"
        - relational:updateable="true"
        - xmi:uuid="b27874ae-4c7b-4545-84f1-5d95c6a70b3a"
      state jcr:primaryType="relational:column" jcr:mixinTypes=["transform:transformed","mix:referenceable","xmi:referenceable"] jcr:uuid="d5fded76-1ddc-4a87-af76-a566bb5919dc"
        - relational:autoIncremented="false"
        - relational:caseSensitive="true"
        - relational:currency="false"
        - relational:distinctValueCount="-1"
        - transform:inputHrefs="Employees.xmi#mmuuid/67ed3d16-7fd6-43bb-b16a-61579a49db91"
        - transform:inputNames="state"
        - transform:inputXmiUuids="67ed3d16-7fd6-43bb-b16a-61579a49db91"
        - transform:inputs="41067115-320e-44e3-a70a-8a71e85fa8d8"
        - relational:length="10"
        - relational:nullValueCount="-1"
        - relational:nullable="NULLABLE"
        - relational:radix="10"
        - relational:searchability="SEARCHABLE"
        - relational:selectable="true"
        - relational:signed="true"
        - relational:typeHref="http://www.w3.org/2001/XMLSchema#string"
        - relational:typeName="string"
        - relational:typeXmiUuid="bf6c34c0-c442-1e24-9b01-c8207cd53eb7"
        - relational:updateable="true"
        - xmi:uuid="248a034b-7331-46ee-a4a4-5db5176ce1bc"
      ZipCode jcr:primaryType="relational:column" jcr:mixinTypes=["transform:transformed","mix:referenceable","xmi:referenceable"] jcr:uuid="a73b2a7c-9b19-4697-ae83-f7be5cca7778"
        - relational:autoIncremented="false"
        - relational:caseSensitive="true"
        - relational:currency="false"
        - relational:distinctValueCount="-1"
        - transform:inputHrefs="Employees.xmi#mmuuid/2c2267b6-bddf-4d42-aef8-7d24e7527b65"
        - transform:inputNames="ZipCode"
        - transform:inputXmiUuids="2c2267b6-bddf-4d42-aef8-7d24e7527b65"
        - transform:inputs="93c47676-fec3-46fa-aa19-777be6136de2"
        - relational:length="10"
        - relational:nullValueCount="-1"
        - relational:nullable="NULLABLE"
        - relational:radix="10"
        - relational:searchability="SEARCHABLE"
        - relational:selectable="true"
        - relational:signed="true"
        - relational:typeHref="http://www.w3.org/2001/XMLSchema#string"
        - relational:typeName="string"
        - relational:typeXmiUuid="bf6c34c0-c442-1e24-9b01-c8207cd53eb7"
        - relational:updateable="true"
        - xmi:uuid="836656b4-30b1-4c57-a64b-f810763a4a0c"

22.6. Configuring a Data Services VDB Sequencer

  1. Include the relevant libraries

    Include modeshape-sequencer-teiid-VERSION.jar in your application.
  2. Choose one of the following for sequencing configuration

    • Define sequencing configuration based on standard example provided in SOA-ROOT/eds/modeshape/resources/modeshape-config-standard.xml:
      <mode:sequencer jcr:name="Teiid VDB Sequencer" mode:classname="org.modeshape.sequencer.teiid.VdbSequencer">
        <mode:description>
          Sequences Teiid Virtual Databases (e.g., *.vdb) loaded under '/files', extracting the VDB metadata and the structure defined in the VDB's relational models.
        </mode:description>
        <mode:pathExpression>
          eds-store:default:/files(//)(*.vdb[*])/jcr:content[@jcr:data] => eds-store:default:/sequenced/teiid/vdbs$1
        </mode:pathExpression>
      </mode:sequencer>
      
    • Configure via org.modeshape.jcr.JcrConfiguration:
      JcrConfiguration config = ...
      
      config.sequencer("Teiid VDB Sequencer")
            .usingClass("org.modeshape.sequencer.teiid.VdbSequencer")
            .loadedFromClasspath()
            .setDescription("Sequences Teiid Virtual Databases (e.g., *.vdb) loaded under '/files', extracting the VDB metadata and the structure defined in the VDB's relational models.")
            .sequencingFrom("/files(//)(*.vdb[*])/jcr:content[@jcr:data]")
            .andOutputtingTo("/sequenced/teiid/vdbs$1");

    Note

    Refer to SOA-ROOT/eds/modeshape/resources/modeshape-config-standard.xml for more information.