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:
18
diff
changeset
|
11 public property minOccur => prop_all; |
1ca530e5c9c5
DOM схема, требует переработки в части схемы для описания схем. Автоверификация не проходит
Sergey
parents:
18
diff
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:
18
diff
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:
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 |
1ca530e5c9c5
DOM схема, требует переработки в части схемы для описания схем. Автоверификация не проходит
Sergey
parents:
18
diff
changeset
|
33 if (my $schemaType = $this->type ? $this->rootNode->resolveType($this->type) : undef ) { |
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 |
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 |