Mercurial > pub > Impl
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