Project

General

Profile

Work-plan » History » Version 14

Yuriy Shekochihin, 03/09/2010 12:06 PM

1 9 Yuriy Shekochihin
h1. План улучшений requality
2 1 Yuriy Shekochihin
3 13 Yuriy Shekochihin
h2. Типизированные атрибуты
4
5
Каждому атрибуту узла соответствует определенный тип, который накладывает ограничения на значение атрибута.
6
7
Типы атрибутов можно разбить на три класса:
8 14 Yuriy Shekochihin
* шаблонные(ограничения на которые можно задать регулярным выражением - int, float, boolean, string, ...);
9 13 Yuriy Shekochihin
* перечислимые(например имена всех дочерних узлов какого либо узла);
10
* специальные(id, predicate).
11
12 5 Yuriy Shekochihin
h2. Идентификаторы узлов
13 1 Yuriy Shekochihin
14 12 Yuriy Shekochihin
Каждому узлу дерева соответствует идентификатор. Идентификатор - это последовательность "безопасных" символов. Кроме того, для идентификаторов узлов в исходном дереве допускаются символы ''{'', ''}'' и ''$''. Подстроки вида ${name}, где name-имя атрибута контекста, называются параметрами. Идентификатор узла, содержащий параметры, называется параметризованным. При инстанцировании параметры заменяются на значения атрибутов. Таким образом идентификаторы исходного дерева преобразуются в параметры производного дерева.
15 1 Yuriy Shekochihin
16 5 Yuriy Shekochihin
h2. Укороченные ссылки на узлы дерева
17
18 12 Yuriy Shekochihin
Возможно использовать неполный идентификатор для указания узла в дереве, если его достаточно для однозначного определения узла дерева. Если узел, на который ссылаются, имеет идентификатор "c" и родителя "b", родителем "b" является узел "a", то на узел "с" возможно сослаться следующими образами:
19 7 Yuriy Shekochihin
* ".a.b.c" - полный идентификатор;
20 8 Yuriy Shekochihin
* "с" - идентификатор узла в описанном дереве является уникальным, что делает такой вариант допустимым;
21 7 Yuriy Shekochihin
* "a.**.c" - узел "с" в поддереве "a";
22
* "b.c" - узел "с", являющийся ребенком узла "b"
23 6 Yuriy Shekochihin
24 1 Yuriy Shekochihin
h2. Необязательное название узлов
25 5 Yuriy Shekochihin
26 11 Yuriy Shekochihin
Одним из необязательных атрибутов узла является его имя. Предполагается, что оно будет использоваться вместо идентификатора узла при генерации отчетов.
27 9 Yuriy Shekochihin
28 12 Yuriy Shekochihin
h2. Шаблонные узлы
29 9 Yuriy Shekochihin
30 12 Yuriy Shekochihin
Свойство узла обозначающее, что узел является шаблонным указывается явно. Это нужно по следующим причинам: базовые требования не попадают в производное дерево, если на них не ссылаются; при указании ссылки на базовое требование желательно позволять указывать только базовые узлы.