Hello community,

here is the log from the commit of package perl-XML-LibXML for openSUSE:Factory 
checked in at 2017-03-18 20:47:34
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-XML-LibXML (Old)
 and      /work/SRC/openSUSE:Factory/.perl-XML-LibXML.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "perl-XML-LibXML"

Sat Mar 18 20:47:34 2017 rev:44 rq:479454 version:2.0129

Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-XML-LibXML/perl-XML-LibXML.changes  
2016-08-03 11:39:03.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.perl-XML-LibXML.new/perl-XML-LibXML.changes     
2017-03-18 20:47:36.734854226 +0100
@@ -1,0 +2,15 @@
+Wed Mar 15 08:23:30 UTC 2017 - [email protected]
+
+- updated to 2.0129
+   see /usr/share/doc/packages/perl-XML-LibXML/Changes
+
+  2.0129  2017-03-14
+      - Add example/create-sample-html-document.pl .
+          - https://rt.cpan.org/Ticket/Display.html?id=117923
+      - Add support for the set_document_locator() SAX method .
+          - Thanks to Alexander Batyrshin for the pull-request.
+      - Make parsing of large perl strings much faster.
+          - https://github.com/shlomif/perl-XML-LibXML/pull/5
+          - Thanks to Cedric Cellier for the pull-request.
+
+-------------------------------------------------------------------

Old:
----
  XML-LibXML-2.0128.tar.gz

New:
----
  XML-LibXML-2.0129.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ perl-XML-LibXML.spec ++++++
--- /var/tmp/diff_new_pack.M3Xkcj/_old  2017-03-18 20:47:38.650582825 +0100
+++ /var/tmp/diff_new_pack.M3Xkcj/_new  2017-03-18 20:47:38.650582825 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package perl-XML-LibXML
 #
-# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -17,14 +17,14 @@
 
 
 Name:           perl-XML-LibXML
-Version:        2.0128
+Version:        2.0129
 Release:        0
 %define cpan_name XML-LibXML
 Summary:        Perl Binding for libxml2
 License:        Artistic-1.0 or GPL-1.0+
 Group:          Development/Libraries/Perl
 Url:            http://search.cpan.org/dist/XML-LibXML/
-Source0:        
http://www.cpan.org/authors/id/S/SH/SHLOMIF/%{cpan_name}-%{version}.tar.gz
+Source0:        
https://cpan.metacpan.org/authors/id/S/SH/SHLOMIF/%{cpan_name}-%{version}.tar.gz
 Source1:        cpanspec.yml
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 BuildRequires:  perl
@@ -70,6 +70,7 @@
 
 %files -f %{name}.files
 %defattr(-,root,root,755)
-%doc Changes docs example HACKING.txt LICENSE README TODO
+%doc Changes docs example HACKING.txt README TODO
+%license LICENSE
 
 %changelog

++++++ XML-LibXML-2.0128.tar.gz -> XML-LibXML-2.0129.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/XML-LibXML-2.0128/Changes 
new/XML-LibXML-2.0129/Changes
--- old/XML-LibXML-2.0128/Changes       2016-07-24 11:05:01.000000000 +0200
+++ new/XML-LibXML-2.0129/Changes       2017-03-14 14:25:23.000000000 +0100
@@ -1,5 +1,14 @@
 Revision history for Perl extension XML::LibXML
 
+2.0129  2017-03-14
+    - Add example/create-sample-html-document.pl .
+        - https://rt.cpan.org/Ticket/Display.html?id=117923
+    - Add support for the set_document_locator() SAX method .
+        - Thanks to Alexander Batyrshin for the pull-request.
+    - Make parsing of large perl strings much faster.
+        - https://github.com/shlomif/perl-XML-LibXML/pull/5
+        - Thanks to Cedric Cellier for the pull-request.
+
 2.0128  2016-07-24
     - Hopefully add the .pod files again as they were missing from 2.0127.
         - https://github.com/shlomif/perl-XML-LibXML/issues/3
@@ -29,7 +38,7 @@
 2.0125  2016-05-30
     - Moved the repository from Mercurial and BitBucket to Git and GitHub:
         - https://github.com/shlomif/perl-XML-LibXML
-        - This was done to better encourage contributions to XML::LiBXML and
+        - This was done to better encourage contributions to XML::LibXML and
         to be able to use the better Continuous Integration options that
         are available for GitHub projects.
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/XML-LibXML-2.0128/LibXML.pm 
new/XML-LibXML-2.0129/LibXML.pm
--- old/XML-LibXML-2.0128/LibXML.pm     2016-07-24 11:00:40.000000000 +0200
+++ new/XML-LibXML-2.0129/LibXML.pm     2017-03-14 14:25:51.000000000 +0100
@@ -29,7 +29,7 @@
 use IO::Handle; # for FH reads called as methods
 
 BEGIN {
-$VERSION = "2.0128"; # VERSION TEMPLATE: DO NOT CHANGE
+$VERSION = "2.0129"; # VERSION TEMPLATE: DO NOT CHANGE
 $ABI_VERSION = 2;
 require Exporter;
 require DynaLoader;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/XML-LibXML-2.0128/LibXML.pod 
new/XML-LibXML-2.0129/LibXML.pod
--- old/XML-LibXML-2.0128/LibXML.pod    2016-07-24 11:05:45.000000000 +0200
+++ new/XML-LibXML-2.0129/LibXML.pod    2017-03-14 14:26:51.000000000 +0100
@@ -505,7 +505,7 @@
 
 =head1 VERSION
 
-2.0128
+2.0129
 
 =head1 COPYRIGHT
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/XML-LibXML-2.0128/MANIFEST 
new/XML-LibXML-2.0129/MANIFEST
--- old/XML-LibXML-2.0128/MANIFEST      2016-07-24 11:12:51.000000000 +0200
+++ new/XML-LibXML-2.0129/MANIFEST      2017-03-14 14:35:40.000000000 +0100
@@ -39,6 +39,7 @@
 example/complex/complex2.xml
 example/complex/dtd/f.dtd
 example/complex/dtd/g.dtd
+example/create-sample-html-document.pl
 example/dromeds.xml
 example/dtd.xml
 example/enc2_latin2.html
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/XML-LibXML-2.0128/META.json 
new/XML-LibXML-2.0129/META.json
--- old/XML-LibXML-2.0128/META.json     2016-07-24 11:12:51.000000000 +0200
+++ new/XML-LibXML-2.0129/META.json     2017-03-14 14:35:39.000000000 +0100
@@ -4,7 +4,7 @@
       "Petr Pajas"
    ],
    "dynamic_config" : 1,
-   "generated_by" : "ExtUtils::MakeMaker version 7.16, CPAN::Meta::Converter 
version 2.150005",
+   "generated_by" : "ExtUtils::MakeMaker version 7.0402, CPAN::Meta::Converter 
version 2.150001",
    "keywords" : [
       "dom",
       "html",
@@ -70,6 +70,5 @@
          "url" : "https://github.com/shlomif/perl-XML-LibXML";
       }
    },
-   "version" : "2.0128",
-   "x_serialization_backend" : "JSON::PP version 2.27300"
+   "version" : "2.0129"
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/XML-LibXML-2.0128/META.yml 
new/XML-LibXML-2.0129/META.yml
--- old/XML-LibXML-2.0128/META.yml      2016-07-24 11:12:51.000000000 +0200
+++ new/XML-LibXML-2.0129/META.yml      2017-03-14 14:35:39.000000000 +0100
@@ -7,7 +7,7 @@
 configure_requires:
   ExtUtils::MakeMaker: '0'
 dynamic_config: 1
-generated_by: 'ExtUtils::MakeMaker version 7.16, CPAN::Meta::Converter version 
2.150005'
+generated_by: 'ExtUtils::MakeMaker version 7.0402, CPAN::Meta::Converter 
version 2.150001'
 keywords:
   - dom
   - html
@@ -48,5 +48,4 @@
 resources:
   homepage: https://github.com/shlomif/perl-XML-LibXML
   repository: https://github.com/shlomif/perl-XML-LibXML
-version: '2.0128'
-x_serialization_backend: 'CPAN::Meta::YAML version 0.012'
+version: '2.0129'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/XML-LibXML-2.0128/docs/libxml.dbk 
new/XML-LibXML-2.0129/docs/libxml.dbk
--- old/XML-LibXML-2.0128/docs/libxml.dbk       2016-07-24 11:05:45.000000000 
+0200
+++ new/XML-LibXML-2.0129/docs/libxml.dbk       2017-03-14 14:26:50.000000000 
+0100
@@ -22,7 +22,7 @@
         </authorgroup>
 
 
-        <edition>2.0128</edition>
+        <edition>2.0129</edition>
         <copyright>
             <year>2001-2007</year>
             <holder>AxKit.com Ltd</holder>
@@ -2080,23 +2080,23 @@
         <titleabbrev>XML::LibXML::DOM</titleabbrev>
         <sect1>
             <title>Description</title>
-            <para>XML::LibXML provides an light-wight interface to
+            <para>XML::LibXML provides a lightweight interface to
             <emphasis>modify</emphasis> a node of the document tree
             generated by the XML::LibXML parser.  This interface
             follows as far as possible the DOM Level 3
-            specification. Additionally to the specified functions the
+            specification. In addition to the specified functions,
             XML::LibXML supports some functions that are more handy to
             use in the perl environment.</para>
 
             <para>One also has to remember, that XML::LibXML is an
             interface to libxml2 nodes which actually reside on the
             C-Level of XML::LibXML. This means each node is a
-            reference to a structure different than a perl hash or
-            array. The only way to access these structure's values is
+            reference to a structure which is different from a perl hash or
+            array. The only way to access these structures' values is
             through the DOM interface provided by XML::LibXML. This
             also means, that one <emphasis>can't</emphasis> simply
             inherit an XML::LibXML node and add new member variables as
-            they were hash keys.</para>
+            if they were hash keys.</para>
 
             <para>The DOM interface of XML::LibXML does not intend to
             implement a full DOM interface as it is done by XML::GDOME
@@ -2111,16 +2111,16 @@
             C-Level that most perl users don't have.</para>
 
             <para>One of the most important parts of the XML::LibXML
-            DOM interface is, that the interfaces try do follow the
+            DOM interface is that the interfaces try to follow the
             <ulink url="http://www.w3.org/TR/DOM-Level-3-Core/";>DOM Level 3 
specification</ulink> rather strictly. This means the
             interface functions are named as the DOM specification
             says and not what widespread Java interfaces claim to be
-            standard.  Although there are several functions that have
+            the standard.  Although there are several functions that have
             only a singular interface that conforms to the DOM spec
             XML::LibXML provides an additional Java style alias
             interface.</para>
 
-            <para>Also there are some function interfaces left over
+            <para>Moreover, there are some function interfaces left over
             from early stages of XML::LibXML for compatibility
             reasons. These interfaces are for compatibility reasons
             <emphasis>only</emphasis>. They might disappear in one of
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/XML-LibXML-2.0128/example/create-sample-html-document.pl 
new/XML-LibXML-2.0129/example/create-sample-html-document.pl
--- old/XML-LibXML-2.0128/example/create-sample-html-document.pl        
1970-01-01 01:00:00.000000000 +0100
+++ new/XML-LibXML-2.0129/example/create-sample-html-document.pl        
2016-10-16 10:06:21.000000000 +0200
@@ -0,0 +1,167 @@
+#!/usr/bin/perl
+
+=head1 ABOUT
+
+This is a sample program to generate an HTML document using XML::LibXML's
+DOM routines. It was written to resolve
+L<https://rt.cpan.org/Ticket/Display.html?id=117923> . Thanks to Dan Jacobson.
+
+=cut
+
+use strict;
+use warnings;
+
+use XML::LibXML;
+
+{
+    my $doc = XML::LibXML->createDocument;
+
+    # A small Domain-Specific-Language for generating DOM:
+    my $_text = sub {
+        my ($content) = @_;
+
+        return $doc->createTextNode($content);
+    };
+
+    # Short for element.
+    my $_el = sub {
+        my $name = shift;
+        my $param = shift;
+        my $attrs = {};
+        if (ref($param) eq 'HASH')
+        {
+            $attrs = $param;
+            $param = shift;
+        }
+        my $childs = $param;
+
+        my $elem = $doc->createElementNS("", $name);
+
+        while (my ($k, $v) = each %$attrs)
+        {
+            $elem->setAttribute($k, $v);
+        }
+
+        foreach my $child (@$childs)
+        {
+            $elem->appendChild($child);
+        }
+
+        return $elem;
+    };
+
+    my $html = $_el->(
+        'html',
+        [
+            $_el->(
+                'head',
+                [
+                    $_el->(
+                        'title',
+                        [
+                            $_text->("Sample HTML document as generated by 
XML::LibXML"),
+                        ],
+                    ),
+                    $_el->(
+                        'meta',
+                        { 'http-equiv' => 'Content-Type',
+                            'content' => 'text/html; charset=utf-8'
+                        },
+                        [],
+                    ),
+                ],
+            ),
+            $_el->(
+                'body',
+                [
+                    $_el->(
+                        'p',
+                        [
+                            $_text->("Introducing a link - "),
+                            $_el->(
+                                'a',
+                                { 'href' => 'http://www.wikipedia.org/', },
+                                [
+                                    $_text->("Link to Wikipedia"),
+                                ],
+                            ),
+                            $_text->(". We hope you enjoyed it."),
+                        ],
+                    ),
+                    $_el->(
+                        'p',
+                        [
+                            $_el->(
+                                'img',
+                                { 'src' => 'http://example.com/non-exist.png',
+                                    'alt' => 'non-existing image',
+                                },
+                                [],
+                            ),
+                        ],
+                    ),
+                    $_el->(
+                        'ol',
+                        [
+                            $_el->(
+                                'li',
+                                [
+                                    $_el->(
+                                        'p',
+                                        [
+                                            $_text->("First item."),
+                                        ],
+                                    ),
+                                ],
+                            ),
+                            $_el->(
+                                'li',
+                                [
+                                    $_el->(
+                                        'p',
+                                        [
+                                            $_text->("Second item."),
+                                        ],
+                                    ),
+                                ],
+                            ),
+                        ],
+                    ),
+                ],
+            ),
+        ],
+    );
+    $doc->setDocumentElement( $html );
+
+    print $doc->toStringHTML();
+}
+
+=head1 COPYRIGHT & LICENSE
+
+Copyright 2016 by Shlomi Fish
+
+This program is distributed under the MIT (X11) License:
+L<http://www.opensource.org/licenses/mit-license.php>
+
+Permission is hereby granted, free of charge, to any person
+obtaining a copy of this software and associated documentation
+files (the "Software"), to deal in the Software without
+restriction, including without limitation the rights to use,
+copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following
+conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+
+=cut
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/XML-LibXML-2.0128/lib/XML/LibXML/Attr.pod 
new/XML-LibXML-2.0129/lib/XML/LibXML/Attr.pod
--- old/XML-LibXML-2.0128/lib/XML/LibXML/Attr.pod       2016-07-24 
11:05:45.000000000 +0200
+++ new/XML-LibXML-2.0129/lib/XML/LibXML/Attr.pod       2017-03-14 
14:26:51.000000000 +0100
@@ -121,7 +121,7 @@
 
 =head1 VERSION
 
-2.0128
+2.0129
 
 =head1 COPYRIGHT
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/XML-LibXML-2.0128/lib/XML/LibXML/AttributeHash.pm 
new/XML-LibXML-2.0129/lib/XML/LibXML/AttributeHash.pm
--- old/XML-LibXML-2.0128/lib/XML/LibXML/AttributeHash.pm       2016-07-24 
11:00:40.000000000 +0200
+++ new/XML-LibXML-2.0129/lib/XML/LibXML/AttributeHash.pm       2017-03-14 
14:25:51.000000000 +0100
@@ -7,7 +7,7 @@
 our @ISA = qw/Tie::Hash/;
 
 use vars qw($VERSION);
-$VERSION = "2.0128"; # VERSION TEMPLATE: DO NOT CHANGE
+$VERSION = "2.0129"; # VERSION TEMPLATE: DO NOT CHANGE
 
 BEGIN
 {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/XML-LibXML-2.0128/lib/XML/LibXML/Boolean.pm 
new/XML-LibXML-2.0129/lib/XML/LibXML/Boolean.pm
--- old/XML-LibXML-2.0128/lib/XML/LibXML/Boolean.pm     2016-07-24 
11:00:40.000000000 +0200
+++ new/XML-LibXML-2.0129/lib/XML/LibXML/Boolean.pm     2017-03-14 
14:25:51.000000000 +0100
@@ -16,7 +16,7 @@
 
 use vars qw ($VERSION);
 
-$VERSION = "2.0128"; # VERSION TEMPLATE: DO NOT CHANGE
+$VERSION = "2.0129"; # VERSION TEMPLATE: DO NOT CHANGE
 
 use overload
         '""' => \&value,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/XML-LibXML-2.0128/lib/XML/LibXML/CDATASection.pod 
new/XML-LibXML-2.0129/lib/XML/LibXML/CDATASection.pod
--- old/XML-LibXML-2.0128/lib/XML/LibXML/CDATASection.pod       2016-07-24 
11:05:45.000000000 +0200
+++ new/XML-LibXML-2.0129/lib/XML/LibXML/CDATASection.pod       2017-03-14 
14:26:51.000000000 +0100
@@ -45,7 +45,7 @@
 
 =head1 VERSION
 
-2.0128
+2.0129
 
 =head1 COPYRIGHT
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/XML-LibXML-2.0128/lib/XML/LibXML/Comment.pod 
new/XML-LibXML-2.0129/lib/XML/LibXML/Comment.pod
--- old/XML-LibXML-2.0128/lib/XML/LibXML/Comment.pod    2016-07-24 
11:05:45.000000000 +0200
+++ new/XML-LibXML-2.0129/lib/XML/LibXML/Comment.pod    2017-03-14 
14:26:51.000000000 +0100
@@ -46,7 +46,7 @@
 
 =head1 VERSION
 
-2.0128
+2.0129
 
 =head1 COPYRIGHT
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/XML-LibXML-2.0128/lib/XML/LibXML/Common.pm 
new/XML-LibXML-2.0129/lib/XML/LibXML/Common.pm
--- old/XML-LibXML-2.0128/lib/XML/LibXML/Common.pm      2016-07-24 
11:00:40.000000000 +0200
+++ new/XML-LibXML-2.0129/lib/XML/LibXML/Common.pm      2017-03-14 
14:25:51.000000000 +0100
@@ -24,7 +24,7 @@
 
 @ISA = qw(Exporter);
 
-$VERSION = "2.0128"; # VERSION TEMPLATE: DO NOT CHANGE
+$VERSION = "2.0129"; # VERSION TEMPLATE: DO NOT CHANGE
 
 use XML::LibXML qw(:libxml);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/XML-LibXML-2.0128/lib/XML/LibXML/Common.pod 
new/XML-LibXML-2.0129/lib/XML/LibXML/Common.pod
--- old/XML-LibXML-2.0128/lib/XML/LibXML/Common.pod     2016-07-24 
11:05:45.000000000 +0200
+++ new/XML-LibXML-2.0129/lib/XML/LibXML/Common.pod     2017-03-14 
14:26:52.000000000 +0100
@@ -116,7 +116,7 @@
 
 =head1 VERSION
 
-2.0128
+2.0129
 
 =head1 COPYRIGHT
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/XML-LibXML-2.0128/lib/XML/LibXML/DOM.pod 
new/XML-LibXML-2.0129/lib/XML/LibXML/DOM.pod
--- old/XML-LibXML-2.0128/lib/XML/LibXML/DOM.pod        2016-07-24 
11:05:45.000000000 +0200
+++ new/XML-LibXML-2.0129/lib/XML/LibXML/DOM.pod        2017-03-14 
14:26:51.000000000 +0100
@@ -4,16 +4,16 @@
 
 =head1 DESCRIPTION
 
-XML::LibXML provides an light-wight interface to I<<<<<< modify >>>>>> a node 
of the document tree generated by the XML::LibXML parser. This interface
-follows as far as possible the DOM Level 3 specification. Additionally to the
-specified functions the XML::LibXML supports some functions that are more handy
-to use in the perl environment.
+XML::LibXML provides a lightweight interface to I<<<<<< modify >>>>>> a node 
of the document tree generated by the XML::LibXML parser. This interface
+follows as far as possible the DOM Level 3 specification. In addition to the
+specified functions, XML::LibXML supports some functions that are more handy to
+use in the perl environment.
 
 One also has to remember, that XML::LibXML is an interface to libxml2 nodes
 which actually reside on the C-Level of XML::LibXML. This means each node is a
-reference to a structure different than a perl hash or array. The only way to
-access these structure's values is through the DOM interface provided by
-XML::LibXML. This also means, that one I<<<<<< can't >>>>>> simply inherit an 
XML::LibXML node and add new member variables as they were
+reference to a structure which is different from a perl hash or array. The only
+way to access these structures' values is through the DOM interface provided by
+XML::LibXML. This also means, that one I<<<<<< can't >>>>>> simply inherit an 
XML::LibXML node and add new member variables as if they were
 hash keys.
 
 The DOM interface of XML::LibXML does not intend to implement a full DOM
@@ -26,14 +26,14 @@
 some features where libxml2 assumes more control over the C-Level that most
 perl users don't have.
 
-One of the most important parts of the XML::LibXML DOM interface is, that the
-interfaces try do follow the DOM Level 3 specification (L<<<<<< 
http://www.w3.org/TR/DOM-Level-3-Core/ >>>>>>) rather strictly. This means the 
interface functions are named as the DOM
-specification says and not what widespread Java interfaces claim to be
+One of the most important parts of the XML::LibXML DOM interface is that the
+interfaces try to follow the DOM Level 3 specification (L<<<<<< 
http://www.w3.org/TR/DOM-Level-3-Core/ >>>>>>) rather strictly. This means the 
interface functions are named as the DOM
+specification says and not what widespread Java interfaces claim to be the
 standard. Although there are several functions that have only a singular
 interface that conforms to the DOM spec XML::LibXML provides an additional Java
 style alias interface.
 
-Also there are some function interfaces left over from early stages of
+Moreover, there are some function interfaces left over from early stages of
 XML::LibXML for compatibility reasons. These interfaces are for compatibility
 reasons I<<<<<< only >>>>>>. They might disappear in one of the future 
versions of XML::LibXML, so a user
 is requested to switch over to the official functions.
@@ -129,7 +129,7 @@
 
 =head1 VERSION
 
-2.0128
+2.0129
 
 =head1 COPYRIGHT
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/XML-LibXML-2.0128/lib/XML/LibXML/Devel.pm 
new/XML-LibXML-2.0129/lib/XML/LibXML/Devel.pm
--- old/XML-LibXML-2.0128/lib/XML/LibXML/Devel.pm       2016-07-24 
11:00:40.000000000 +0200
+++ new/XML-LibXML-2.0129/lib/XML/LibXML/Devel.pm       2017-03-14 
14:25:51.000000000 +0100
@@ -12,7 +12,7 @@
 use XML::LibXML;
 
 use vars qw ($VERSION);
-$VERSION = "2.0128"; # VERSION TEMPLATE: DO NOT CHANGE
+$VERSION = "2.0129"; # VERSION TEMPLATE: DO NOT CHANGE
 
 use 5.008_000;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/XML-LibXML-2.0128/lib/XML/LibXML/Document.pod 
new/XML-LibXML-2.0129/lib/XML/LibXML/Document.pod
--- old/XML-LibXML-2.0128/lib/XML/LibXML/Document.pod   2016-07-24 
11:05:45.000000000 +0200
+++ new/XML-LibXML-2.0129/lib/XML/LibXML/Document.pod   2017-03-14 
14:26:51.000000000 +0100
@@ -683,7 +683,7 @@
 
 =head1 VERSION
 
-2.0128
+2.0129
 
 =head1 COPYRIGHT
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/XML-LibXML-2.0128/lib/XML/LibXML/DocumentFragment.pod 
new/XML-LibXML-2.0129/lib/XML/LibXML/DocumentFragment.pod
--- old/XML-LibXML-2.0128/lib/XML/LibXML/DocumentFragment.pod   2016-07-24 
11:05:45.000000000 +0200
+++ new/XML-LibXML-2.0129/lib/XML/LibXML/DocumentFragment.pod   2017-03-14 
14:26:51.000000000 +0100
@@ -27,7 +27,7 @@
 
 =head1 VERSION
 
-2.0128
+2.0129
 
 =head1 COPYRIGHT
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/XML-LibXML-2.0128/lib/XML/LibXML/Dtd.pod 
new/XML-LibXML-2.0129/lib/XML/LibXML/Dtd.pod
--- old/XML-LibXML-2.0128/lib/XML/LibXML/Dtd.pod        2016-07-24 
11:05:45.000000000 +0200
+++ new/XML-LibXML-2.0129/lib/XML/LibXML/Dtd.pod        2017-03-14 
14:26:51.000000000 +0100
@@ -89,7 +89,7 @@
 
 =head1 VERSION
 
-2.0128
+2.0129
 
 =head1 COPYRIGHT
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/XML-LibXML-2.0128/lib/XML/LibXML/Element.pod 
new/XML-LibXML-2.0129/lib/XML/LibXML/Element.pod
--- old/XML-LibXML-2.0128/lib/XML/LibXML/Element.pod    2016-07-24 
11:05:45.000000000 +0200
+++ new/XML-LibXML-2.0129/lib/XML/LibXML/Element.pod    2017-03-14 
14:26:51.000000000 +0100
@@ -382,7 +382,7 @@
 
 =head1 VERSION
 
-2.0128
+2.0129
 
 =head1 COPYRIGHT
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/XML-LibXML-2.0128/lib/XML/LibXML/ErrNo.pm 
new/XML-LibXML-2.0129/lib/XML/LibXML/ErrNo.pm
--- old/XML-LibXML-2.0128/lib/XML/LibXML/ErrNo.pm       2016-07-24 
11:00:40.000000000 +0200
+++ new/XML-LibXML-2.0129/lib/XML/LibXML/ErrNo.pm       2017-03-14 
14:25:51.000000000 +0100
@@ -14,7 +14,7 @@
 use warnings;
 use vars qw($VERSION);
 
-$VERSION = "2.0128"; # VERSION TEMPLATE: DO NOT CHANGE
+$VERSION = "2.0129"; # VERSION TEMPLATE: DO NOT CHANGE
 
 use constant ERR_OK                               => 0;
 use constant ERR_INTERNAL_ERROR                   => 1;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/XML-LibXML-2.0128/lib/XML/LibXML/ErrNo.pod 
new/XML-LibXML-2.0129/lib/XML/LibXML/ErrNo.pod
--- old/XML-LibXML-2.0128/lib/XML/LibXML/ErrNo.pod      2016-07-24 
11:05:45.000000000 +0200
+++ new/XML-LibXML-2.0129/lib/XML/LibXML/ErrNo.pod      2017-03-14 
14:26:52.000000000 +0100
@@ -14,7 +14,7 @@
 
 =head1 VERSION
 
-2.0128
+2.0129
 
 =head1 COPYRIGHT
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/XML-LibXML-2.0128/lib/XML/LibXML/Error.pm 
new/XML-LibXML-2.0129/lib/XML/LibXML/Error.pm
--- old/XML-LibXML-2.0128/lib/XML/LibXML/Error.pm       2016-07-24 
11:00:40.000000000 +0200
+++ new/XML-LibXML-2.0129/lib/XML/LibXML/Error.pm       2017-03-14 
14:25:51.000000000 +0100
@@ -29,7 +29,7 @@
   fallback => 1;
 
 $WARNINGS = 0; # 0: suppress, 1: report via warn, 2: report via die
-$VERSION = "2.0128"; # VERSION TEMPLATE: DO NOT CHANGE
+$VERSION = "2.0129"; # VERSION TEMPLATE: DO NOT CHANGE
 
 use constant XML_ERR_NONE            => 0;
 use constant XML_ERR_WARNING         => 1; # A simple warning
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/XML-LibXML-2.0128/lib/XML/LibXML/Error.pod 
new/XML-LibXML-2.0129/lib/XML/LibXML/Error.pod
--- old/XML-LibXML-2.0128/lib/XML/LibXML/Error.pod      2016-07-24 
11:05:45.000000000 +0200
+++ new/XML-LibXML-2.0129/lib/XML/LibXML/Error.pod      2017-03-14 
14:26:52.000000000 +0100
@@ -244,7 +244,7 @@
 
 =head1 VERSION
 
-2.0128
+2.0129
 
 =head1 COPYRIGHT
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/XML-LibXML-2.0128/lib/XML/LibXML/InputCallback.pod 
new/XML-LibXML-2.0129/lib/XML/LibXML/InputCallback.pod
--- old/XML-LibXML-2.0128/lib/XML/LibXML/InputCallback.pod      2016-07-24 
11:05:45.000000000 +0200
+++ new/XML-LibXML-2.0129/lib/XML/LibXML/InputCallback.pod      2017-03-14 
14:26:51.000000000 +0100
@@ -280,7 +280,7 @@
 
 =head1 VERSION
 
-2.0128
+2.0129
 
 =head1 COPYRIGHT
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/XML-LibXML-2.0128/lib/XML/LibXML/Literal.pm 
new/XML-LibXML-2.0129/lib/XML/LibXML/Literal.pm
--- old/XML-LibXML-2.0128/lib/XML/LibXML/Literal.pm     2016-07-24 
11:00:40.000000000 +0200
+++ new/XML-LibXML-2.0129/lib/XML/LibXML/Literal.pm     2017-03-14 
14:25:51.000000000 +0100
@@ -16,7 +16,7 @@
 use warnings;
 
 use vars qw ($VERSION);
-$VERSION = "2.0128"; # VERSION TEMPLATE: DO NOT CHANGE
+$VERSION = "2.0129"; # VERSION TEMPLATE: DO NOT CHANGE
 
 use overload
                '""' => \&value,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/XML-LibXML-2.0128/lib/XML/LibXML/Namespace.pod 
new/XML-LibXML-2.0129/lib/XML/LibXML/Namespace.pod
--- old/XML-LibXML-2.0128/lib/XML/LibXML/Namespace.pod  2016-07-24 
11:05:45.000000000 +0200
+++ new/XML-LibXML-2.0129/lib/XML/LibXML/Namespace.pod  2017-03-14 
14:26:51.000000000 +0100
@@ -141,7 +141,7 @@
 
 =head1 VERSION
 
-2.0128
+2.0129
 
 =head1 COPYRIGHT
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/XML-LibXML-2.0128/lib/XML/LibXML/Node.pod 
new/XML-LibXML-2.0129/lib/XML/LibXML/Node.pod
--- old/XML-LibXML-2.0128/lib/XML/LibXML/Node.pod       2016-07-24 
11:05:45.000000000 +0200
+++ new/XML-LibXML-2.0129/lib/XML/LibXML/Node.pod       2017-03-14 
14:26:51.000000000 +0100
@@ -763,7 +763,7 @@
 
 =head1 VERSION
 
-2.0128
+2.0129
 
 =head1 COPYRIGHT
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/XML-LibXML-2.0128/lib/XML/LibXML/NodeList.pm 
new/XML-LibXML-2.0129/lib/XML/LibXML/NodeList.pm
--- old/XML-LibXML-2.0128/lib/XML/LibXML/NodeList.pm    2016-07-24 
11:00:40.000000000 +0200
+++ new/XML-LibXML-2.0129/lib/XML/LibXML/NodeList.pm    2017-03-14 
14:25:51.000000000 +0100
@@ -17,7 +17,7 @@
 use XML::LibXML::Number;
 
 use vars qw($VERSION);
-$VERSION = "2.0128"; # VERSION TEMPLATE: DO NOT CHANGE
+$VERSION = "2.0129"; # VERSION TEMPLATE: DO NOT CHANGE
 
 use overload
         '""' => \&to_literal,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/XML-LibXML-2.0128/lib/XML/LibXML/Number.pm 
new/XML-LibXML-2.0129/lib/XML/LibXML/Number.pm
--- old/XML-LibXML-2.0128/lib/XML/LibXML/Number.pm      2016-07-24 
11:00:40.000000000 +0200
+++ new/XML-LibXML-2.0129/lib/XML/LibXML/Number.pm      2017-03-14 
14:25:51.000000000 +0100
@@ -14,7 +14,7 @@
 use warnings;
 
 use vars qw ($VERSION);
-$VERSION = "2.0128"; # VERSION TEMPLATE: DO NOT CHANGE
+$VERSION = "2.0129"; # VERSION TEMPLATE: DO NOT CHANGE
 
 use overload
         '""' => \&value,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/XML-LibXML-2.0128/lib/XML/LibXML/PI.pod 
new/XML-LibXML-2.0129/lib/XML/LibXML/PI.pod
--- old/XML-LibXML-2.0128/lib/XML/LibXML/PI.pod 2016-07-24 11:05:45.000000000 
+0200
+++ new/XML-LibXML-2.0129/lib/XML/LibXML/PI.pod 2017-03-14 14:26:51.000000000 
+0100
@@ -74,7 +74,7 @@
 
 =head1 VERSION
 
-2.0128
+2.0129
 
 =head1 COPYRIGHT
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/XML-LibXML-2.0128/lib/XML/LibXML/Parser.pod 
new/XML-LibXML-2.0129/lib/XML/LibXML/Parser.pod
--- old/XML-LibXML-2.0128/lib/XML/LibXML/Parser.pod     2016-07-24 
11:05:45.000000000 +0200
+++ new/XML-LibXML-2.0129/lib/XML/LibXML/Parser.pod     2017-03-14 
14:26:51.000000000 +0100
@@ -984,7 +984,7 @@
 
 =head1 VERSION
 
-2.0128
+2.0129
 
 =head1 COPYRIGHT
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/XML-LibXML-2.0128/lib/XML/LibXML/Pattern.pod 
new/XML-LibXML-2.0129/lib/XML/LibXML/Pattern.pod
--- old/XML-LibXML-2.0128/lib/XML/LibXML/Pattern.pod    2016-07-24 
11:05:45.000000000 +0200
+++ new/XML-LibXML-2.0129/lib/XML/LibXML/Pattern.pod    2017-03-14 
14:26:52.000000000 +0100
@@ -94,7 +94,7 @@
 
 =head1 VERSION
 
-2.0128
+2.0129
 
 =head1 COPYRIGHT
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/XML-LibXML-2.0128/lib/XML/LibXML/Reader.pm 
new/XML-LibXML-2.0129/lib/XML/LibXML/Reader.pm
--- old/XML-LibXML-2.0128/lib/XML/LibXML/Reader.pm      2016-07-24 
11:00:40.000000000 +0200
+++ new/XML-LibXML-2.0129/lib/XML/LibXML/Reader.pm      2017-03-14 
14:25:51.000000000 +0100
@@ -14,7 +14,7 @@
 use warnings;
 
 use vars qw ($VERSION);
-$VERSION = "2.0128"; # VERSION TEMPLATE: DO NOT CHANGE
+$VERSION = "2.0129"; # VERSION TEMPLATE: DO NOT CHANGE
 
 use 5.008_000;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/XML-LibXML-2.0128/lib/XML/LibXML/Reader.pod 
new/XML-LibXML-2.0129/lib/XML/LibXML/Reader.pod
--- old/XML-LibXML-2.0128/lib/XML/LibXML/Reader.pod     2016-07-24 
11:05:45.000000000 +0200
+++ new/XML-LibXML-2.0129/lib/XML/LibXML/Reader.pod     2017-03-14 
14:26:52.000000000 +0100
@@ -657,7 +657,7 @@
 
 =head1 VERSION
 
-2.0128
+2.0129
 
 =head1 COPYRIGHT
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/XML-LibXML-2.0128/lib/XML/LibXML/RegExp.pod 
new/XML-LibXML-2.0129/lib/XML/LibXML/RegExp.pod
--- old/XML-LibXML-2.0128/lib/XML/LibXML/RegExp.pod     2016-07-24 
11:05:45.000000000 +0200
+++ new/XML-LibXML-2.0129/lib/XML/LibXML/RegExp.pod     2017-03-14 
14:26:52.000000000 +0100
@@ -58,7 +58,7 @@
 
 =head1 VERSION
 
-2.0128
+2.0129
 
 =head1 COPYRIGHT
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/XML-LibXML-2.0128/lib/XML/LibXML/RelaxNG.pod 
new/XML-LibXML-2.0129/lib/XML/LibXML/RelaxNG.pod
--- old/XML-LibXML-2.0128/lib/XML/LibXML/RelaxNG.pod    2016-07-24 
11:05:45.000000000 +0200
+++ new/XML-LibXML-2.0129/lib/XML/LibXML/RelaxNG.pod    2017-03-14 
14:26:51.000000000 +0100
@@ -70,7 +70,7 @@
 
 =head1 VERSION
 
-2.0128
+2.0129
 
 =head1 COPYRIGHT
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/XML-LibXML-2.0128/lib/XML/LibXML/SAX/Builder.pm 
new/XML-LibXML-2.0129/lib/XML/LibXML/SAX/Builder.pm
--- old/XML-LibXML-2.0128/lib/XML/LibXML/SAX/Builder.pm 2016-07-24 
11:00:40.000000000 +0200
+++ new/XML-LibXML-2.0129/lib/XML/LibXML/SAX/Builder.pm 2017-03-14 
14:25:51.000000000 +0100
@@ -21,7 +21,7 @@
   return $XML::LibXML::__threads_shared ? 0 : 1;
 }
 
-$VERSION = "2.0128"; # VERSION TEMPLATE: DO NOT CHANGE
+$VERSION = "2.0129"; # VERSION TEMPLATE: DO NOT CHANGE
 
 sub new {
     my $class = shift;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/XML-LibXML-2.0128/lib/XML/LibXML/SAX/Builder.pod 
new/XML-LibXML-2.0129/lib/XML/LibXML/SAX/Builder.pod
--- old/XML-LibXML-2.0128/lib/XML/LibXML/SAX/Builder.pod        2016-07-24 
11:05:45.000000000 +0200
+++ new/XML-LibXML-2.0129/lib/XML/LibXML/SAX/Builder.pod        2017-03-14 
14:26:51.000000000 +0100
@@ -38,7 +38,7 @@
 
 =head1 VERSION
 
-2.0128
+2.0129
 
 =head1 COPYRIGHT
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/XML-LibXML-2.0128/lib/XML/LibXML/SAX/Generator.pm 
new/XML-LibXML-2.0129/lib/XML/LibXML/SAX/Generator.pm
--- old/XML-LibXML-2.0128/lib/XML/LibXML/SAX/Generator.pm       2016-07-24 
11:00:40.000000000 +0200
+++ new/XML-LibXML-2.0129/lib/XML/LibXML/SAX/Generator.pm       2017-03-14 
14:25:51.000000000 +0100
@@ -15,7 +15,7 @@
 use XML::LibXML;
 use vars qw ($VERSION);
 
-$VERSION = "2.0128"; # VERSION TEMPLATE: DO NOT CHANGE
+$VERSION = "2.0129"; # VERSION TEMPLATE: DO NOT CHANGE
 
 sub CLONE_SKIP {
   return $XML::LibXML::__threads_shared ? 0 : 1;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/XML-LibXML-2.0128/lib/XML/LibXML/SAX/Parser.pm 
new/XML-LibXML-2.0129/lib/XML/LibXML/SAX/Parser.pm
--- old/XML-LibXML-2.0128/lib/XML/LibXML/SAX/Parser.pm  2016-07-24 
11:00:40.000000000 +0200
+++ new/XML-LibXML-2.0129/lib/XML/LibXML/SAX/Parser.pm  2017-03-14 
14:25:51.000000000 +0100
@@ -18,7 +18,7 @@
 use XML::SAX::Base;
 use XML::SAX::DocumentLocator;
 
-$VERSION = "2.0128"; # VERSION TEMPLATE: DO NOT CHANGE
+$VERSION = "2.0129"; # VERSION TEMPLATE: DO NOT CHANGE
 @ISA = ('XML::SAX::Base');
 
 sub CLONE_SKIP {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/XML-LibXML-2.0128/lib/XML/LibXML/SAX.pm 
new/XML-LibXML-2.0129/lib/XML/LibXML/SAX.pm
--- old/XML-LibXML-2.0128/lib/XML/LibXML/SAX.pm 2016-07-24 11:00:40.000000000 
+0200
+++ new/XML-LibXML-2.0129/lib/XML/LibXML/SAX.pm 2017-03-14 14:25:51.000000000 
+0100
@@ -14,7 +14,7 @@
 
 use vars qw($VERSION @ISA);
 
-$VERSION = "2.0128"; # VERSION TEMPLATE: DO NOT CHANGE
+$VERSION = "2.0129"; # VERSION TEMPLATE: DO NOT CHANGE
 
 use XML::LibXML;
 use XML::SAX::Base;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/XML-LibXML-2.0128/lib/XML/LibXML/SAX.pod 
new/XML-LibXML-2.0129/lib/XML/LibXML/SAX.pod
--- old/XML-LibXML-2.0128/lib/XML/LibXML/SAX.pod        2016-07-24 
11:05:45.000000000 +0200
+++ new/XML-LibXML-2.0129/lib/XML/LibXML/SAX.pod        2017-03-14 
14:26:51.000000000 +0100
@@ -47,7 +47,7 @@
 
 =head1 VERSION
 
-2.0128
+2.0129
 
 =head1 COPYRIGHT
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/XML-LibXML-2.0128/lib/XML/LibXML/Schema.pod 
new/XML-LibXML-2.0129/lib/XML/LibXML/Schema.pod
--- old/XML-LibXML-2.0128/lib/XML/LibXML/Schema.pod     2016-07-24 
11:05:45.000000000 +0200
+++ new/XML-LibXML-2.0129/lib/XML/LibXML/Schema.pod     2017-03-14 
14:26:51.000000000 +0100
@@ -66,7 +66,7 @@
 
 =head1 VERSION
 
-2.0128
+2.0129
 
 =head1 COPYRIGHT
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/XML-LibXML-2.0128/lib/XML/LibXML/Text.pod 
new/XML-LibXML-2.0129/lib/XML/LibXML/Text.pod
--- old/XML-LibXML-2.0128/lib/XML/LibXML/Text.pod       2016-07-24 
11:05:45.000000000 +0200
+++ new/XML-LibXML-2.0129/lib/XML/LibXML/Text.pod       2017-03-14 
14:26:51.000000000 +0100
@@ -170,7 +170,7 @@
 
 =head1 VERSION
 
-2.0128
+2.0129
 
 =head1 COPYRIGHT
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/XML-LibXML-2.0128/lib/XML/LibXML/XPathContext.pm 
new/XML-LibXML-2.0129/lib/XML/LibXML/XPathContext.pm
--- old/XML-LibXML-2.0128/lib/XML/LibXML/XPathContext.pm        2016-07-24 
11:00:40.000000000 +0200
+++ new/XML-LibXML-2.0129/lib/XML/LibXML/XPathContext.pm        2017-03-14 
14:25:51.000000000 +0100
@@ -17,7 +17,7 @@
 use XML::LibXML;
 use XML::LibXML::NodeList;
 
-$VERSION = "2.0128"; # VERSION TEMPLATE: DO NOT CHANGE
+$VERSION = "2.0129"; # VERSION TEMPLATE: DO NOT CHANGE
 
 # should LibXML XPath data types be used for simple objects
 # when passing parameters to extension functions (default: no)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/XML-LibXML-2.0128/lib/XML/LibXML/XPathContext.pod 
new/XML-LibXML-2.0129/lib/XML/LibXML/XPathContext.pod
--- old/XML-LibXML-2.0128/lib/XML/LibXML/XPathContext.pod       2016-07-24 
11:05:45.000000000 +0200
+++ new/XML-LibXML-2.0129/lib/XML/LibXML/XPathContext.pod       2017-03-14 
14:26:51.000000000 +0100
@@ -359,7 +359,7 @@
 
 =head1 VERSION
 
-2.0128
+2.0129
 
 =head1 COPYRIGHT
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/XML-LibXML-2.0128/lib/XML/LibXML/XPathExpression.pod 
new/XML-LibXML-2.0129/lib/XML/LibXML/XPathExpression.pod
--- old/XML-LibXML-2.0128/lib/XML/LibXML/XPathExpression.pod    2016-07-24 
11:05:45.000000000 +0200
+++ new/XML-LibXML-2.0129/lib/XML/LibXML/XPathExpression.pod    2017-03-14 
14:26:52.000000000 +0100
@@ -52,7 +52,7 @@
 
 =head1 VERSION
 
-2.0128
+2.0129
 
 =head1 COPYRIGHT
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/XML-LibXML-2.0128/perl-libxml-sax.c 
new/XML-LibXML-2.0129/perl-libxml-sax.c
--- old/XML-LibXML-2.0128/perl-libxml-sax.c     2016-05-30 11:01:59.000000000 
+0200
+++ new/XML-LibXML-2.0129/perl-libxml-sax.c     2017-03-13 14:40:51.000000000 
+0100
@@ -52,7 +52,7 @@
 typedef struct {
     SV * parser;
     xmlNodePtr ns_stack;
-    xmlSAXLocator * locator;
+    HV * locator;
     xmlDocPtr ns_stack_root;
     SV * handler;
     SV * saved_error;
@@ -364,6 +364,12 @@
 
     xmlFreeDoc( vec->ns_stack_root );
     vec->ns_stack_root = NULL;
+
+    if ( vec->locator != NULL ) {
+        SvREFCNT_dec( vec->locator );
+        vec->locator = NULL;
+    }
+
     xmlFree( vec );
     ctxt->_private = NULL;
 }
@@ -563,6 +569,8 @@
     PSaxStartPrefix( sax, name, href, handler );
 }
 
+#define XML_STR_NOT_EMPTY(s) ((s)[0] != 0)
+
 HV *
 PmmGenElementSV( pTHX_ PmmSAXVectorPtr sax, const xmlChar * name )
 {
@@ -572,7 +580,7 @@
 
     xmlNsPtr ns = NULL;
 
-    if ( name != NULL && xmlStrlen( name )  ) {
+    if ( name != NULL && XML_STR_NOT_EMPTY( name )  ) {
         (void) hv_store(retval, "Name", 4,
                  _C2Sv(name, NULL), NameHash);
 
@@ -659,7 +667,7 @@
             name = *ta;  ta++;
             value = *ta; ta++;
 
-            if ( name != NULL && xmlStrlen( name ) ) {
+            if ( name != NULL && XML_STR_NOT_EMPTY( name ) ) {
                 localname = xmlSplitQName(NULL, name, &prefix);
 
                 (void) hv_store(atV, "Name", 4,
@@ -757,7 +765,7 @@
 {
     HV * retval = newHV();
 
-    if ( data != NULL && xmlStrlen( data ) ) {
+    if ( data != NULL && XML_STR_NOT_EMPTY( data ) ) {
         (void) hv_store(retval, "Data", 4,
                  _C2Sv_len(data, len), DataHash);
     }
@@ -772,11 +780,11 @@
 {
     HV * retval = newHV();
 
-    if ( target != NULL && xmlStrlen( target ) ) {
+    if ( target != NULL && XML_STR_NOT_EMPTY( target ) ) {
         (void) hv_store(retval, "Target", 6,
                  _C2Sv(target, NULL), TargetHash);
 
-        if ( data != NULL && xmlStrlen( data ) ) {
+        if ( data != NULL && XML_STR_NOT_EMPTY( data ) ) {
             (void) hv_store(retval, "Data", 4,
                      _C2Sv(data, NULL), DataHash);
         }
@@ -796,21 +804,119 @@
             const xmlChar * systemId )
 {
     HV * retval = newHV();
-    if ( name != NULL && xmlStrlen( name ) ) {
+    if ( name != NULL && XML_STR_NOT_EMPTY( name ) ) {
       (void) hv_store(retval, "Name", 4,
               _C2Sv(name, NULL), NameHash);
     }
-    if ( publicId != NULL && xmlStrlen( publicId ) ) {
+    if ( publicId != NULL && XML_STR_NOT_EMPTY( publicId ) ) {
       (void) hv_store(retval, "PublicId", 8,
               _C2Sv(publicId, NULL), PublicIdHash);
     }
-    if ( systemId != NULL && xmlStrlen( systemId ) ) {
+    if ( systemId != NULL && XML_STR_NOT_EMPTY( systemId ) ) {
       (void) hv_store(retval, "SystemId", 8,
               _C2Sv(systemId, NULL), SystemIdHash);
     }
     return retval;
 }
 
+HV *
+PmmGenLocator( xmlSAXLocatorPtr loc)
+{
+    dTHX;
+    HV * locator = newHV();
+
+    const xmlChar * PublicId = loc->getPublicId(NULL);
+    const xmlChar * SystemId = loc->getSystemId(NULL);
+
+    if ( PublicId != NULL && XML_STR_NOT_EMPTY( PublicId ) ) {
+      (void) hv_store(locator, "PublicId", 8,
+           newSVpv((char *)PublicId, 0), 0);
+    }
+
+    if ( SystemId != NULL && XML_STR_NOT_EMPTY( SystemId ) ) {
+      (void) hv_store(locator, "SystemId", 8,
+           newSVpv((char *)SystemId, 0), 0);
+    }
+
+    return locator;
+}
+
+
+void
+PmmUpdateLocator( xmlParserCtxtPtr ctxt )
+{
+    PmmSAXVectorPtr sax = (PmmSAXVectorPtr)ctxt->_private;
+
+    if (sax->locator == NULL) {
+        return;
+    }
+
+    dTHX;
+
+    (void) hv_store(sax->locator, "LineNumber", 10,
+         newSViv(ctxt->input->line), 0);
+
+    (void) hv_store(sax->locator, "ColumnNumber", 12,
+         newSViv(ctxt->input->col), 0);
+
+    const xmlChar * encoding = ctxt->input->encoding;
+    const xmlChar * version = ctxt->input->version;
+
+    if ( encoding != NULL && XML_STR_NOT_EMPTY( encoding ) ) {
+      (void) hv_store(sax->locator, "Encoding", 8,
+           newSVpv((char *)encoding, 0), 0);
+    }
+
+    if ( version != NULL && XML_STR_NOT_EMPTY( version ) ) {
+      (void) hv_store(sax->locator, "XMLVersion", 10,
+           newSVpv((char *)version, 0), 0);
+    }
+}
+
+int
+PSaxSetDocumentLocator(void *ctx, xmlSAXLocatorPtr loc)
+{
+    xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr)ctx;
+    PmmSAXVectorPtr  sax  = (PmmSAXVectorPtr)ctxt->_private;
+    dTHX;
+    HV* empty;
+    SV * handler          = sax->handler;
+    SV * rv;
+
+    dSP;
+
+    if (sax->joinchars)
+    {
+        PSaxCharactersFlush(ctxt, sax->charbuf);
+    }
+
+    ENTER;
+    SAVETMPS;
+
+    PUSHMARK(SP) ;
+
+    XPUSHs(handler);
+
+    sax->locator = PmmGenLocator(loc);
+
+    rv = newRV_inc((SV*)sax->locator);
+    XPUSHs( rv);
+
+    PUTBACK;
+
+    call_method( "set_document_locator", G_SCALAR | G_EVAL | G_DISCARD );
+    sv_2mortal(rv) ;
+
+    if (SvTRUE(ERRSV)) {
+        croak_obj;
+    }
+
+    FREETMPS ;
+    LEAVE ;
+    CLEAR_SERROR_HANDLER
+    return 1;
+}
+
 int
 PSaxStartDocument(void * ctx)
 {
@@ -823,6 +929,8 @@
     SV * rv;
     if ( handler != NULL ) {
 
+        PmmUpdateLocator(ctx);
+
         dSP;
 
         ENTER;
@@ -889,6 +997,8 @@
     dTHX;
     dSP;
 
+    PmmUpdateLocator(ctx);
+
     if (sax->joinchars)
     {
         PSaxCharactersFlush(ctxt, sax->charbuf);
@@ -927,6 +1037,8 @@
 
     dSP;
 
+    PmmUpdateLocator(ctx);
+
     if (sax->joinchars)
     {
         PSaxCharactersFlush(ctxt, sax->charbuf);
@@ -978,6 +1090,8 @@
 
     dSP;
 
+    PmmUpdateLocator(ctx);
+
     if (sax->joinchars)
     {
         PSaxCharactersFlush(ctxt, sax->charbuf);
@@ -1079,6 +1193,8 @@
     xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr)ctx;
     PmmSAXVectorPtr sax = (PmmSAXVectorPtr)ctxt->_private;
 
+    PmmUpdateLocator(ctx);
+
     if (sax->joinchars) {
         struct CBuffer *buffer = sax->charbuf;
         CBufferAppend(buffer, ch, len);
@@ -1096,6 +1212,8 @@
     HV* element;
     SV * handler = sax->handler;
 
+    PmmUpdateLocator(ctx);
+
     SV * rv = NULL;
 
     if ( ch != NULL && handler != NULL ) {
@@ -1139,6 +1257,8 @@
     PmmSAXVectorPtr sax = (PmmSAXVectorPtr)ctxt->_private;
     dTHX;
 
+    PmmUpdateLocator(ctx);
+
     HV* element;
     SV * handler = sax->handler;
 
@@ -1209,6 +1329,8 @@
     dTHX;
     SV * handler          = sax->handler;
 
+    PmmUpdateLocator(ctx);
+
     SV * element;
     SV * rv = NULL;
 
@@ -1253,6 +1375,8 @@
 {
     xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr)ctx;
     PmmSAXVectorPtr sax   = (PmmSAXVectorPtr)ctxt->_private;
+    PmmUpdateLocator(ctx);
+
     dTHX;
     SV * handler          = sax->handler;
 
@@ -1524,6 +1648,8 @@
     xmlSAXHandlerPtr retval = 
(xmlSAXHandlerPtr)xmlMalloc(sizeof(xmlSAXHandler));
     memset(retval, 0, sizeof(xmlSAXHandler));
 
+    retval->setDocumentLocator = 
(setDocumentLocatorSAXFunc)&PSaxSetDocumentLocator;
+
     retval->startDocument = (startDocumentSAXFunc)&PSaxStartDocument;
 
     /* libxml2 will not handle perls returnvalue correctly, so we have
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/XML-LibXML-2.0128/t/14sax.t 
new/XML-LibXML-2.0129/t/14sax.t
--- old/XML-LibXML-2.0128/t/14sax.t     2016-05-30 11:01:59.000000000 +0200
+++ new/XML-LibXML-2.0129/t/14sax.t     2016-12-23 15:26:25.000000000 +0100
@@ -6,8 +6,8 @@
 use Counter;
 use Stacker;
 
-# should be 31.
-use Test::More tests => 31;
+# should be 33.
+use Test::More tests => 33;
 
 # BEGIN { plan tests => 55 }
 
@@ -230,6 +230,51 @@
     );
 }
 
+{
+    local $XML::SAX::ParserPackage = 'XML::LibXML::SAX';
+
+    my @stack;
+    my $sax = SAXLocatorTester->new( sub {
+        my ($self, $method, @args) = @_;
+        push( @stack, $method => [
+            $self->{locator}->{LineNumber},
+            $self->{locator}->{ColumnNumber}
+        ] );
+    } );
+
+    # TEST
+    ok($sax, 'Created SAX handler with document locator');
+
+    my $parser = XML::SAX::ParserFactory->parser(Handler => $sax);
+
+    $parser->parse_string(<<EOT);
+<?xml version="1.0" encoding="UTF-8"?>
+<root>
+1
+<!-- comment -->
+<![CDATA[ a < b ]]>
+</root>
+EOT
+
+    my $expecting = [
+        start_document => [ 2, 1  ],
+        start_element  => [ 2, 6  ],
+        characters     => [ 4, 1  ],
+        comment        => [ 4, 17 ],
+        characters     => [ 5, 1  ],
+        start_cdata    => [ 5, 20 ],
+        characters     => [ 5, 20 ],
+        end_cdata      => [ 5, 20 ],
+        characters     => [ 6, 1  ],
+        end_element    => [ 6, 8  ],
+        end_document   => [ 6, 8  ],
+    ];
+
+    # TEST
+    is_deeply( \@stack, $expecting, "Check locator positions" );
+}
+
+
 ########### Namespace test ( empty namespaces ) ########
 
 {
@@ -427,6 +472,34 @@
     return;
 }
 
+
+package SAXLocatorTester;
+use Test::More;
+
+sub new {
+    my ($class, $cb) = @_;
+    my $self = bless {}, $class;
+
+    for my $method ( qw(
+        start_document end_document
+        start_element end_element
+        start_cdata end_cdata
+        start_dtd end_dtd
+        characters
+        comment
+    ) ) {
+        no strict 'refs';
+        *$method = sub { $cb->( $_[0], $method, @_[1..$#_]) };
+    }
+
+    return $self;
+}
+
+sub set_document_locator {
+    my ($self, $locator) = @_;
+    $self->{locator} = $locator;
+}
+
 1;
 
 package SAXErrorTester;


Reply via email to