changeset 25:9dd67fa91ee3

small fix in the dom schema works under text schema
author Sergey
date Tue, 13 Oct 2009 17:51:25 +0400
parents 7f00786f8210
children c529d386d80e
files Lib/IMPL/DOM/Schema/Property.pm Lib/IMPL/Text/Schema.pm
diffstat 2 files changed, 64 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/Lib/IMPL/DOM/Schema/Property.pm	Mon Oct 05 00:48:49 2009 +0400
+++ b/Lib/IMPL/DOM/Schema/Property.pm	Tue Oct 13 17:51:25 2009 +0400
@@ -28,7 +28,7 @@
 sub CTOR {
     my ($this,%args) = @_;
     
-    $this->RequiredMessage($args{RequiredMessage} || 'A property %Schema.name% is required');
+    $this->RequiredMessage($args{RequiredMessage} || 'A property %Schema.name% is required in the %Node.qname%');
 }
 
 sub Validate {
@@ -40,7 +40,9 @@
         
         if (! $nodeProp->nodeValue) {
             return new IMPL::DOM::Schema::ValidationError(
-                Message => 
+                Message => $this->RequiredMessage,
+                Node => $node,
+                Schema => $this
             );
         }
         return $this->SUPER::Validate($nodeProp);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Lib/IMPL/Text/Schema.pm	Tue Oct 13 17:51:25 2009 +0400
@@ -0,0 +1,60 @@
+package IMPL::Text::Schema;
+use strict;
+use warnings;
+
+use base qw(IMPL::DOM::Schema);
+
+__PACKAGE__->PassThroughArgs;
+
+1;
+
+__END__
+
+=pod
+
+=head1 SINOPSYS
+
+<schema>
+    <ComplexNode name="syntax">
+        <Node name="Define" type="Statement" minOccur="1" maxOccur="unbounded">
+            <Property name="name" type="Word"/>
+        </Node>
+    </ComplexNode>
+    <ComplexType type="Statement" nativeType="IMPL::Text::Schema::Statement">
+        <NodeList>
+            <SwitchNode minOccur="1" maxOccur="unbounded">
+                <Node name="Word" type="Word"/>
+                <Node name="Statement" type="Word"/>
+                <Node name="Switch" type="Switch"/>
+                <Node name="List" type="List"/>
+            </SwitchNode>
+        </NodeList>
+    </ComplexType>
+</schema>
+
+=head1 DESCRIPTION
+
+Схема текстового файла, которую можно использовать для разбора содержимого
+текстового файла.
+
+Схема текстового файла состоит из выражений.
+1. Регулярное выражение является выражением
+2. Строковое значение является выражением.
+3. Выражения объединенные логическими операторами также выражение.
+
+Допускаются следующие операторы
+1. Повтор
+2. 
+
+=head1 METHODS
+
+=over
+
+=item C<<$schema->compile()>>
+
+Возвращает объект для разбора текста.
+
+=back
+
+
+=cut