Mercurial > pub > Impl
annotate Lib/IMPL/DOM/Schema/Node.pm @ 32:56cef8e3cda6
+1
| author | Sergey |
|---|---|
| date | Mon, 09 Nov 2009 01:39:31 +0300 |
| parents | 7f00786f8210 |
| children | c2e7f7c96bcd |
| rev | line source |
|---|---|
| 18 | 1 package IMPL::DOM::Schema::Node; |
| 2 use strict; | |
| 3 use warnings; | |
| 4 | |
| 5 use base qw(IMPL::DOM::Node); | |
| 6 use IMPL::Class::Property; | |
| 7 use IMPL::DOM::Property qw(_dom); | |
| 8 use IMPL::Class::Property::Direct; | |
| 9 | |
| 10 BEGIN { | |
| 24 | 11 public _direct property minOccur => prop_all; |
| 12 public _direct property maxOccur => prop_all; | |
| 13 public _direct property type => prop_all; | |
| 14 public _direct property name => prop_all; | |
| 18 | 15 } |
| 16 | |
| 20 | 17 our %CTOR = ( |
| 18 'IMPL::DOM::Node' => sub {my %args = @_; $args{nodeName} ||= 'Node'; %args} | |
| 19 ); | |
| 18 | 20 |
| 21 sub CTOR { | |
| 22 my ($this,%args) = @_; | |
| 23 | |
| 24 | 24 $this->{$minOccur} = defined $args{minOccur} ? $args{minOccur} : 1; |
| 25 $this->{$maxOccur} = defined $args{maxOccur} ? $args{maxOccur} : 1; | |
| 26 $this->{$type} = $args{type}; | |
| 27 $this->{$name} = $args{name} or die new IMPL::InvalidArgumentException('Argument is required','name'); | |
| 18 | 28 } |
| 29 | |
|
19
1ca530e5c9c5
DOM схема, требует переработки в части схемы для описания схем. Автоверификация не проходит
Sergey
parents:
18
diff
changeset
|
30 sub Validate { |
|
1ca530e5c9c5
DOM схема, требует переработки в части схемы для описания схем. Автоверификация не проходит
Sergey
parents:
18
diff
changeset
|
31 my ($this,$node) = @_; |
|
1ca530e5c9c5
DOM схема, требует переработки в части схемы для описания схем. Автоверификация не проходит
Sergey
parents:
18
diff
changeset
|
32 |
| 24 | 33 if (my $schemaType = $this->{$type} ? $this->rootNode->resolveType($this->{$type}) : undef ) { |
|
19
1ca530e5c9c5
DOM схема, требует переработки в части схемы для описания схем. Автоверификация не проходит
Sergey
parents:
18
diff
changeset
|
34 return $schemaType->Validate($node); |
| 20 | 35 } else { |
| 36 return (); | |
|
19
1ca530e5c9c5
DOM схема, требует переработки в части схемы для описания схем. Автоверификация не проходит
Sergey
parents:
18
diff
changeset
|
37 } |
|
1ca530e5c9c5
DOM схема, требует переработки в части схемы для описания схем. Автоверификация не проходит
Sergey
parents:
18
diff
changeset
|
38 } |
|
1ca530e5c9c5
DOM схема, требует переработки в части схемы для описания схем. Автоверификация не проходит
Sergey
parents:
18
diff
changeset
|
39 |
| 24 | 40 sub qname { |
| 41 $_[0]->nodeName.'[name='.$_[0]->{$name}.']'; | |
| 42 } | |
| 43 | |
| 18 | 44 1; |
| 45 | |
| 46 __END__ | |
| 47 =pod | |
| 48 | |
| 49 =head1 SYNOPSIS | |
| 50 | |
| 51 package Restriction; | |
| 52 use base qw(IMPL::DOM::Schema::Item); | |
| 53 | |
| 54 sub Validate { | |
| 55 my ($this,$node) = @_; | |
| 56 } | |
| 57 | |
| 58 =head1 DESCRIPTION | |
| 59 | |
| 20 | 60 . |
| 18 | 61 |
| 62 =cut |
