view Lib/IMPL/DOM/Schema/AnyNode.pm @ 236:2904da230022

DOM refactoring
author sergey
date Mon, 15 Oct 2012 04:23:01 +0400
parents d1676be8afcc
children 5aff94ba842f
line wrap: on
line source

package IMPL::DOM::Schema::AnyNode;
use strict;
use warnings;

use parent qw(IMPL::DOM::Schema::Node);

our %CTOR = (
    'IMPL::DOM::Schema::Node' => sub {
        my %args = @_;
        $args{nodeName} ||= 'AnyNode';
        $args{name} = '::any';
        
        %args;
    }
);

1;

__END__

=pod

=head1 DESCRIPTION

Узел с произвольным именем, для этого узла предусмотрена специальная проверка
в контейнерах.

В контейнерах типа C<IMPL::DOM::Schema::NodeSet> этот узел можно использовать только один раз
причем его использование исключает использование узла C<IMPL::DOM::Schema::SwitchNode>.

В контейнерах типа С<IMPL::DOM::Schema::NodeList> данный узел может применяться несколько раз
для решения таких задач как последовательности разноименных узлов с одним типом.

<NodeList>
    <SimpleNode name="firstName"/>
    <SimpleNode name="age"/>
    <AnyNode type="Notes" minOccur="0" maxOccur="unbounded"/>
    <Node name="primaryAddress" type="Address"/>
    <AnyNode/>
</NodeList>

=cut