summaryrefslogtreecommitdiff
path: root/XPath/Node/Namespace.pm
diff options
context:
space:
mode:
Diffstat (limited to 'XPath/Node/Namespace.pm')
-rw-r--r--XPath/Node/Namespace.pm99
1 files changed, 99 insertions, 0 deletions
diff --git a/XPath/Node/Namespace.pm b/XPath/Node/Namespace.pm
new file mode 100644
index 0000000..736d9a3
--- /dev/null
+++ b/XPath/Node/Namespace.pm
@@ -0,0 +1,99 @@
+# $Id: Namespace.pm,v 1.4 2000/08/24 16:23:02 matt Exp $
+
+package XML::XPath::Node::Namespace;
+
+use strict;
+use vars qw/@ISA/;
+
+@ISA = ('XML::XPath::Node');
+
+package XML::XPath::Node::NamespaceImpl;
+
+use vars qw/@ISA/;
+@ISA = ('XML::XPath::NodeImpl', 'XML::XPath::Node::Namespace');
+use XML::XPath::Node ':node_keys';
+
+sub new {
+ my $class = shift;
+ my ($prefix, $expanded) = @_;
+
+ my $pos = XML::XPath::Node->nextPos;
+
+ my @vals;
+ @vals[node_global_pos, node_prefix, node_expanded] =
+ ($pos, $prefix, $expanded);
+ my $self = \@vals;
+
+ bless $self, $class;
+}
+
+sub getNodeType { NAMESPACE_NODE }
+
+sub isNamespaceNode { 1; }
+
+sub getPrefix {
+ my $self = shift;
+ $self->[node_prefix];
+}
+
+sub getExpanded {
+ my $self = shift;
+ $self->[node_expanded];
+}
+
+sub getValue {
+ my $self = shift;
+ $self->[node_expanded];
+}
+
+sub getData {
+ my $self = shift;
+ $self->[node_expanded];
+}
+
+sub string_value {
+ my $self = shift;
+ $self->[node_expanded];
+}
+
+sub toString {
+ my $self = shift;
+ my $string = '';
+ return '' unless defined $self->[node_expanded];
+ if ($self->[node_prefix] eq '#default') {
+ $string .= ' xmlns="';
+ }
+ else {
+ $string .= ' xmlns:' . $self->[node_prefix] . '="';
+ }
+ $string .= XML::XPath::Node::XMLescape($self->[node_expanded], '"&<');
+ $string .= '"';
+}
+
+1;
+__END__
+
+=head1 NAME
+
+Namespace - an XML namespace node
+
+=head1 API
+
+=head2 new ( prefix, expanded )
+
+Create a new namespace node, expanded is the expanded namespace URI.
+
+=head2 getPrefix
+
+Returns the prefix
+
+=head2 getExpanded
+
+Returns the expanded URI
+
+=head2 toString
+
+Returns a string that you can add to the list
+of attributes of an element: xmlns:prefix="expanded"
+
+=cut