# HG changeset patch
# User cin
# Date 1519567953 -10800
# Node ID 035de8b7b18e503d79c90c07cb1e4f83fed6e5b4
# Parent 7f803979305f7bed4dade6cf0b6e6c3658a8c738
Temporary commit, refactoring, added readme
diff -r 7f803979305f -r 035de8b7b18e data/model.xml
--- a/data/model.xml Thu Feb 22 19:14:00 2018 +0300
+++ b/data/model.xml Sun Feb 25 17:12:33 2018 +0300
@@ -97,6 +97,9 @@
+
+
+
@@ -124,5 +127,38 @@
Район проведение поисково-спасательной операции
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff -r 7f803979305f -r 035de8b7b18e readme.md
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/readme.md Sun Feb 25 17:12:33 2018 +0300
@@ -0,0 +1,160 @@
+
+# SINOPSYS
+
+```xml
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+# DESCRIPTION
+
+Описание модели включает в себя описание наборов сущностей, каждый набор
+называется пакетом.
+
+В пакете содержатся описания сущностей, а также объявления внешних типов,
+которые используются при описании сущностей.
+
+Для уменьшения количества дублируемого кода, а также для упрощения читаемости
+и упрощения сопровождения существует возможность импортирования уже объявленных
+пакетов. В процессе сборки происходит предварительная обработка, которая
+использует все директивы `import` для составления общего модуля, состоящего
+из нескольких пакетов, при этом пакет с которого был начат процесс сборки
+называется первичным и после окончания предварительной обработки для него будет
+выполнена сборка.
+
+Каждая сущность модели состоит из нескольких типов членов, это
+* Свойства - используются для хранения состояния сущности, аналогичны столбцам в таблице
+* Ключи - информация для идентификации записей, каждая запись должна иметь по крайней мере первичный ключ.
+* Отношения - информация о связях между сущностями
+
+## Properties
+
+## PrimaryKey
+
+Внешний ключ представляет собой набор уникальных данных, позволяющий однозначно
+идентифицировать запись, при этом внешний ключ может состоять как из одного
+поля (простые), так и из нескольких (составные)
+
+Простые первичные ключи
+
+```xml
+
+```
+
+Составные первичные ключи
+
+```xml
+
+
+
+
+
+
+
+
+```
+При описании составных ключей перечисляется набор членов сущности, которые
+будут образовывать уникальный набор данных для первичного ключа, следует
+отметить, что не все отношения храняться в самой сущности, например,
+`hasMany` может хранится не в записях самой сущности, а в записях связанной
+сущности, такие отношения нельзя включать в первичный ключ.
+Отношение `hasA`, напротив, как парвило хранится в свойствах самой сущности
+и включение его в первичный ключ означает автоматическое включение всех
+свойств.
+
+## Relations
+
+### hasA
+
+`hasA` это отношение, при котором текущей сущности может
+соответсвовать одна связанная сущность. При реализации
+данного отношение может быть указано свойство, используемое
+для хранения ссылки при помощи дочернего элемента `thisKey`
+
+`thisKey` указывает способ реализации отношения, при котором
+в текущей сущности хранится информация для осуществления связи.
+
+По-умолчанию для связи используются первичные ключи, что
+позволяет автоматически определять набор и типы необходимых
+свойств для хранения ссылки.
+
+```xml
+
+
+
+```
+
+В случях когда первичный ключ является сложным можно указать
+префикс или явно перечислить свойства в которых будет хранится
+связь
+
+```xml
+
+
+
+
+
+
+
+
+```
+
+### hasMany
+
+Отношение при котором с текущей записью связано произвольное
+количество записей другой сущности.
+
+Как правило это отношение является комплиментарным к `hasA` с другой стороны.
+
+```xml
+
+
+
+```
+
+`otherKey` указывает имя члена в связанной сущности, который хранит информацию
+о связи, это может быть оношение, свойство или ключ.
\ No newline at end of file
diff -r 7f803979305f -r 035de8b7b18e xslt/generator.csharp.xsl
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/xslt/generator.csharp.xsl Sun Feb 25 17:12:33 2018 +0300
@@ -0,0 +1,379 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ return
+
+ .Key;
+
+
+
+ .Key = value;
+
+
+
+
+
+ return
+
+ .Instance;
+
+
+
+ .Instance = value;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ m_lazy
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff -r 7f803979305f -r 035de8b7b18e xslt/model.xsl
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/xslt/model.xsl Sun Feb 25 17:12:33 2018 +0300
@@ -0,0 +1,312 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff -r 7f803979305f -r 035de8b7b18e xslt/model.xslt
--- a/xslt/model.xslt Thu Feb 22 19:14:00 2018 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,659 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- return
-
- .Key;
-
-
-
- .Key = value;
-
-
-
-
-
- return
-
- .Instance;
-
-
-
- .Instance = value;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- m_lazy
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff -r 7f803979305f -r 035de8b7b18e xslt/preprocess.xsl
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/xslt/preprocess.xsl Sun Feb 25 17:12:33 2018 +0300
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff -r 7f803979305f -r 035de8b7b18e xslt/preprocess.xslt
--- a/xslt/preprocess.xslt Thu Feb 22 19:14:00 2018 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,19 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file