comparison Lib/IMPL/DOM/Schema/Node.pm @ 148:e6447ad85cb4

DOM objects now have a schema and schemaSource properties RegExp now can launder data Improved post to DOM transformation (multiple values a now supported) Added new axes to navigation queries: ancestor and descendant minor changes and bug fixes
author wizard
date Mon, 16 Aug 2010 08:26:44 +0400
parents 196bf443b5e1
children 1e7f03414b65
comparison
equal deleted inserted replaced
147:c2aa10fbb396 148:e6447ad85cb4
16 public _direct property display_no => prop_all; 16 public _direct property display_no => prop_all;
17 public _direct property display_blame => prop_all; 17 public _direct property display_blame => prop_all;
18 } 18 }
19 19
20 our %CTOR = ( 20 our %CTOR = (
21 'IMPL::DOM::Node' => sub {my %args = @_; $args{nodeName} ||= 'Node'; %args} 21 'IMPL::DOM::Node' => sub {
22 my %args = @_;
23 delete @args{qw(
24 minOccur
25 maxOccur
26 type
27 name
28 display
29 display_no
30 display_blame
31 )} ;
32 $args{nodeName} ||= 'Node';
33 %args
34 }
22 ); 35 );
23 36
24 sub CTOR { 37 sub CTOR {
25 my ($this,%args) = @_; 38 my ($this,%args) = @_;
26 39
27 $this->{$minOccur} = defined $args{minOccur} ? $args{minOccur} : 1; 40 $this->{$minOccur} = defined $args{minOccur} ? $args{minOccur} : 1;
28 $this->{$maxOccur} = defined $args{maxOccur} ? $args{maxOccur} : 1; 41 $this->{$maxOccur} = defined $args{maxOccur} ? $args{maxOccur} : 1;
29 $this->{$type} = $args{type}; 42 $this->{$type} = $args{type};
30 $this->{$name} = $args{name} or die new IMPL::InvalidArgumentException('Argument is required','name'); 43 $this->{$name} = $args{name} or die new IMPL::InvalidArgumentException('Argument is required','name');
31 $this->{$display} = $args{display}; 44 $this->{$display} = $args{display} if $args{display};
32 $this->{$display_no} = $args{display_no}; 45 $this->{$display_no} = $args{display_no} if $args{display};
33 $this->{$display_blame} = $args{display_blame}; 46 $this->{$display_blame} = $args{display_blame} if $args{display};
34 } 47 }
35 48
36 sub Validate { 49 sub Validate {
37 my ($this,$node) = @_; 50 my ($this,$node) = @_;
38 51
68 my ($this,$node) = @_; 81 my ($this,$node) = @_;
69 } 82 }
70 83
71 =head1 DESCRIPTION 84 =head1 DESCRIPTION
72 85
73 Базовый класс для элементов схемы. 86 Базовый класс для элементов схемы. Также позволяет объявлять узлы определенного типа.
87
88 =head1 MEMBERS
89
90 =head2 PROPERTIES
91
92 =over
93
94 =item C<[get,set] minOccur>
95
96 C<default: 1>.
97
98 Минимальное количество повторений узла.
99
100 =item C<[get,set] maxOccur>
101
102 C<default: 1>.
103
104 Максимальное количество повторений узла
105
106 =item C<[get,set] type>
107
108 C<default: undef>
109
110 Имя типа из схемы.
111
112 =item C<[get,set] name>
113
114 Имя узла.
115
116 =item C<[get,set] display>
117
118 Имя узла для отображения.
119
120 =item C<[get,set] display_no>
121
122 Имя узла для отображения (родительный падеж).
123
124 =item C<[get,set] display_blame>
125
126 Имя узла для отображения (винительный падеж).
127
128 =back
74 129
75 =cut 130 =cut