Mercurial > pub > Impl
diff Lib/IMPL/DOM/Schema/ValidationError.pm @ 236:2904da230022
DOM refactoring
author | sergey |
---|---|
date | Mon, 15 Oct 2012 04:23:01 +0400 |
parents | 6d8092d8ce1b |
children | 6b6d4b2275a1 |
line wrap: on
line diff
--- a/Lib/IMPL/DOM/Schema/ValidationError.pm Fri Oct 12 02:08:51 2012 +0400 +++ b/Lib/IMPL/DOM/Schema/ValidationError.pm Mon Oct 15 04:23:01 2012 +0400 @@ -12,32 +12,32 @@ use IMPL::Resources::Format qw(FormatMessage); BEGIN { - public _direct property Node => prop_get; # target document node (if exists) - public _direct property Schema => prop_get; # a schema for the target node (if exists) - public _direct property Source => prop_get; # a schema which triggered this error (can be equal to the Schema) - public _direct property Parent => prop_get; - public _direct property Message => prop_get; # displayable message + public _direct property node => prop_get; # target document node (if exists) + public _direct property schema => prop_get; # a schema for the target node (if exists) + public _direct property source => prop_get; # a schema which triggered this error (can be equal to the Schema) + public _direct property parent => prop_get; + public _direct property message => prop_get; # displayable message } sub CTOR { my ($this,%args) = @_; - $this->{$Node} = $args{Node}; - $this->{$Schema} = $args{Schema} if $args{Schema}; - $this->{$Source} = $args{Source} if $args{Source}; - if ($args{Parent}) { - $this->{$Parent} = $args{Parent}; - } elsif ($args{Node}) { - $this->{$Parent} = $args{Node}->parentNode; + $this->{$node} = $args{node}; + $this->{$schema} = $args{schema} if $args{schema}; + $this->{$source} = $args{source} if $args{source}; + if ($args{parent}) { + $this->{$parent} = $args{parent}; + } elsif ($args{node}) { + $this->{$parent} = $args{node}->parentNode; } else { - die new IMPL::InvalidArgumentException("A 'Parent' or a 'Node' parameter is required"); + die new IMPL::InvalidArgumentException("A 'parent' or a 'node' parameter is required"); } - $this->{$Message} = FormatMessage(delete $args{Message}, \%args) if $args{Message}; + $this->{$message} = FormatMessage(delete $args{message}, \%args) if $args{message}; } sub toString { (my $this) = @_; - return $this->Message; + return $this->message; } 1; @@ -59,6 +59,12 @@ С помощью данного объекта осущетсвляется привязка элемента схемы, элемента документа и сообщения о причине возникновения ошибки. +Часть ошибок, таких как проверка содержимого на регулярные выражения, привязаны +непосредственно к элементу. Но есть ошибки которые привязываются к родительскому +контейнеру, например отсутсвие обязательного элемента. В таком случае ошибка +содержит свойство C<parent> и по свойству C<source> можно определить элемент +(например его имя), к которому относится ошибка. + =head1 MEMBERS =over