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 | Свойство узла обозначающее, что узел является шаблонным указывается явно. Это нужно по следующим причинам: базовые требования не попадают в производное дерево, если на них не ссылаются; при указании ссылки на базовое требование желательно позволять указывать только базовые узлы. |