package XML::Validator::Schema::AttributeNode;
use base 'XML::Validator::Schema::Node';
use strict;
use warnings;

use XML::Validator::Schema::Util qw(_attr _err);
use Carp qw(confess);

=head1 NAME

XML::Validator::Schema::AttributeNode

=head1 DESCRIPTION

Temporary node in the schema parse tree to represent an attribute.

=cut

sub parse {
    my ($pkg, $data) = @_;
    my $self = $pkg->new();

    # squirl away data for latter use
    $self->{data} = $data;

    return $self;
}

sub compile {
    my ($self) = shift;

    # create a new attribute object and return it
    my $attr = XML::Validator::Schema::Attribute->parse($self->{data});

    # copy in type info if available
    $attr->{type} = $self->{type} if $self->{type};

    return $attr;
}

1;