# # Copyright (C) 1997 Ken MacLeod # See the file COPYING for distribution terms. # # $Id: Entity.pm,v 1.2 1998/01/18 00:21:13 ken Exp $ # package SGML::Entity; use strict; use Class::Visitor; visitor_class 'SGML::Entity', 'Class::Visitor::Base', { 'name' => '$', 'data' => '$', # if ext, will be valid if loaded }; =head1 NAME SGML::Entity - an entity defined in an SGML or XML document =head1 SYNOPSIS $name = $entity->name; $data = $entity->data; $entity->iter; $entity->accept($visitor, ...); The following are defined for type compatibilty: $entity->as_string([$context, ...]); $entity->accept_gi($visitor, ...); $entity->children_accept($visitor, ...); $entity->children_accept_gi($visitor, ...); =head1 DESCRIPTION An C contains an entity defined in a document instance. Within a grove, any entity with the same name refers to the same C object. C objects occur in a value of an element attribute or as children of entities. C<$entity-Ename> returns the name of the Entity object. C<$entity-Edata> returns the data of the Entity object. C<$entity-Eaccept($visitor[, ...])> issues a call back to Svisit_SGML_Entity($entity[, ...])>>. See examples C and C for more information. C<$entity-Eas_string> returns an empty string. C<$entity-Eaccept_gi($visitor[, ...])> is implemented as a synonym for C. C and C do nothing. =head1 AUTHOR Ken MacLeod, ken@bitsko.slc.ut.us =head1 SEE ALSO perl(1), SGML::Grove(3), Text::EntityMap(3), SGML::Element(3), SGML::PI(3). =cut sub as_string { my $self = shift; my $context = shift; return (""); } sub accept { my $self = shift; my $visitor = shift; $visitor->visit_SGML_Entity ($self, @_); } # synonomous to `accept' sub accept_gi { my $self = shift; my $visitor = shift; $visitor->visit_SGML_Entity ($self, @_); } # these are here just for type compatibility sub children_accept { } sub children_accept_gi { } sub contents { return [] } 1;