Импорт моделей данных

Импорт моделей данных различных объектов системы позволяет загружать файлы, описывающие структуру этих объектов.

Импорт может производиться 3 способами:

Условия импорта

Важные условия импорта, которые необходимо соблюдать при импорте объектов (типов активов, типов связей и связей):

  • Наследованный атрибут должен быть представлен в родительском объекте.

  • Дочерний актив должен представлять атрибуты родительского.

  • Главный отображаемый атрибут нельзя изменять.

  • Атрибут, который является главным отображаемым, должен также быть и отображаемым.

  • Объект обновляется при импорте, если версия = 1. Если версия объекта = 0 или не указана, то обновление не производится.

  • Модель физического слоя в текущей реализации доступна для обновления через стандартный импорт. В следующих релизах будет введен запрет на удаление некоторых объектов и атрибутов физического слоя, таким образом пользователь сможет только расширять объекты физического слоя.

Ограничения при импорте

  • Недоступны для обновления с помощью импорта: имя актива, имя типа связи, а также левый и правый концы связи.

  • Нельзя удалить атрибут, содержащий данные.

  • Нельзя изменить тип атрибута (например, тип атрибута Строковый изменить на тип Численный).

  • Нельзя сделать атрибут уникальным:

    • Фактически это можно сделать, но если существуют дублирующиеся данные, то такие данные будут неконсистентны, а обновить такую запись можно будет, только если изменить значение соответствующего атрибута на уникальное.

XSD схема модели

Скачать dg-model-schema-2.5.xsd

  1<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
  2<xs:schema version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  3
  4    <xs:element name="data-governance-model">
  5        <xs:complexType>
  6            <xs:all>
  7                <xs:element name="assetTypes" minOccurs="0">
  8                    <xs:complexType>
  9                        <xs:sequence>
 10                            <xs:element name="assetType" type="assetType" maxOccurs="unbounded" minOccurs="0"/>
 11                        </xs:sequence>
 12                    </xs:complexType>
 13                </xs:element>
 14                <xs:element name="relationTypes" minOccurs="0">
 15                    <xs:complexType>
 16                        <xs:sequence>
 17                            <xs:element name="relationType" type="relationType" maxOccurs="unbounded" minOccurs="0"/>
 18                        </xs:sequence>
 19                    </xs:complexType>
 20                </xs:element>
 21                <xs:element name="relations" minOccurs="0">
 22                    <xs:complexType>
 23                        <xs:sequence>
 24                            <xs:element name="relation" type="relation" maxOccurs="unbounded" minOccurs="0"/>
 25                        </xs:sequence>
 26                    </xs:complexType>
 27                </xs:element>
 28            </xs:all>
 29            <xs:attribute name="description" type="xs:string"/>
 30            <xs:attribute name="displayName" type="xs:string"/>
 31            <xs:attribute name="name" type="xs:string"/>
 32        </xs:complexType>
 33    </xs:element>
 34
 35    <xs:complexType name="assetType">
 36        <xs:sequence>
 37            <xs:element name="simpleAttribute" type="simpleAttribute" minOccurs="0" maxOccurs="unbounded"/>
 38            <xs:element name="arrayAttribute" type="arrayAttribute" minOccurs="0" maxOccurs="unbounded"/>
 39            <xs:element name="complexAttribute" type="complexAttribute" minOccurs="0" maxOccurs="unbounded"/>
 40            <xs:element name="inheritedSimpleAttributes" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
 41            <xs:element name="inheritedArrayAttributes" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
 42            <xs:element name="inheritedComplexAttributes" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
 43            <xs:element name="tags" type="tag" minOccurs="0" maxOccurs="unbounded"/>
 44            <xs:element name="customProperties" type="customProperty" minOccurs="0" maxOccurs="unbounded"/>
 45        </xs:sequence>
 46        <xs:attribute name="description" type="xs:string"/>
 47        <xs:attribute name="displayName" type="xs:string"/>
 48        <xs:attribute name="name" type="xs:string"/>
 49        <xs:attribute name="parentAssetType" type="xs:string"/>
 50        <xs:attribute name="icon" type="xs:string"/>
 51        <xs:attribute name="color" type="xs:string"/>
 52    </xs:complexType>
 53
 54    <xs:complexType name="arrayAttribute">
 55        <xs:complexContent>
 56            <xs:extension base="abstractSearchableAttribute">
 57                <xs:sequence>
 58                    <xs:element name="dictionaryDataType" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
 59                    <xs:element name="defaultValue" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
 60                    <xs:element name="customProperties" type="customProperty" minOccurs="0" maxOccurs="unbounded"/>
 61                    <xs:element name="lookupEntitySearchAttributes" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
 62                    <xs:element name="lookupEntityDisplayAttributes" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
 63                </xs:sequence>
 64                <xs:attribute name="base" type="xs:boolean"/>
 65                <xs:attribute name="arrayValueType" type="arrayValueType"/>
 66                <xs:attribute name="exchangeSeparator" type="xs:string"/>
 67                <xs:attribute name="searchCaseInsensitive" type="xs:boolean"/>
 68                <xs:attribute name="searchMorphologically" type="xs:boolean"/>
 69                <xs:attribute name="lookupEntityType" type="xs:string"/>
 70                <xs:attribute name="lookupEntityCodeAttributeType" type="simpleDataType"/>
 71            </xs:extension>
 72        </xs:complexContent>
 73    </xs:complexType>
 74
 75    <xs:complexType name="complexAttribute">
 76        <xs:complexContent>
 77            <xs:extension base="abstractAttribute">
 78                <xs:sequence>
 79                    <xs:element name="customProperties" type="customProperty" minOccurs="0" maxOccurs="unbounded"/>
 80                </xs:sequence>
 81                <xs:attribute name="base" type="xs:boolean"/>
 82                <xs:attribute name="maxCount" type="xs:int"/>
 83                <xs:attribute name="minCount" type="xs:int"/>
 84                <xs:attribute name="nestedEntityName" type="xs:string"/>
 85            </xs:extension>
 86        </xs:complexContent>
 87    </xs:complexType>
 88
 89    <xs:complexType name="simpleAttribute">
 90        <xs:complexContent>
 91            <xs:extension base="abstractSearchableAttribute">
 92                <xs:sequence>
 93                    <xs:element name="measureSettings" type="measurementSettings" minOccurs="0" maxOccurs="1"/>
 94                    <xs:element name="dictionaryDataType" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
 95                    <xs:element name="customProperties" type="customProperty" minOccurs="0" maxOccurs="unbounded"/>
 96                    <xs:element name="lookupEntitySearchAttributes" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
 97                    <xs:element name="lookupEntityDisplayAttributes" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
 98                </xs:sequence>
 99                <xs:attribute name="base" type="xs:boolean"/>
100                <xs:attribute name="linkDataType" type="xs:string"/>
101                <xs:attribute name="enumDataType" type="xs:string"/>
102                <xs:attribute name="simpleDataType" type="simpleDataType"/>
103                <xs:attribute name="searchCaseInsensitive" type="xs:boolean"/>
104                <xs:attribute name="searchMorphologically" type="xs:boolean"/>
105                <xs:attribute name="unique" type="xs:boolean"/>
106                <xs:attribute name="defaultValue" type="xs:string"/>
107                <xs:attribute name="lookupEntityType" type="xs:string"/>
108                <xs:attribute name="lookupEntityCodeAttributeType" type="simpleDataType"/>
109            </xs:extension>
110        </xs:complexContent>
111    </xs:complexType>
112	
113	<xs:complexType name="tag">
114        <xs:attribute name="name" type="xs:string"/>
115        <xs:attribute name="value" type="xs:string"/>
116    </xs:complexType>
117
118    <xs:complexType name="customProperty">
119        <xs:attribute name="name" type="xs:string"/>
120        <xs:attribute name="value" type="xs:string"/>
121    </xs:complexType>
122
123    <xs:complexType name="abstractSearchableAttribute" abstract="true">
124        <xs:complexContent>
125            <xs:extension base="abstractAttribute">
126                <xs:attribute name="displayable" type="xs:boolean"/>
127                <xs:attribute name="mainDisplayable" type="xs:boolean"/>
128                <xs:attribute name="searchable" type="xs:boolean"/>
129                <xs:attribute name="useAttributeNameForDisplay" type="xs:boolean"/>
130            </xs:extension>
131        </xs:complexContent>
132    </xs:complexType>
133
134    <xs:complexType name="abstractAttribute" abstract="true">
135        <xs:attribute name="description" type="xs:string"/>
136        <xs:attribute name="displayName" type="xs:string"/>
137        <xs:attribute name="hidden" type="xs:boolean"/>
138        <xs:attribute name="name" type="xs:string"/>
139        <xs:attribute name="nullable" type="xs:boolean"/>
140        <xs:attribute name="order" type="xs:int"/>
141        <xs:attribute name="readOnly" type="xs:boolean"/>
142    </xs:complexType>
143
144    <xs:complexType name="nestedEntity">
145        <xs:sequence>
146            <xs:element name="simpleAttribute" type="simpleAttribute" minOccurs="0" maxOccurs="unbounded"/>
147            <xs:element name="arrayAttribute" type="arrayAttribute" minOccurs="0" maxOccurs="unbounded"/>
148            <xs:element name="customProperties" type="customProperty" minOccurs="0" maxOccurs="unbounded"/>
149        </xs:sequence>
150        <xs:attribute name="description" type="xs:string"/>
151        <xs:attribute name="displayName" type="xs:string"/>
152        <xs:attribute name="name" type="xs:string"/>
153    </xs:complexType>
154
155    <xs:complexType name="relationType">
156        <xs:sequence>
157            <xs:element name="customProperties" type="customProperty" minOccurs="0" maxOccurs="unbounded"/>
158        </xs:sequence>
159        <xs:attribute name="color" type="xs:string"/>
160        <xs:attribute name="direction" type="relationDirection"/>
161        <xs:attribute name="inner" type="xs:boolean"/>
162        <xs:attribute name="inwardDisplayName" type="xs:string"/>
163        <xs:attribute name="name" type="xs:string"/>
164        <xs:attribute name="outwardDisplayName" type="xs:string"/>
165    </xs:complexType>
166
167    <xs:complexType name="relation">
168        <xs:sequence>
169            <xs:element name="customProperties" type="customProperty" minOccurs="0" maxOccurs="unbounded"/>
170        </xs:sequence>
171        <xs:attribute name="fromAssetType" type="xs:string"/>
172        <xs:attribute name="fromCardinality" type="xs:int"/>
173        <xs:attribute name="relationType" type="xs:string"/>
174        <xs:attribute name="required" type="xs:boolean"/>
175        <xs:attribute name="toAssetType" type="xs:string"/>
176        <xs:attribute name="toCardinality" type="xs:int"/>
177    </xs:complexType>
178
179    <xs:complexType name="measurementSettings">
180        <xs:attribute name="categoryId" type="xs:string"/>
181        <xs:attribute name="defaultUnitId" type="xs:string"/>
182    </xs:complexType>
183
184    <xs:simpleType name="arrayValueType">
185        <xs:restriction base="xs:string">
186            <xs:enumeration value="Date"/>
187            <xs:enumeration value="Time"/>
188            <xs:enumeration value="Timestamp"/>
189            <xs:enumeration value="String"/>
190            <xs:enumeration value="Integer"/>
191            <xs:enumeration value="Number"/>
192        </xs:restriction>
193    </xs:simpleType>
194
195    <xs:simpleType name="simpleDataType">
196        <xs:restriction base="xs:string">
197            <xs:enumeration value="Date"/>
198            <xs:enumeration value="Time"/>
199            <xs:enumeration value="Timestamp"/>
200            <xs:enumeration value="String"/>
201            <xs:enumeration value="Integer"/>
202            <xs:enumeration value="Number"/>
203            <xs:enumeration value="Boolean"/>
204            <xs:enumeration value="Blob"/>
205            <xs:enumeration value="Clob"/>
206        </xs:restriction>
207    </xs:simpleType>
208
209    <xs:simpleType name="relationDirection">
210        <xs:restriction base="xs:string">
211            <xs:enumeration value="ONE_DIRECTIONAL"/>
212            <xs:enumeration value="BIDIRECTIONAL"/>
213        </xs:restriction>
214    </xs:simpleType>
215</xs:schema>
216