Mercurial > pub > Impl
annotate Lib/IMPL/DOM/Schema/Node.pm @ 20:267460284fb3
DOM Schema
| author | Sergey | 
|---|---|
| date | Tue, 22 Sep 2009 17:17:38 +0400 | 
| parents | 1ca530e5c9c5 | 
| children | 7f00786f8210 | 
| 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 { | |
| 19 
1ca530e5c9c5
DOM схема, требует переработки в части схемы для описания схем. Автоверификация не проходит
 Sergey parents: 
18diff
changeset | 11 public property minOccur => prop_all; | 
| 
1ca530e5c9c5
DOM схема, требует переработки в части схемы для описания схем. Автоверификация не проходит
 Sergey parents: 
18diff
changeset | 12 public property maxOccur => prop_all; | 
| 20 | 13 public property type => prop_all; | 
| 14 public 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 | |
| 20 | 24 $this->minOccur(defined $args{minOccur} ? $args{minOccur} : 1); | 
| 19 
1ca530e5c9c5
DOM схема, требует переработки в части схемы для описания схем. Автоверификация не проходит
 Sergey parents: 
18diff
changeset | 25 $this->maxOccur(defined $args{maxOccur} ? $args{maxOccur} : 1); | 
| 18 | 26 $this->type($args{type}); | 
| 20 | 27 $this->name($args{name}) or die new IMPL::InvalidArgumentException('Argument is required','name'); | 
| 18 | 28 } | 
| 29 | |
| 19 
1ca530e5c9c5
DOM схема, требует переработки в части схемы для описания схем. Автоверификация не проходит
 Sergey parents: 
18diff
changeset | 30 sub Validate { | 
| 
1ca530e5c9c5
DOM схема, требует переработки в части схемы для описания схем. Автоверификация не проходит
 Sergey parents: 
18diff
changeset | 31 my ($this,$node) = @_; | 
| 
1ca530e5c9c5
DOM схема, требует переработки в части схемы для описания схем. Автоверификация не проходит
 Sergey parents: 
18diff
changeset | 32 | 
| 
1ca530e5c9c5
DOM схема, требует переработки в части схемы для описания схем. Автоверификация не проходит
 Sergey parents: 
18diff
changeset | 33 if (my $schemaType = $this->type ? $this->rootNode->resolveType($this->type) : undef ) { | 
| 
1ca530e5c9c5
DOM схема, требует переработки в части схемы для описания схем. Автоверификация не проходит
 Sergey parents: 
18diff
changeset | 34 return $schemaType->Validate($node); | 
| 20 | 35 } else { | 
| 36 return (); | |
| 19 
1ca530e5c9c5
DOM схема, требует переработки в части схемы для описания схем. Автоверификация не проходит
 Sergey parents: 
18diff
changeset | 37 } | 
| 
1ca530e5c9c5
DOM схема, требует переработки в части схемы для описания схем. Автоверификация не проходит
 Sergey parents: 
18diff
changeset | 38 } | 
| 
1ca530e5c9c5
DOM схема, требует переработки в части схемы для описания схем. Автоверификация не проходит
 Sergey parents: 
18diff
changeset | 39 | 
| 18 | 40 1; | 
| 41 | |
| 42 __END__ | |
| 43 =pod | |
| 44 | |
| 45 =head1 SYNOPSIS | |
| 46 | |
| 47 package Restriction; | |
| 48 use base qw(IMPL::DOM::Schema::Item); | |
| 49 | |
| 50 sub Validate { | |
| 51 my ($this,$node) = @_; | |
| 52 } | |
| 53 | |
| 54 =head1 DESCRIPTION | |
| 55 | |
| 20 | 56 . | 
| 18 | 57 | 
| 58 =cut | 
