diff data/model.xml @ 0:cbdada054b4a

Basic schemas for generating csharp internal dom from model definition
author cin
date Wed, 21 Feb 2018 03:01:53 +0300
parents
children 7f803979305f
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/data/model.xml	Wed Feb 21 03:01:53 2018 +0300
@@ -0,0 +1,128 @@
+<?xml version="1.0"?>
+<package xmlns="http://implab.org/schemas/data-model.v1.xsd"
+	xmlns:f="http://implab.org/schemas/data-model/geo.v1.xsd" xmlns:clr="http://implab.org/schemas/data-model/dotnet.v1.xsd"
+	xmlns:sql="http://implab.org/schemas/data-model/sql.v1.xsd" xmlns:esri="http://geopallada.ru/schemas/data-model/esri.v1.xsd"
+	name="poisk-more" version="1.0" clr:namespace="Pallada.PoiskMore.Model">
+
+	<!-- Импортируем стандартные типы для строк, дат, чисел и т.п. -->
+	<import href="types.xml" />
+	<import href="rccs.xml" />
+
+	<!-- определяем внешние типы, которые объявлены вне модели, но на них есть 
+		ссылки в самой модели -->
+	<type name="IncidentData">
+		<clr:type name="IncidentData" namespace="Pallada.Exchange.Sar" />
+	</type>
+
+	<entity name="BaseEntity">
+		<!-- <extends type="MaritimeRcc"/> -->
+	</entity>
+
+	<f:simpleFeature name="SarUnit">
+		<description>Поисково-спасательная единица, характеризует
+			судно,
+			принимающее участие в ПСО
+		</description>
+		<f:geometry name="Location" type="Point">
+			<description>Местоположение СРУ на момент начала ПСО</description>
+			<esri:geometry name="Shape" type="esriGeometryPoint"
+				mode="shape" />
+		</f:geometry>
+		<primaryKey name="Id" type="uuid" />
+		<hasA name="Region" type="Region">
+			<description>Район проведения операции, в котором будет работать
+				данная единица.
+			</description>
+			<thisKey name="RegionId" matches="Id" />
+		</hasA>
+		<hasA name="Operation" type="Operation" optional="true">
+			<description>Идентификатор операции, используется для фильтрации
+				объектов на карте.
+			</description>
+			<thisKey name="OperationId">
+				<esri:field name="OperId" mode="shape" />
+			</thisKey>
+		</hasA>
+		<property name="Departure" type="datetime">
+			<description>Дата отправления из исходной точки</description>
+		</property>
+		<property name="EstimatedArrival" type="datetime">
+			<description>Ожидаемое время прибытия в конечную точку</description>
+			<esri:field name="Eta" mode="shape" />
+		</property>
+		<property name="CrewFactor" type="datetime">
+			<description>Коэффициент усталости экипажа</description>
+			<esri:field name="Fcrew" mode="shape" />
+		</property>
+	</f:simpleFeature>
+
+	<entity name="Operation">
+		<sql:table name="Operation" />
+		<primaryKey name="Id" type="uuid" />
+		<property name="Name" type="string">
+			<clr:type ref="string" />
+			<description>Название операции</description>
+		</property>
+		<hasA name="Case" type="SarCase" optional="true">
+			<description>Дело, с которым связана операция</description>
+			<thisKey name="CaseId" />
+			<clr:lazy />
+			<clr:association />
+		</hasA>
+		<property name="Closed" type="bool">
+			<description>Признак того, что операция завершена, т.е. ее нельзя
+				редактировать и она не отображается в списке операций
+			</description>
+		</property>
+		<property name="Date" type="datetime">
+			<description>Дата начала операции</description>
+		</property>
+		<hasMany name="Regions" type="Region">
+			<description>Список районов поиска</description>
+			<otherKey name="OperationId" />
+			<clr:association>
+				<clr:type ref="listOf">
+					<clr:type ref="Region" />
+				</clr:type>
+			</clr:association>
+		</hasMany>
+		<property name="IncidentData" type="IncidentData">
+			<description>Информация о происшествии на основании которой
+				строилась
+				данная операция
+			</description>
+			<sql:type name="text" />
+			<xmlMember />
+		</property>
+		<hasA name="Coordinator" type="MaritimeRcc" nullable="true">
+			<thisKey name="CoordinatorId" />
+		</hasA>
+	</entity>
+
+	<entity name="SarCase">
+		<description>Поисково-спасательное дело, собирает в себе информацию об
+			операциях, аварийном случае, поступающих данных.</description>
+		<sql:table name="SarCase" />
+		<primaryKey name="Id" type="uuid" />
+		<property name="CaseNo" type="string" sql:nullable="false">
+			<description>Номер дела, которое объединяет несколько операций,
+				номера дел должны быть уникальными и не пустыми.
+			</description>
+		</property>
+		<hasMany name="Operations" type="Operation">
+			<description>Операции выполненные в рамках текущего дела
+			</description>
+			<otherKey name="Case" />
+			<clr:association>
+				<clr:type>
+					<arrayOf type="Operation"/>
+				</clr:type>
+			</clr:association>
+		</hasMany>
+	</entity>
+	
+	<entity name="Region">
+		<description>Район проведение поисково-спасательной операции</description>
+	</entity>
+
+</package>
\ No newline at end of file