diff lib/IMPL/DOM/Schema/SimpleNode.pm @ 407:c6e90e02dd17 ref20150831

renamed Lib->lib
author cin
date Fri, 04 Sep 2015 19:40:23 +0300
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/IMPL/DOM/Schema/SimpleNode.pm	Fri Sep 04 19:40:23 2015 +0300
@@ -0,0 +1,49 @@
+package IMPL::DOM::Schema::SimpleNode;
+use strict;
+use warnings;
+
+use IMPL::declare {
+	base => [
+		'IMPL::DOM::Schema::Node' => sub {
+			my %args = @_;
+        	$args{nodeName} ||= 'SimpleNode';
+            %args
+		}
+	]
+};
+
+sub Validate {
+    my ($this,$node,$ctx) = @_;
+    
+    $ctx->{schemaNode} ||= $this; # для безымянных типов
+    
+    $ctx->{schemaType} = $this;
+    
+    my @result;
+    
+    push @result, $_->Validate($node,$ctx) foreach $this->childNodes;
+    
+    return @result;
+}
+
+1;
+
+__END__
+
+=pod
+
+=head1 NAME
+
+C<IMPL::DOM::SimpleNode> - узел с текстом.
+
+=head1 DESCRIPTION
+
+Узел имеющий простое значение. Данный узел может содержать ограничения
+на простое значение.
+
+Производит валидацию содержимого, при постоении DOM модели не имеет специального
+типа и будет создан в виде C<IMPL::DOM::Node>.
+
+Также определяет как будет воссоздано значение узла в DOM модели.
+
+=cut