summaryrefslogtreecommitdiffstats
path: root/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/XML/LibXML/SAX/Parser.pm
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/XML/LibXML/SAX/Parser.pm')
-rw-r--r--chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/XML/LibXML/SAX/Parser.pm254
1 files changed, 0 insertions, 254 deletions
diff --git a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/XML/LibXML/SAX/Parser.pm b/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/XML/LibXML/SAX/Parser.pm
deleted file mode 100644
index 40137cb7c95..00000000000
--- a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/XML/LibXML/SAX/Parser.pm
+++ /dev/null
@@ -1,254 +0,0 @@
-# $Id: Parser.pm 709 2008-01-29 21:01:32Z pajas $
-
-package XML::LibXML::SAX::Parser;
-
-use strict;
-use vars qw($VERSION @ISA);
-
-use XML::LibXML;
-use XML::LibXML::Common qw(:libxml);
-use XML::SAX::Base;
-use XML::SAX::DocumentLocator;
-
-$VERSION = "1.66"; # VERSION TEMPLATE: DO NOT CHANGE
-@ISA = ('XML::SAX::Base');
-
-sub _parse_characterstream {
- my ($self, $fh, $options) = @_;
- die "parsing a characterstream is not supported at this time";
-}
-
-sub _parse_bytestream {
- my ($self, $fh, $options) = @_;
- my $parser = XML::LibXML->new();
- my $doc = exists($options->{Source}{SystemId}) ? $parser->parse_fh($fh, $options->{Source}{SystemId}) : $parser->parse_fh($fh);
- $self->generate($doc);
-}
-
-sub _parse_string {
- my ($self, $str, $options) = @_;
- my $parser = XML::LibXML->new();
- my $doc = exists($options->{Source}{SystemId}) ? $parser->parse_string($str, $options->{Source}{SystemId}) : $parser->parse_string($str);
- $self->generate($doc);
-}
-
-sub _parse_systemid {
- my ($self, $sysid, $options) = @_;
- my $parser = XML::LibXML->new();
- my $doc = $parser->parse_file($sysid);
- $self->generate($doc);
-}
-
-sub generate {
- my $self = shift;
- my ($node) = @_;
-
- my $doc = $node->ownerDocument();
- {
- # precompute some DocumentLocator values
- my %locator = (
- PublicId => undef,
- SystemId => undef,
- Encoding => undef,
- XMLVersion => undef,
- );
- my $dtd = defined $doc ? $doc->externalSubset() : undef;
- if (defined $dtd) {
- $locator{PublicId} = $dtd->publicId();
- $locator{SystemId} = $dtd->systemId();
- }
- if (defined $doc) {
- $locator{Encoding} = $doc->encoding();
- $locator{XMLVersion} = $doc->version();
- }
- $self->set_document_locator(
- XML::SAX::DocumentLocator->new(
- sub { $locator{PublicId} },
- sub { $locator{SystemId} },
- sub { defined($self->{current_node}) ? $self->{current_node}->line_number() : undef },
- sub { 1 },
- sub { $locator{Encoding} },
- sub { $locator{XMLVersion} },
- ),
- );
- }
-
- if ( $node->nodeType() == XML_DOCUMENT_NODE
- || $node->nodeType == XML_HTML_DOCUMENT_NODE ) {
- $self->start_document({});
- $self->xml_decl({Version => $node->getVersion, Encoding => $node->getEncoding});
- $self->process_node($node);
- $self->end_document({});
- }
-}
-
-sub process_node {
- my ($self, $node) = @_;
-
- local $self->{current_node} = $node;
-
- my $node_type = $node->nodeType();
- if ($node_type == XML_COMMENT_NODE) {
- $self->comment( { Data => $node->getData } );
- }
- elsif ($node_type == XML_TEXT_NODE
- || $node_type == XML_CDATA_SECTION_NODE) {
- # warn($node->getData . "\n");
- $self->characters( { Data => $node->nodeValue } );
- }
- elsif ($node_type == XML_ELEMENT_NODE) {
- # warn("<" . $node->getName . ">\n");
- $self->process_element($node);
- # warn("</" . $node->getName . ">\n");
- }
- elsif ($node_type == XML_ENTITY_REF_NODE) {
- foreach my $kid ($node->childNodes) {
- # warn("child of entity ref: " . $kid->getType() . " called: " . $kid->getName . "\n");
- $self->process_node($kid);
- }
- }
- elsif ($node_type == XML_DOCUMENT_NODE
- || $node_type == XML_HTML_DOCUMENT_NODE
- || $node_type == XML_DOCUMENT_FRAG_NODE) {
- # some times it is just usefull to generate SAX events from
- # a document fragment (very good with filters).
- foreach my $kid ($node->childNodes) {
- $self->process_node($kid);
- }
- }
- elsif ($node_type == XML_PI_NODE) {
- $self->processing_instruction( { Target => $node->getName, Data => $node->getData } );
- }
- elsif ($node_type == XML_COMMENT_NODE) {
- $self->comment( { Data => $node->getData } );
- }
- elsif ( $node_type == XML_XINCLUDE_START
- || $node_type == XML_XINCLUDE_END ) {
- # ignore!
- # i may want to handle this one day, dunno yet
- }
- elsif ($node_type == XML_DTD_NODE ) {
- # ignore!
- # i will support DTDs, but had no time yet.
- }
- else {
- # warn("unsupported node type: $node_type");
- }
-
-}
-
-sub process_element {
- my ($self, $element) = @_;
-
- my $attribs = {};
- my @ns_maps = $element->getNamespaces;
-
- foreach my $ns (@ns_maps) {
- $self->start_prefix_mapping(
- {
- NamespaceURI => $ns->href,
- Prefix => ( defined $ns->localname ? $ns->localname : ''),
- }
- );
- }
-
- foreach my $attr ($element->attributes) {
- my $key;
- # warn("Attr: $attr -> ", $attr->getName, " = ", $attr->getData, "\n");
- # this isa dump thing...
- if ($attr->isa('XML::LibXML::Namespace')) {
- # TODO This needs fixing modulo agreeing on what
- # is the right thing to do here.
- unless ( defined $attr->name ) {
- ## It's an atter like "xmlns='foo'"
- $attribs->{"{}xmlns"} =
- {
- Name => "xmlns",
- LocalName => "xmlns",
- Prefix => "",
- Value => $attr->href,
- NamespaceURI => "",
- };
- }
- else {
- my $prefix = "xmlns";
- my $localname = $attr->localname;
- my $key = "{http://www.w3.org/2000/xmlns/}";
- my $name = "xmlns";
-
- if ( defined $localname ) {
- $key .= $localname;
- $name.= ":".$localname;
- }
-
- $attribs->{$key} =
- {
- Name => $name,
- Value => $attr->href,
- NamespaceURI => "http://www.w3.org/2000/xmlns/",
- Prefix => $prefix,
- LocalName => $localname,
- };
- }
- }
- else {
- my $ns = $attr->namespaceURI;
-
- $ns = '' unless defined $ns;
- $key = "{$ns}".$attr->localname;
- ## Not sure why, but $attr->name is coming through stripped
- ## of its prefix, so we need to hand-assemble a real name.
- my $name = $attr->name;
- $name = "" unless defined $name;
-
- my $prefix = $attr->prefix;
- $prefix = "" unless defined $prefix;
- $name = "$prefix:$name"
- if index( $name, ":" ) < 0 && length $prefix;
-
- $attribs->{$key} =
- {
- Name => $name,
- Value => $attr->value,
- NamespaceURI => $ns,
- Prefix => $prefix,
- LocalName => $attr->localname,
- };
- }
- # use Data::Dumper;
- # warn("Attr made: ", Dumper($attribs->{$key}), "\n");
- }
-
- my $node = {
- Name => $element->nodeName,
- Attributes => $attribs,
- NamespaceURI => $element->namespaceURI,
- Prefix => $element->prefix || "",
- LocalName => $element->localname,
- };
-
- $self->start_element($node);
-
- foreach my $child ($element->childNodes) {
- $self->process_node($child);
- }
-
- my $end_node = { %$node };
-
- delete $end_node->{Attributes};
-
- $self->end_element($end_node);
-
- foreach my $ns (@ns_maps) {
- $self->end_prefix_mapping(
- {
- NamespaceURI => $ns->href,
- Prefix => ( defined $ns->localname ? $ns->localname : ''),
- }
- );
- }
-}
-
-1;
-
-__END__