Mercurial > pub > Impl
diff 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 |
line wrap: on
line diff
--- a/Lib/IMPL/DOM/Schema/SimpleNode.pm Fri May 07 08:05:23 2010 +0400 +++ b/Lib/IMPL/DOM/Schema/SimpleNode.pm Fri May 07 18:17:40 2010 +0400 @@ -3,15 +3,27 @@ use warnings; use base qw(IMPL::DOM::Schema::Node); +use IMPL::Class::Property; +use IMPL::Class::Property::Direct; + +BEGIN { + public _direct property inflator => prop_get; +} our %CTOR = ( 'IMPL::DOM::Schema::Node' => sub {my %args = @_; $args{nodeName} ||= 'SimpleNode'; %args} -); +); + +sub CTOR { + my ($this,%args) = @_; + + $this->{$inflator} = $args{inflator} if $args{iflator}; +} sub Validate { my ($this,$node) = @_; - map $_->Validate($node), @{$this->childNodes}; + return map $_->Validate($node), @{$this->childNodes}; } 1; @@ -20,10 +32,18 @@ =pod +=head1 NAME + +C<IMPL::DOM::SimpleNode> - узел с текстом. + =head1 DESCRIPTION Узел имеющий простое значение. Данный узел может содержать ограничения на простое значение. +Производит валидацию содержимого, при постоении DOM модели не имеет специального +типа и будет создан в виде C<IMPL::DOM::Node>. + +Также определяет как будет воссоздано значение узла в DOM модели. =cut