comparison Lib/IMPL/DOM/Schema/SimpleNode.pm @ 103:c289ed9662ca

Schema beta 2 More strict validation, support for inflating a simple nodes and properties
author wizard
date Fri, 07 May 2010 18:17:40 +0400
parents 16ada169ca75
children 196bf443b5e1
comparison
equal deleted inserted replaced
102:cf3b6ef2be22 103:c289ed9662ca
1 package IMPL::DOM::Schema::SimpleNode; 1 package IMPL::DOM::Schema::SimpleNode;
2 use strict; 2 use strict;
3 use warnings; 3 use warnings;
4 4
5 use base qw(IMPL::DOM::Schema::Node); 5 use base qw(IMPL::DOM::Schema::Node);
6 use IMPL::Class::Property;
7 use IMPL::Class::Property::Direct;
8
9 BEGIN {
10 public _direct property inflator => prop_get;
11 }
6 12
7 our %CTOR = ( 13 our %CTOR = (
8 'IMPL::DOM::Schema::Node' => sub {my %args = @_; $args{nodeName} ||= 'SimpleNode'; %args} 14 'IMPL::DOM::Schema::Node' => sub {my %args = @_; $args{nodeName} ||= 'SimpleNode'; %args}
9 ); 15 );
16
17 sub CTOR {
18 my ($this,%args) = @_;
19
20 $this->{$inflator} = $args{inflator} if $args{iflator};
21 }
10 22
11 sub Validate { 23 sub Validate {
12 my ($this,$node) = @_; 24 my ($this,$node) = @_;
13 25
14 map $_->Validate($node), @{$this->childNodes}; 26 return map $_->Validate($node), @{$this->childNodes};
15 } 27 }
16 28
17 1; 29 1;
18 30
19 __END__ 31 __END__
20 32
21 =pod 33 =pod
22 34
35 =head1 NAME
36
37 C<IMPL::DOM::SimpleNode> - узел с текстом.
38
23 =head1 DESCRIPTION 39 =head1 DESCRIPTION
24 40
25 Узел имеющий простое значение. Данный узел может содержать ограничения 41 Узел имеющий простое значение. Данный узел может содержать ограничения
26 на простое значение. 42 на простое значение.
27 43
44 Производит валидацию содержимого, при постоении DOM модели не имеет специального
45 типа и будет создан в виде C<IMPL::DOM::Node>.
46
47 Также определяет как будет воссоздано значение узла в DOM модели.
28 48
29 =cut 49 =cut