Cloud Software Group, Inc. EBX®
Documentation > Developer Guide > Data model
Navigation mode Documentation > Developer Guide > Data model

# Introduction

A data model is a structural definition of the data to be managed in the TIBCO EBX® repository. Data models contribute to EBX®'s ability to guarantee the highest level of data consistency and to facilitate data management.

Specifically, the data model is a document that conforms to the XML Schema standard (W3C recommendation). Its main features are as follows:

- A rich library of well-defined simple data types, such as integer, boolean, decimal, date, time;

- The ability to define additional simple types and complex types;

- The ability to define simple lists of items, called aggregated lists;

- Validation constraints (facets), for example: enumerations, uniqueness constraints, minimum/maximum boundaries.

EBX® also uses the extensibility features of XML Schema for other useful information, such as:

- Predefined types, for example: locale, resource, html;

- Definition of tables and foreign key constraints;

- Mapping data in EBX® to Java beans;

- Advanced validation constraints (extended facets), such as dynamic enumerations;

- Extensive presentation information, such as labels, descriptions, and error messages.

##### Note

EBX® supports a subset of the W3C recommendations, as some features are not relevant to Master Data Management.

## Editing the data model

There are two different ways to define a data model:

- The data model can be defined using an XML Schema editor or through the data model assistant. The data model assistant has the advantage of being integrated into the EBX® user interface, abstracting the verbose underlying XML. For more information, see Introduction to data models.

  The data model assistant allows using features that are not documented to be used outside of the DMA; e.g. Toolbars and Widgets.

- By using an external XML Schema document editor.

## References

For an introduction to XML Schema, see the W3Schools XML Schema Tutorial.

##### See also

- XML Schema Part 0: Primer
- XML Schema Part 1: Structures
- XML Schema Part 2: Datatypes

## Relationship between datasets and data models

Each root dataset is associated with a single data model. At the dataspace creation, an associated data model is selected, on which to base the dataset.

##### See also

- Creating a dataset

## Pre-requisite for XML Schemas

In order for an XML Schema to be accepted by EBX®, it must include a global element declaration that includes the attribute `osd:access="--"`.

    <?xml version="1.0" encoding="UTF-8"?>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
    		xmlns:osd="urn:ebx-schemas:common_1.0" xmlns:fmt="urn:ebx-schemas:format_1.0">
       <xs:import namespace="urn:ebx-schemas:common_1.0"
       		schemaLocation="https://schema.orchestranetworks.com/common_1.0.xsd"/>
       <xs:element name="root" osd:access="--">
    		...
      </xs:element>
    </xs:schema>

## Conventions

By convention, namespaces are always defined as follows:

Prefix | Namespace
--- | ---
`xs:` | `http://www.w3.org/2001/XMLSchema`
`osd:` | `urn:ebx-schemas:common_1.0`
`fmt:` | `urn:ebx-schemas:format_1.0`
`usd:` | `urn:ebx-schemas:userServices_1.0`
`emd:` | `urn:ebx-schemas:entityMappings_1.0`

## Schemas with reserved names

Several data models in EBX® have reserved names.

All references to other data models (using the attribute `schemaLocation` for an import, include or redefine) that end with one of the following strings are reserved:

- common_1.0.xsd

- org_1.0.xsd

- coreModel_1.0.xsd

- session_1.0.xsd

- userServices_1.0.xsd

- entityMappings_1.0.xsd

These XSD files correspond to the schemas provided for the module `ebx-root-1.0`, at the path `/WEB-INF/ebx/schemas`. The attribute `schemaLocation` can reference the files at this location or a copy, if the file names are identical. This is useful if you want to avoid a module dependency on `ebx-root-1.0`.

For security reasons, EBX® uses an internal definition for these schemas to prevent any modification.

Documentation > Developer Guide > Data model