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