package MOBY::MobyXMLConstants;
use strict;
use vars qw( $VERSION @ISA @EXPORT @NodeNames);
$VERSION = sprintf "%d.%02d", q$Revision: 1.2 $ =~ /: (\d+)\.(\d+)/;
BEGIN {
@ISA = qw( Exporter );
#########################################################
#The purpose of this module is to emulate some of the #
#functionality found in the XML::DOM::Node module. Upon #
#switching parsers, it was apparent that some subs didnt#
#exist in LibXML and so they have been recreated here. #
#########################################################
# Constants for XML::DOM Node types
@EXPORT = qw(
UNKNOWN_NODE
ELEMENT_NODE
ATTRIBUTE_NODE
TEXT_NODE
CDATA_SECTION_NODE
ENTITY_REFERENCE_NODE
ENTITY_NODE
PROCESSING_INSTRUCTION_NODE
COMMENT_NODE
DOCUMENT_NODE
DOCUMENT_TYPE_NODE
DOCUMENT_FRAGMENT_NODE
NOTATION_NODE
ELEMENT_DECL_NODE
ATT_DEF_NODE
XML_DECL_NODE
ATTLIST_DECL_NODE
getNodeTypeName
);
}
#---- Constant definitions
# Node types
sub UNKNOWN_NODE () { 0 } # not in the DOM Spec
sub ELEMENT_NODE () { 1 }
sub ATTRIBUTE_NODE () { 2 }
sub TEXT_NODE () { 3 }
sub CDATA_SECTION_NODE () { 4 }
sub ENTITY_REFERENCE_NODE () { 5 }
sub ENTITY_NODE () { 6 }
sub PROCESSING_INSTRUCTION_NODE () { 7 }
sub COMMENT_NODE () { 8 }
sub DOCUMENT_NODE () { 9 }
sub DOCUMENT_TYPE_NODE () { 10 }
sub DOCUMENT_FRAGMENT_NODE () { 11 }
sub NOTATION_NODE () { 12 }
sub ELEMENT_DECL_NODE () { 13 } # not in the DOM Spec
sub ATT_DEF_NODE () { 14 } # not in the DOM Spec
sub XML_DECL_NODE () { 15 } # not in the DOM Spec
sub ATTLIST_DECL_NODE () { 16 } # not in the DOM Spec
@NodeNames = (
"UNKNOWN_NODE", # not in the DOM Spec!
"XML_ELEMENT_NODE",
"XML_ATTRIBUTE_NODE",
"XML_TEXT_NODE",
"XML_CDATA_SECTION_NODE",
"XML_ENTITY_REF_NODE",
"XML_ENTITY_NODE",
"XML_PI_NODE",
"XML_COMMENT_NODE",
"XML_DOCUMENT_NODE",
"XML_DOCUMENT_TYPE_NODE",
"XML_DOCUMENT_FRAG_NODE",
"XML_NOTATION_NODE",
"XML_ELEMENT_DECL_NODE",
"XML_ATT_DEF_NODE",
"XML_DECL_NODE",
"XML_ATTLIST_DECL_NODE"
);
# this sub takes in a LibXML::Node and outputs the nodeTypeName.
sub getNodeTypeName {
$NodeNames[ $_[0]->nodeType ];
}
1;