A VDB or virtual database definition is contained in an XML file. For .vdb archive files created in the design tool, this file is embedded in the archive and most fields can be updated through tooling. The XML schema for this file can be found in the docs/teiid/schema directory.
Example VDB XML
<vdb name="${vdb-name}" version="${vdb-version}">
<!-- VDB properties -->
<property name="${property-name}" value="${property-value}" />
<!-- UDF defined in an AS module, see Developers Guide -->
<property name ="lib" value ="{module-name}"></property>
<import-vdb name="..." version="..." import-data-policies="true|false"/>
<!-- define a model fragment for each data source -->
<model visible="true" name="${model-name}" type="${model-type}" >
<property name="..." value="..." />
<source name="${source-name}" translator-name="${translator-name}" connection-jndi-name="${deployed-jndi-name}">
<metadata type="${repository-type}">raw text</metadata>
</model>
<!-- define a model with multiple sources - see Multi-Source Models -->
<model name="${model-name}" path="/Test/Customers.xmi">
<property name="multisource" value="true"/>
. . .
<source name="${source-name}"
translator-name="${translator-name}" connection-jndi-name="${deployed-jndi-name}"/>
<source . . . />
<source . . . />
</model>
<!-- see Reference Guide - Data Roles -->
<data-role name="${role-name}">
<description>${role-description}</description>
….
</data-role>
<!-- create translator instances that override default properties -->
<translator name="${translator-name}" type="${translator-type}" />
<property name="..." value="..." />
</translator>
</vdb>
VDB Element
Attributes
Property Elements
import-vdb Element
Attributes
Model Element
Attributes
Source Element
A source is a named binding of a translator and connection source to a model.
-
name
The name of the source to use for this model. This can be any name you like, but will typically be the same as the model name. Having a name different than the model name is only useful in multi-source scenarios. In multi-source, the source names under a given model must be unique. If you have the same source bound to multiple models it may have the same name for each. An exception will be raised if the same source name is used for different sources.
-
translator-name
The name or type of the Teiid Translator to use. Possible values include the built-in types (ws, file, ldap, oracle, sqlserver, db2, derby, etc.) and translators defined in the translators section.
Property Elements
Metadata Element
The optional metadata element defines the metadata repository type and optional raw metadata to be consumed by the metadata repository.
-
type
The metadata repository type. Defaults to INDEX for Designer VDBs and NATIVE for non-Designer VDB source models. For all other deployments/models a value must be specified. Built-in types include DDL, NATIVE, INDEX, and DDL-FILE. The usage of the raw text varies with the by type. The raw text is not used with NATIVE and INDEX (only for Designer VDBs) metadata repositories. The raw text for DDL is expected to be be a series of DDL statements that define the schema - see also DDL Metadata. DDL-FILE (used only with zip deployments) is similar to DDL, except that the raw text specifies an absolute path relative to the vdb root of the location of a file containing the DDL. See also Custom Metadata Repository.
Translator Element
Attributes
-
type
The base type of the Translator. Can be one of the built-in types (ws, file, ldap, oracle, sqlserver, db2, derby, etc.).
Property Elements