Mercurial > pub > Impl
comparison Lib/IMPL/DOM/Schema/Validator/RegExp.pm @ 100:df6b4f054957
Schema in progress
Added simple mailer
author | wizard |
---|---|
date | Thu, 06 May 2010 00:54:17 +0400 |
parents | |
children | 196bf443b5e1 |
comparison
equal
deleted
inserted
replaced
99:6dd659f6f66c | 100:df6b4f054957 |
---|---|
1 package IMPL::DOM::Schema::Validator::RegExp; | |
2 | |
3 use base qw(IMPL::DOM::Schema::Validator); | |
4 | |
5 our %CTOR = ( | |
6 'IMPL::DOM::Schema::Validator' => sub { | |
7 my %args = @_; | |
8 $args{nodeName} ||= 'RegExp'; | |
9 %args; | |
10 } | |
11 ); | |
12 | |
13 use IMPL::Class::Property; | |
14 | |
15 BEGIN { | |
16 public property message => prop_all; | |
17 } | |
18 | |
19 sub CTOR { | |
20 my ($this) = @_; | |
21 | |
22 $this->message("A %Node.nodeName% doesn't match to the format %Schema.name%"); | |
23 } | |
24 | |
25 sub Validate { | |
26 my ($this,$node) = @_; | |
27 | |
28 my $rx = $this->nodeValue; | |
29 return new IMPL::DOM::Schema::ValidationError( | |
30 Node => $node, | |
31 Source => $this, | |
32 Schema => $this->parentNode, | |
33 Message => $this->message | |
34 ) unless (not $node->isComplex) and $node->nodeValue =~ /$rx/; | |
35 } | |
36 | |
37 1; |