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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Скачать dg-model-schema-2.9.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="inheritedSimpleAttributeObjects" type="inheritedAttribute" minOccurs="0" maxOccurs="unbounded"/>
 41            <xs:element name="inheritedArrayAttributeObjects" type="inheritedAttribute" minOccurs="0" maxOccurs="unbounded"/>
 42            <xs:element name="inheritedComplexAttributeObjects" type="inheritedAttribute" 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:attribute name="crawlerClassName" type="xs:string"/>
 53        <xs:attribute name="libraryVersion" type="xs:string"/>
 54        <xs:attribute name="libraryName" type="xs:string"/>
 55        <xs:attribute name="version" type="xs:int"/>
 56    </xs:complexType>
 57
 58    <xs:complexType name="arrayAttribute">
 59        <xs:complexContent>
 60            <xs:extension base="abstractSearchableAttribute">
 61                <xs:sequence>
 62                    <xs:element name="dictionaryDataType" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
 63                    <xs:element name="defaultValue" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
 64                    <xs:element name="lookupEntitySearchAttributes" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
 65                    <xs:element name="lookupEntityDisplayAttributes" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
 66                    <xs:element name="tags" type="tag" minOccurs="0" maxOccurs="unbounded"/>
 67                </xs:sequence>
 68                <xs:attribute name="base" type="xs:boolean"/>
 69                <xs:attribute name="arrayValueType" type="arrayValueType"/>
 70                <xs:attribute name="exchangeSeparator" type="xs:string"/>
 71                <xs:attribute name="searchCaseInsensitive" type="xs:boolean"/>
 72                <xs:attribute name="searchMorphologically" type="xs:boolean"/>
 73                <xs:attribute name="searchWithTransliteration" type="xs:boolean"/>
 74                <xs:attribute name="searchWithSynonyms" type="xs:boolean"/>
 75                <xs:attribute name="searchCustomSort" type="searchSort"/>
 76                <xs:attribute name="uniqueValues" type="xs:boolean"/>
 77                <xs:attribute name="lookupEntityType" type="xs:string"/>
 78                <xs:attribute name="lookupEntityCodeAttributeType" type="simpleDataType"/>
 79            </xs:extension>
 80        </xs:complexContent>
 81    </xs:complexType>
 82
 83    <xs:complexType name="complexAttribute">
 84        <xs:complexContent>
 85            <xs:extension base="abstractAttribute">
 86                <xs:sequence>
 87                    <xs:element name="tags" type="tag" minOccurs="0" maxOccurs="unbounded"/>
 88                </xs:sequence>
 89                <xs:attribute name="base" type="xs:boolean"/>
 90                <xs:attribute name="maxCount" type="xs:int"/>
 91                <xs:attribute name="minCount" type="xs:int"/>
 92                <xs:attribute name="nestedEntityName" type="xs:string"/>
 93                <xs:attribute name="nestedEntityKeyAttribute" type="xs:string"/>
 94            </xs:extension>
 95        </xs:complexContent>
 96    </xs:complexType>
 97
 98    <xs:complexType name="simpleAttribute">
 99        <xs:complexContent>
100            <xs:extension base="abstractSearchableAttribute">
101                <xs:sequence>
102                    <xs:element name="measureSettings" type="measurementSettings" minOccurs="0" maxOccurs="1"/>
103                    <xs:element name="dictionaryDataType" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
104                    <xs:element name="lookupEntitySearchAttributes" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
105                    <xs:element name="lookupEntityDisplayAttributes" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
106                    <xs:element name="tags" type="tag" minOccurs="0" maxOccurs="unbounded"/>
107                </xs:sequence>
108                <xs:attribute name="base" type="xs:boolean"/>
109                <xs:attribute name="linkDataType" type="xs:string"/>
110                <xs:attribute name="enumDataType" type="xs:string"/>
111                <xs:attribute name="simpleDataType" type="simpleDataType"/>
112                <xs:attribute name="searchCaseInsensitive" type="xs:boolean"/>
113                <xs:attribute name="searchMorphologically" type="xs:boolean"/>
114                <xs:attribute name="searchWithTransliteration" type="xs:boolean"/>
115                <xs:attribute name="searchWithSynonyms" type="xs:boolean"/>
116                <xs:attribute name="searchCustomSort" type="searchSort"/>
117                <xs:attribute name="unique" type="xs:boolean"/>
118                <xs:attribute name="defaultValue" type="xs:string"/>
119                <xs:attribute name="lookupEntityType" type="xs:string"/>
120                <xs:attribute name="lookupEntityCodeAttributeType" type="simpleDataType"/>
121            </xs:extension>
122        </xs:complexContent>
123    </xs:complexType>
124
125    <xs:complexType name="tag">
126        <xs:attribute name="name" type="xs:string"/>
127        <xs:attribute name="value" type="xs:string"/>
128    </xs:complexType>
129
130    <xs:complexType name="customProperty">
131        <xs:attribute name="name" type="xs:string"/>
132        <xs:attribute name="value" type="xs:string"/>
133    </xs:complexType>
134
135    <xs:complexType name="inheritedAttribute">
136        <xs:attribute name="name" type="xs:string"/>
137        <xs:attribute name="order" type="xs:int"/>
138    </xs:complexType>
139
140    <xs:complexType name="abstractSearchableAttribute" abstract="true">
141        <xs:complexContent>
142            <xs:extension base="abstractAttribute">
143                <xs:attribute name="displayable" type="xs:boolean"/>
144                <xs:attribute name="mainDisplayable" type="xs:boolean"/>
145                <xs:attribute name="searchable" type="xs:boolean"/>
146                <xs:attribute name="useAttributeNameForDisplay" type="xs:boolean"/>
147            </xs:extension>
148        </xs:complexContent>
149    </xs:complexType>
150
151    <xs:complexType name="abstractAttribute" abstract="true">
152        <xs:sequence>
153            <xs:element name="customProperties" type="customProperty" minOccurs="0" maxOccurs="unbounded"/>
154        </xs:sequence>
155        <xs:attribute name="description" type="xs:string"/>
156        <xs:attribute name="displayName" type="xs:string"/>
157        <xs:attribute name="hidden" type="xs:boolean"/>
158        <xs:attribute name="name" type="xs:string"/>
159        <xs:attribute name="nullable" type="xs:boolean"/>
160        <xs:attribute name="order" type="xs:int"/>
161        <xs:attribute name="readOnly" type="xs:boolean"/>
162    </xs:complexType>
163
164    <xs:complexType name="nestedEntity">
165        <xs:sequence>
166            <xs:element name="simpleAttribute" type="simpleAttribute" minOccurs="0" maxOccurs="unbounded"/>
167            <xs:element name="arrayAttribute" type="arrayAttribute" minOccurs="0" maxOccurs="unbounded"/>
168            <xs:element name="customProperties" type="customProperty" minOccurs="0" maxOccurs="unbounded"/>
169            <xs:element name="tags" type="tag" minOccurs="0" maxOccurs="unbounded"/>
170        </xs:sequence>
171        <xs:attribute name="description" type="xs:string"/>
172        <xs:attribute name="displayName" type="xs:string"/>
173        <xs:attribute name="name" type="xs:string"/>
174        <xs:attribute name="crawlerClassName" type="xs:string"/>
175        <xs:attribute name="libraryVersion" type="xs:string"/>
176        <xs:attribute name="libraryName" type="xs:string"/>
177        <xs:attribute name="version" type="xs:int"/>
178    </xs:complexType>
179
180    <xs:complexType name="relationType">
181        <xs:sequence>
182            <xs:element name="customProperties" type="customProperty" minOccurs="0" maxOccurs="unbounded"/>
183            <xs:element name="tags" type="tag" minOccurs="0" maxOccurs="unbounded"/>
184        </xs:sequence>
185        <xs:attribute name="color" type="xs:string"/>
186        <xs:attribute name="direction" type="relationDirection"/>
187        <xs:attribute name="inner" type="xs:boolean"/>
188        <xs:attribute name="inwardDisplayName" type="xs:string"/>
189        <xs:attribute name="name" type="xs:string"/>
190        <xs:attribute name="outwardDisplayName" type="xs:string"/>
191        <xs:attribute name="crawlerClassName" type="xs:string"/>
192        <xs:attribute name="libraryVersion" type="xs:string"/>
193        <xs:attribute name="libraryName" type="xs:string"/>
194        <xs:attribute name="version" type="xs:int"/>
195    </xs:complexType>
196
197    <xs:complexType name="relation">
198        <xs:sequence>
199            <xs:element name="customProperties" type="customProperty" minOccurs="0" maxOccurs="unbounded"/>
200            <xs:element name="simpleAttribute" type="simpleAttribute" minOccurs="0" maxOccurs="unbounded"/>
201            <xs:element name="tags" type="tag" minOccurs="0" maxOccurs="unbounded"/>
202        </xs:sequence>
203        <xs:attribute name="fromAssetType" type="xs:string"/>
204        <xs:attribute name="fromCardinality" type="xs:int"/>
205        <xs:attribute name="relationType" type="xs:string"/>
206        <xs:attribute name="required" type="xs:boolean"/>
207        <xs:attribute name="toAssetType" type="xs:string"/>
208        <xs:attribute name="toCardinality" type="xs:int"/>
209        <xs:attribute name="crawlerClassName" type="xs:string"/>
210        <xs:attribute name="libraryVersion" type="xs:string"/>
211        <xs:attribute name="libraryName" type="xs:string"/>
212        <xs:attribute name="version" type="xs:int"/>
213    </xs:complexType>
214
215    <xs:complexType name="measurementSettings">
216        <xs:attribute name="categoryId" type="xs:string"/>
217        <xs:attribute name="defaultUnitId" type="xs:string"/>
218    </xs:complexType>
219
220    <xs:simpleType name="arrayValueType">
221        <xs:restriction base="xs:string">
222            <xs:enumeration value="Date"/>
223            <xs:enumeration value="Time"/>
224            <xs:enumeration value="Timestamp"/>
225            <xs:enumeration value="String"/>
226            <xs:enumeration value="Integer"/>
227            <xs:enumeration value="Number"/>
228            <xs:enumeration value="Blob"/>
229            <xs:enumeration value="Clob"/>
230        </xs:restriction>
231    </xs:simpleType>
232
233    <xs:simpleType name="simpleDataType">
234        <xs:restriction base="xs:string">
235            <xs:enumeration value="Date"/>
236            <xs:enumeration value="Time"/>
237            <xs:enumeration value="Timestamp"/>
238            <xs:enumeration value="String"/>
239            <xs:enumeration value="Integer"/>
240            <xs:enumeration value="Number"/>
241            <xs:enumeration value="Boolean"/>
242            <xs:enumeration value="Blob"/>
243            <xs:enumeration value="Clob"/>
244        </xs:restriction>
245    </xs:simpleType>
246
247    <xs:simpleType name="relationDirection">
248        <xs:restriction base="xs:string">
249            <xs:enumeration value="ONE_DIRECTIONAL"/>
250            <xs:enumeration value="BIDIRECTIONAL"/>
251        </xs:restriction>
252    </xs:simpleType>
253
254    <xs:simpleType name="searchSort">
255        <xs:restriction base="xs:string">
256            <xs:enumeration value="DEFAULT"/>
257            <xs:enumeration value="TRANSLIT"/>
258        </xs:restriction>
259    </xs:simpleType>
260</xs:schema>