Mercurial > pub > Impl
diff Lib/IMPL/DOM/Schema/Node.pm @ 148:e6447ad85cb4
DOM objects now have a schema and schemaSource properties
RegExp now can launder data
Improved post to DOM transformation (multiple values a now supported)
Added new axes to navigation queries: ancestor and descendant
minor changes and bug fixes
author | wizard |
---|---|
date | Mon, 16 Aug 2010 08:26:44 +0400 |
parents | 196bf443b5e1 |
children | 1e7f03414b65 |
line wrap: on
line diff
--- a/Lib/IMPL/DOM/Schema/Node.pm Mon Aug 09 08:45:36 2010 +0400 +++ b/Lib/IMPL/DOM/Schema/Node.pm Mon Aug 16 08:26:44 2010 +0400 @@ -18,7 +18,20 @@ } our %CTOR = ( - 'IMPL::DOM::Node' => sub {my %args = @_; $args{nodeName} ||= 'Node'; %args} + 'IMPL::DOM::Node' => sub { + my %args = @_; + delete @args{qw( + minOccur + maxOccur + type + name + display + display_no + display_blame + )} ; + $args{nodeName} ||= 'Node'; + %args + } ); sub CTOR { @@ -28,9 +41,9 @@ $this->{$maxOccur} = defined $args{maxOccur} ? $args{maxOccur} : 1; $this->{$type} = $args{type}; $this->{$name} = $args{name} or die new IMPL::InvalidArgumentException('Argument is required','name'); - $this->{$display} = $args{display}; - $this->{$display_no} = $args{display_no}; - $this->{$display_blame} = $args{display_blame}; + $this->{$display} = $args{display} if $args{display}; + $this->{$display_no} = $args{display_no} if $args{display}; + $this->{$display_blame} = $args{display_blame} if $args{display}; } sub Validate { @@ -70,6 +83,48 @@ =head1 DESCRIPTION -Базовый класс для элементов схемы. +Базовый класс для элементов схемы. Также позволяет объявлять узлы определенного типа. + +=head1 MEMBERS + +=head2 PROPERTIES + +=over + +=item C<[get,set] minOccur> + +C<default: 1>. + +Минимальное количество повторений узла. + +=item C<[get,set] maxOccur> + +C<default: 1>. + +Максимальное количество повторений узла + +=item C<[get,set] type> + +C<default: undef> + +Имя типа из схемы. + +=item C<[get,set] name> + +Имя узла. + +=item C<[get,set] display> + +Имя узла для отображения. + +=item C<[get,set] display_no> + +Имя узла для отображения (родительный падеж). + +=item C<[get,set] display_blame> + +Имя узла для отображения (винительный падеж). + +=back =cut