New upstream version 2.0207+dfsg+really+2.0134
This commit is contained in:
parent
1d68b2273b
commit
104c8ff52a
54
Changes
54
Changes
|
@ -1,59 +1,5 @@
|
||||||
Revision history for Perl extension XML::LibXML
|
Revision history for Perl extension XML::LibXML
|
||||||
|
|
||||||
2.0207 2021-04-17
|
|
||||||
- Small cleanups:
|
|
||||||
- https://github.com/shlomif/perl-XML-LibXML/pull/63
|
|
||||||
- Thanks to @Grinnz , @Kritzefitz and @atoomic .
|
|
||||||
|
|
||||||
2.0206 2020-09-15
|
|
||||||
- Add expand_entities => 1 to the instantiation at lib/XML/LibXML/SAX.pm
|
|
||||||
- in order to fix https://rt.cpan.org/Public/Bug/Display.html?id=132759
|
|
||||||
- failing XML-Simple tests
|
|
||||||
- Thanks to SREZIC , and GRANTM .
|
|
||||||
- Update HACKING.txt .
|
|
||||||
|
|
||||||
2.0205 2020-05-08
|
|
||||||
- Add XML::LibXML to the XML/SAX/ParserDetails.ini configuration file
|
|
||||||
upon installation.
|
|
||||||
- https://rt.cpan.org/Public/Bug/Display.html?id=132523
|
|
||||||
- https://github.com/shlomif/perl-XML-LibXML/pull/49
|
|
||||||
- Thanks to SREZIC , @genio , and @plicease .
|
|
||||||
|
|
||||||
2.0204 2020-03-17
|
|
||||||
- Require a recent Alien::Libxml2.
|
|
||||||
- https://rt.cpan.org/Public/Bug/Display.html?id=132129
|
|
||||||
- Thanks to SREZIC
|
|
||||||
|
|
||||||
2.0203 2020-03-11
|
|
||||||
- Use Alien::Base::Wrapper for better portability.
|
|
||||||
- https://github.com/shlomif/perl-XML-LibXML/pull/45
|
|
||||||
- Thanks to @plicease
|
|
||||||
|
|
||||||
2.0202 2020-01-13
|
|
||||||
- Disable loading external DTDs or external entities by default
|
|
||||||
- Thanks to Tim Retout
|
|
||||||
- Docs: Noting that HTTPS doesn't work for schema-loading either.
|
|
||||||
- Thanks to Jason McIntosh
|
|
||||||
- Allow to parse RelaxNG without accessing network
|
|
||||||
- Thanks to PALI
|
|
||||||
- Allow to parse XML Schema without accessing network
|
|
||||||
- Thanks to PALI
|
|
||||||
- Add Test-Count assertion count checking using
|
|
||||||
https://metacpan.org/pod/Code::TidyAll::Plugin::TestCount
|
|
||||||
|
|
||||||
2.0201 2019-05-25
|
|
||||||
- Set MIN_PERL_VERSION to 5.8.1.
|
|
||||||
- Alien::Libxml2 Makefile.PL cleanups.
|
|
||||||
- Update the README for grammar and info.
|
|
||||||
- Link to XML-LibXML "by Example"
|
|
||||||
- https://github.com/shlomif/perl-XML-LibXML/pull/36
|
|
||||||
- Thanks to @Grinnz .
|
|
||||||
|
|
||||||
2.0200 2019-03-23
|
|
||||||
- Convert to use Alien::Libxml2 .
|
|
||||||
- https://github.com/shlomif/perl-XML-LibXML/pull/30
|
|
||||||
- Thanks to @genio and @plicease .
|
|
||||||
|
|
||||||
2.0134 2019-02-10
|
2.0134 2019-02-10
|
||||||
- Fix overzealous POD escaping in the docs' synposes
|
- Fix overzealous POD escaping in the docs' synposes
|
||||||
- https://github.com/shlomif/perl-XML-LibXML/issues/26
|
- https://github.com/shlomif/perl-XML-LibXML/issues/26
|
||||||
|
|
|
@ -11,9 +11,9 @@ Use Test::More for test scripts while using Test::Count annotations
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
One should use Test::More for new test scripts, while using Test::Count
|
One should use Test::More for new test scripts, while using Test::Count
|
||||||
( https://metacpan.org/module/Test::Count ) "# TEST" annotations. Some
|
( http://beta.metacpan.org/module/Test::Count ) "# TEST" annotations. Some
|
||||||
of the old test scripts under +t/*.t+ had used Test.pm, but they
|
of the old test scripts under +t/*.t+ are still using Test.pm, but it should
|
||||||
have all been converted to Test::More, which should be used for new code.
|
not be used for new code.
|
||||||
|
|
||||||
Any bug fixes or feature addition patches should be accompanied with
|
Any bug fixes or feature addition patches should be accompanied with
|
||||||
a test script to test the code.
|
a test script to test the code.
|
||||||
|
|
21
LibXML.pm
21
LibXML.pm
|
@ -29,11 +29,11 @@ use XML::LibXML::XPathContext;
|
||||||
use IO::Handle; # for FH reads called as methods
|
use IO::Handle; # for FH reads called as methods
|
||||||
|
|
||||||
BEGIN {
|
BEGIN {
|
||||||
$VERSION = "2.0207"; # VERSION TEMPLATE: DO NOT CHANGE
|
$VERSION = "2.0134"; # VERSION TEMPLATE: DO NOT CHANGE
|
||||||
$ABI_VERSION = 2;
|
$ABI_VERSION = 2;
|
||||||
require Exporter;
|
require Exporter;
|
||||||
use XSLoader ();
|
require DynaLoader;
|
||||||
@ISA = qw(Exporter);
|
@ISA = qw(DynaLoader Exporter);
|
||||||
|
|
||||||
use vars qw($__PROXY_NODE_REGISTRY $__threads_shared $__PROXY_NODE_REGISTRY_MUTEX $__loaded);
|
use vars qw($__PROXY_NODE_REGISTRY $__threads_shared $__PROXY_NODE_REGISTRY_MUTEX $__loaded);
|
||||||
|
|
||||||
|
@ -147,7 +147,7 @@ $CloseCB = undef;
|
||||||
#-------------------------------------------------------------------------#
|
#-------------------------------------------------------------------------#
|
||||||
# bootstrapping #
|
# bootstrapping #
|
||||||
#-------------------------------------------------------------------------#
|
#-------------------------------------------------------------------------#
|
||||||
XSLoader::load( 'XML::LibXML', $VERSION );
|
bootstrap XML::LibXML $VERSION;
|
||||||
undef &AUTOLOAD;
|
undef &AUTOLOAD;
|
||||||
|
|
||||||
*encodeToUTF8 = \&XML::LibXML::Common::encodeToUTF8;
|
*encodeToUTF8 = \&XML::LibXML::Common::encodeToUTF8;
|
||||||
|
@ -261,7 +261,7 @@ use constant {
|
||||||
HTML_PARSE_NOERROR => (1<<5), # suppress error reports
|
HTML_PARSE_NOERROR => (1<<5), # suppress error reports
|
||||||
};
|
};
|
||||||
|
|
||||||
$XML_LIBXML_PARSE_DEFAULTS = ( XML_PARSE_NODICT );
|
$XML_LIBXML_PARSE_DEFAULTS = ( XML_PARSE_NODICT | XML_PARSE_DTDLOAD | XML_PARSE_NOENT );
|
||||||
|
|
||||||
# this hash is made global so that applications can add names for new
|
# this hash is made global so that applications can add names for new
|
||||||
# libxml2 parser flags as temporary workaround
|
# libxml2 parser flags as temporary workaround
|
||||||
|
@ -366,7 +366,6 @@ sub new {
|
||||||
}
|
}
|
||||||
# parser flags
|
# parser flags
|
||||||
$opts{no_blanks} = !$opts{keep_blanks} if exists($opts{keep_blanks}) and !exists($opts{no_blanks});
|
$opts{no_blanks} = !$opts{keep_blanks} if exists($opts{keep_blanks}) and !exists($opts{no_blanks});
|
||||||
$opts{load_ext_dtd} = $opts{expand_entities} if exists($opts{expand_entities}) and !exists($opts{load_ext_dtd});
|
|
||||||
|
|
||||||
for (keys %OUR_FLAGS) {
|
for (keys %OUR_FLAGS) {
|
||||||
$self->{$OUR_FLAGS{$_}} = delete $opts{$_};
|
$self->{$OUR_FLAGS{$_}} = delete $opts{$_};
|
||||||
|
@ -2079,13 +2078,13 @@ sub new {
|
||||||
|
|
||||||
my $self = undef;
|
my $self = undef;
|
||||||
if ( defined $args{location} ) {
|
if ( defined $args{location} ) {
|
||||||
$self = $class->parse_location( $args{location}, XML::LibXML->_parser_options(\%args), $args{recover} );
|
$self = $class->parse_location( $args{location} );
|
||||||
}
|
}
|
||||||
elsif ( defined $args{string} ) {
|
elsif ( defined $args{string} ) {
|
||||||
$self = $class->parse_buffer( $args{string}, XML::LibXML->_parser_options(\%args), $args{recover} );
|
$self = $class->parse_buffer( $args{string} );
|
||||||
}
|
}
|
||||||
elsif ( defined $args{DOM} ) {
|
elsif ( defined $args{DOM} ) {
|
||||||
$self = $class->parse_document( $args{DOM}, XML::LibXML->_parser_options(\%args), $args{recover} );
|
$self = $class->parse_document( $args{DOM} );
|
||||||
}
|
}
|
||||||
|
|
||||||
return $self;
|
return $self;
|
||||||
|
@ -2103,10 +2102,10 @@ sub new {
|
||||||
|
|
||||||
my $self = undef;
|
my $self = undef;
|
||||||
if ( defined $args{location} ) {
|
if ( defined $args{location} ) {
|
||||||
$self = $class->parse_location( $args{location}, XML::LibXML->_parser_options(\%args), $args{recover} );
|
$self = $class->parse_location( $args{location} );
|
||||||
}
|
}
|
||||||
elsif ( defined $args{string} ) {
|
elsif ( defined $args{string} ) {
|
||||||
$self = $class->parse_buffer( $args{string}, XML::LibXML->_parser_options(\%args), $args{recover} );
|
$self = $class->parse_buffer( $args{string} );
|
||||||
}
|
}
|
||||||
|
|
||||||
return $self;
|
return $self;
|
||||||
|
|
|
@ -25,8 +25,6 @@ a XML::XPath-like interface to XPath API of libxml2. The module is split into
|
||||||
several packages which are not described in this section; unless stated
|
several packages which are not described in this section; unless stated
|
||||||
otherwise, you only need to C<<<<<< use XML::LibXML; >>>>>> in your programs.
|
otherwise, you only need to C<<<<<< use XML::LibXML; >>>>>> in your programs.
|
||||||
|
|
||||||
Check out XML::LibXML by Example (L<<<<<< http://grantm.github.io/perl-libxml-by-example/ >>>>>>) for a tutorial.
|
|
||||||
|
|
||||||
For further information, please check the following documentation:
|
For further information, please check the following documentation:
|
||||||
|
|
||||||
=over 4
|
=over 4
|
||||||
|
@ -507,7 +505,7 @@ Petr Pajas
|
||||||
|
|
||||||
=head1 VERSION
|
=head1 VERSION
|
||||||
|
|
||||||
2.0207
|
2.0134
|
||||||
|
|
||||||
=head1 COPYRIGHT
|
=head1 COPYRIGHT
|
||||||
|
|
||||||
|
|
83
LibXML.xs
83
LibXML.xs
|
@ -7337,14 +7337,11 @@ DESTROY( self )
|
||||||
|
|
||||||
|
|
||||||
xmlRelaxNGPtr
|
xmlRelaxNGPtr
|
||||||
parse_location( self, url, parser_options = 0, recover = FALSE )
|
parse_location( self, url )
|
||||||
char * url
|
char * url
|
||||||
int parser_options
|
|
||||||
bool recover
|
|
||||||
PREINIT:
|
PREINIT:
|
||||||
const char * CLASS = "XML::LibXML::RelaxNG";
|
const char * CLASS = "XML::LibXML::RelaxNG";
|
||||||
xmlRelaxNGParserCtxtPtr rngctxt = NULL;
|
xmlRelaxNGParserCtxtPtr rngctxt = NULL;
|
||||||
xmlExternalEntityLoader old_ext_ent_loader = NULL;
|
|
||||||
PREINIT_SAVED_ERROR
|
PREINIT_SAVED_ERROR
|
||||||
CODE:
|
CODE:
|
||||||
INIT_ERROR_HANDLER;
|
INIT_ERROR_HANDLER;
|
||||||
|
@ -7360,33 +7357,20 @@ parse_location( self, url, parser_options = 0, recover = FALSE )
|
||||||
(xmlRelaxNGValidityWarningFunc)LibXML_error_handler_ctx,
|
(xmlRelaxNGValidityWarningFunc)LibXML_error_handler_ctx,
|
||||||
saved_error );
|
saved_error );
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if ( EXTERNAL_ENTITY_LOADER_FUNC == NULL && (parser_options & XML_PARSE_NONET) ) {
|
|
||||||
old_ext_ent_loader = xmlGetExternalEntityLoader();
|
|
||||||
xmlSetExternalEntityLoader( xmlNoNetExternalEntityLoader );
|
|
||||||
}
|
|
||||||
|
|
||||||
RETVAL = xmlRelaxNGParse( rngctxt );
|
RETVAL = xmlRelaxNGParse( rngctxt );
|
||||||
|
|
||||||
if ( EXTERNAL_ENTITY_LOADER_FUNC == NULL && (parser_options & XML_PARSE_NONET) )
|
|
||||||
xmlSetExternalEntityLoader( (xmlExternalEntityLoader)old_ext_ent_loader );
|
|
||||||
|
|
||||||
xmlRelaxNGFreeParserCtxt( rngctxt );
|
xmlRelaxNGFreeParserCtxt( rngctxt );
|
||||||
CLEANUP_ERROR_HANDLER;
|
CLEANUP_ERROR_HANDLER;
|
||||||
REPORT_ERROR((RETVAL == NULL) ? 0 : recover);
|
REPORT_ERROR((RETVAL == NULL) ? 0 : 1);
|
||||||
OUTPUT:
|
OUTPUT:
|
||||||
RETVAL
|
RETVAL
|
||||||
|
|
||||||
|
|
||||||
xmlRelaxNGPtr
|
xmlRelaxNGPtr
|
||||||
parse_buffer( self, perlstring, parser_options = 0, recover = FALSE )
|
parse_buffer( self, perlstring )
|
||||||
SV * perlstring
|
SV * perlstring
|
||||||
int parser_options
|
|
||||||
bool recover
|
|
||||||
PREINIT:
|
PREINIT:
|
||||||
const char * CLASS = "XML::LibXML::RelaxNG";
|
const char * CLASS = "XML::LibXML::RelaxNG";
|
||||||
xmlRelaxNGParserCtxtPtr rngctxt = NULL;
|
xmlRelaxNGParserCtxtPtr rngctxt = NULL;
|
||||||
xmlExternalEntityLoader old_ext_ent_loader = NULL;
|
|
||||||
char * string = NULL;
|
char * string = NULL;
|
||||||
STRLEN len = 0;
|
STRLEN len = 0;
|
||||||
PREINIT_SAVED_ERROR
|
PREINIT_SAVED_ERROR
|
||||||
|
@ -7409,33 +7393,20 @@ parse_buffer( self, perlstring, parser_options = 0, recover = FALSE )
|
||||||
(xmlRelaxNGValidityWarningFunc)LibXML_error_handler_ctx,
|
(xmlRelaxNGValidityWarningFunc)LibXML_error_handler_ctx,
|
||||||
saved_error );
|
saved_error );
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if ( EXTERNAL_ENTITY_LOADER_FUNC == NULL && (parser_options & XML_PARSE_NONET) ) {
|
|
||||||
old_ext_ent_loader = xmlGetExternalEntityLoader();
|
|
||||||
xmlSetExternalEntityLoader( xmlNoNetExternalEntityLoader );
|
|
||||||
}
|
|
||||||
|
|
||||||
RETVAL = xmlRelaxNGParse( rngctxt );
|
RETVAL = xmlRelaxNGParse( rngctxt );
|
||||||
|
|
||||||
if ( EXTERNAL_ENTITY_LOADER_FUNC == NULL && (parser_options & XML_PARSE_NONET) )
|
|
||||||
xmlSetExternalEntityLoader( (xmlExternalEntityLoader)old_ext_ent_loader );
|
|
||||||
|
|
||||||
xmlRelaxNGFreeParserCtxt( rngctxt );
|
xmlRelaxNGFreeParserCtxt( rngctxt );
|
||||||
CLEANUP_ERROR_HANDLER;
|
CLEANUP_ERROR_HANDLER;
|
||||||
REPORT_ERROR((RETVAL == NULL) ? 0 : recover);
|
REPORT_ERROR((RETVAL == NULL) ? 0 : 1);
|
||||||
OUTPUT:
|
OUTPUT:
|
||||||
RETVAL
|
RETVAL
|
||||||
|
|
||||||
|
|
||||||
xmlRelaxNGPtr
|
xmlRelaxNGPtr
|
||||||
parse_document( self, doc, parser_options = 0, recover = FALSE )
|
parse_document( self, doc )
|
||||||
xmlDocPtr doc
|
xmlDocPtr doc
|
||||||
int parser_options
|
|
||||||
bool recover
|
|
||||||
PREINIT:
|
PREINIT:
|
||||||
const char * CLASS = "XML::LibXML::RelaxNG";
|
const char * CLASS = "XML::LibXML::RelaxNG";
|
||||||
xmlRelaxNGParserCtxtPtr rngctxt = NULL;
|
xmlRelaxNGParserCtxtPtr rngctxt = NULL;
|
||||||
xmlExternalEntityLoader old_ext_ent_loader = NULL;
|
|
||||||
PREINIT_SAVED_ERROR
|
PREINIT_SAVED_ERROR
|
||||||
CODE:
|
CODE:
|
||||||
INIT_ERROR_HANDLER;
|
INIT_ERROR_HANDLER;
|
||||||
|
@ -7451,20 +7422,10 @@ parse_document( self, doc, parser_options = 0, recover = FALSE )
|
||||||
(xmlRelaxNGValidityWarningFunc)LibXML_error_handler_ctx,
|
(xmlRelaxNGValidityWarningFunc)LibXML_error_handler_ctx,
|
||||||
saved_error );
|
saved_error );
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if ( EXTERNAL_ENTITY_LOADER_FUNC == NULL && (parser_options & XML_PARSE_NONET) ) {
|
|
||||||
old_ext_ent_loader = xmlGetExternalEntityLoader();
|
|
||||||
xmlSetExternalEntityLoader( xmlNoNetExternalEntityLoader );
|
|
||||||
}
|
|
||||||
|
|
||||||
RETVAL = xmlRelaxNGParse( rngctxt );
|
RETVAL = xmlRelaxNGParse( rngctxt );
|
||||||
|
|
||||||
if ( EXTERNAL_ENTITY_LOADER_FUNC == NULL && (parser_options & XML_PARSE_NONET) )
|
|
||||||
xmlSetExternalEntityLoader( (xmlExternalEntityLoader)old_ext_ent_loader );
|
|
||||||
|
|
||||||
xmlRelaxNGFreeParserCtxt( rngctxt );
|
xmlRelaxNGFreeParserCtxt( rngctxt );
|
||||||
CLEANUP_ERROR_HANDLER;
|
CLEANUP_ERROR_HANDLER;
|
||||||
REPORT_ERROR((RETVAL == NULL) ? 0 : recover);
|
REPORT_ERROR((RETVAL == NULL) ? 0 : 1);
|
||||||
OUTPUT:
|
OUTPUT:
|
||||||
RETVAL
|
RETVAL
|
||||||
|
|
||||||
|
@ -7526,14 +7487,11 @@ DESTROY( self )
|
||||||
|
|
||||||
|
|
||||||
xmlSchemaPtr
|
xmlSchemaPtr
|
||||||
parse_location( self, url, parser_options = 0, recover = FALSE )
|
parse_location( self, url )
|
||||||
char * url
|
char * url
|
||||||
int parser_options
|
|
||||||
bool recover
|
|
||||||
PREINIT:
|
PREINIT:
|
||||||
const char * CLASS = "XML::LibXML::Schema";
|
const char * CLASS = "XML::LibXML::Schema";
|
||||||
xmlSchemaParserCtxtPtr rngctxt = NULL;
|
xmlSchemaParserCtxtPtr rngctxt = NULL;
|
||||||
xmlExternalEntityLoader old_ext_ent_loader = NULL;
|
|
||||||
PREINIT_SAVED_ERROR
|
PREINIT_SAVED_ERROR
|
||||||
CODE:
|
CODE:
|
||||||
INIT_ERROR_HANDLER;
|
INIT_ERROR_HANDLER;
|
||||||
|
@ -7551,32 +7509,20 @@ parse_location( self, url, parser_options = 0, recover = FALSE )
|
||||||
(xmlSchemaValidityWarningFunc)LibXML_error_handler_ctx,
|
(xmlSchemaValidityWarningFunc)LibXML_error_handler_ctx,
|
||||||
saved_error );
|
saved_error );
|
||||||
|
|
||||||
if ( EXTERNAL_ENTITY_LOADER_FUNC == NULL && (parser_options & XML_PARSE_NONET) ) {
|
|
||||||
old_ext_ent_loader = xmlGetExternalEntityLoader();
|
|
||||||
xmlSetExternalEntityLoader( xmlNoNetExternalEntityLoader );
|
|
||||||
}
|
|
||||||
|
|
||||||
RETVAL = xmlSchemaParse( rngctxt );
|
RETVAL = xmlSchemaParse( rngctxt );
|
||||||
|
|
||||||
if ( EXTERNAL_ENTITY_LOADER_FUNC == NULL && (parser_options & XML_PARSE_NONET) )
|
|
||||||
xmlSetExternalEntityLoader( (xmlExternalEntityLoader)old_ext_ent_loader );
|
|
||||||
|
|
||||||
xmlSchemaFreeParserCtxt( rngctxt );
|
xmlSchemaFreeParserCtxt( rngctxt );
|
||||||
CLEANUP_ERROR_HANDLER;
|
CLEANUP_ERROR_HANDLER;
|
||||||
REPORT_ERROR((RETVAL == NULL) ? 0 : recover);
|
REPORT_ERROR((RETVAL == NULL) ? 0 : 1);
|
||||||
OUTPUT:
|
OUTPUT:
|
||||||
RETVAL
|
RETVAL
|
||||||
|
|
||||||
|
|
||||||
xmlSchemaPtr
|
xmlSchemaPtr
|
||||||
parse_buffer( self, perlstring, parser_options = 0, recover = FALSE )
|
parse_buffer( self, perlstring )
|
||||||
SV * perlstring
|
SV * perlstring
|
||||||
int parser_options
|
|
||||||
bool recover
|
|
||||||
PREINIT:
|
PREINIT:
|
||||||
const char * CLASS = "XML::LibXML::Schema";
|
const char * CLASS = "XML::LibXML::Schema";
|
||||||
xmlSchemaParserCtxtPtr rngctxt = NULL;
|
xmlSchemaParserCtxtPtr rngctxt = NULL;
|
||||||
xmlExternalEntityLoader old_ext_ent_loader = NULL;
|
|
||||||
char * string = NULL;
|
char * string = NULL;
|
||||||
STRLEN len = 0;
|
STRLEN len = 0;
|
||||||
PREINIT_SAVED_ERROR
|
PREINIT_SAVED_ERROR
|
||||||
|
@ -7601,19 +7547,10 @@ parse_buffer( self, perlstring, parser_options = 0, recover = FALSE )
|
||||||
(xmlSchemaValidityWarningFunc)LibXML_error_handler_ctx,
|
(xmlSchemaValidityWarningFunc)LibXML_error_handler_ctx,
|
||||||
saved_error );
|
saved_error );
|
||||||
|
|
||||||
if ( EXTERNAL_ENTITY_LOADER_FUNC == NULL && (parser_options & XML_PARSE_NONET) ) {
|
|
||||||
old_ext_ent_loader = xmlGetExternalEntityLoader();
|
|
||||||
xmlSetExternalEntityLoader( xmlNoNetExternalEntityLoader );
|
|
||||||
}
|
|
||||||
|
|
||||||
RETVAL = xmlSchemaParse( rngctxt );
|
RETVAL = xmlSchemaParse( rngctxt );
|
||||||
|
|
||||||
if ( EXTERNAL_ENTITY_LOADER_FUNC == NULL && (parser_options & XML_PARSE_NONET) )
|
|
||||||
xmlSetExternalEntityLoader( (xmlExternalEntityLoader)old_ext_ent_loader );
|
|
||||||
|
|
||||||
xmlSchemaFreeParserCtxt( rngctxt );
|
xmlSchemaFreeParserCtxt( rngctxt );
|
||||||
CLEANUP_ERROR_HANDLER;
|
CLEANUP_ERROR_HANDLER;
|
||||||
REPORT_ERROR((RETVAL == NULL) ? 0 : recover);
|
REPORT_ERROR((RETVAL == NULL) ? 0 : 1);
|
||||||
OUTPUT:
|
OUTPUT:
|
||||||
RETVAL
|
RETVAL
|
||||||
|
|
||||||
|
|
5
MANIFEST
5
MANIFEST
|
@ -62,6 +62,7 @@ example/xmlns/badguy.xml
|
||||||
example/xmlns/goodguy.xml
|
example/xmlns/goodguy.xml
|
||||||
example/xpath.pl
|
example/xpath.pl
|
||||||
example/yahoo-finance-html-with-errors.html
|
example/yahoo-finance-html-with-errors.html
|
||||||
|
inc/Devel/CheckLib.pm
|
||||||
lib/XML/LibXML/Attr.pod
|
lib/XML/LibXML/Attr.pod
|
||||||
lib/XML/LibXML/AttributeHash.pm
|
lib/XML/LibXML/AttributeHash.pm
|
||||||
lib/XML/LibXML/Boolean.pm
|
lib/XML/LibXML/Boolean.pm
|
||||||
|
@ -115,7 +116,6 @@ scripts/prints-to-comments.pl
|
||||||
scripts/tag-release.pl
|
scripts/tag-release.pl
|
||||||
scripts/total-build-and-test.bash
|
scripts/total-build-and-test.bash
|
||||||
scripts/update-HACKING-file.bash
|
scripts/update-HACKING-file.bash
|
||||||
t/00-report-prereqs.t
|
|
||||||
t/01basic.t
|
t/01basic.t
|
||||||
t/02parse.t
|
t/02parse.t
|
||||||
t/03doc.t
|
t/03doc.t
|
||||||
|
@ -161,7 +161,6 @@ t/46err_column.t
|
||||||
t/47load_xml_callbacks.t
|
t/47load_xml_callbacks.t
|
||||||
t/48_RH5_double_free_rt83779.t
|
t/48_RH5_double_free_rt83779.t
|
||||||
t/48_SAX_Builder_rt_91433.t
|
t/48_SAX_Builder_rt_91433.t
|
||||||
t/48_gh_pr63_detect_undef_values.t
|
|
||||||
t/48_memleak_rt_83744.t
|
t/48_memleak_rt_83744.t
|
||||||
t/48_reader_undef_warning_on_empty_str_rt106830.t
|
t/48_reader_undef_warning_on_empty_str_rt106830.t
|
||||||
t/48_removeChild_crashes_rt_80395.t
|
t/48_removeChild_crashes_rt_80395.t
|
||||||
|
@ -204,12 +203,10 @@ test/relaxng/demo2.rng
|
||||||
test/relaxng/demo3.rng
|
test/relaxng/demo3.rng
|
||||||
test/relaxng/demo4.rng
|
test/relaxng/demo4.rng
|
||||||
test/relaxng/invaliddemo.xml
|
test/relaxng/invaliddemo.xml
|
||||||
test/relaxng/net.rng
|
|
||||||
test/relaxng/schema.rng
|
test/relaxng/schema.rng
|
||||||
test/schema/badschema.xsd
|
test/schema/badschema.xsd
|
||||||
test/schema/demo.xml
|
test/schema/demo.xml
|
||||||
test/schema/invaliddemo.xml
|
test/schema/invaliddemo.xml
|
||||||
test/schema/net.xsd
|
|
||||||
test/schema/schema.xsd
|
test/schema/schema.xsd
|
||||||
test/textReader/countries.xml
|
test/textReader/countries.xml
|
||||||
test/xinclude/entity.txt
|
test/xinclude/entity.txt
|
||||||
|
|
47
META.json
47
META.json
|
@ -1,10 +1,10 @@
|
||||||
{
|
{
|
||||||
"abstract" : "Interface to Gnome libxml2 xml parsing and DOM library",
|
"abstract" : "Interface to Gnome libxml2 xml parsing and DOM library",
|
||||||
"author" : [
|
"author" : [
|
||||||
"Petr Pajas <PAJAS@cpan.org>"
|
"Petr Pajas"
|
||||||
],
|
],
|
||||||
"dynamic_config" : 0,
|
"dynamic_config" : 1,
|
||||||
"generated_by" : "ExtUtils::MakeMaker version 7.60, CPAN::Meta::Converter version 2.150010",
|
"generated_by" : "ExtUtils::MakeMaker version 7.34, CPAN::Meta::Converter version 2.150010",
|
||||||
"keywords" : [
|
"keywords" : [
|
||||||
"dom",
|
"dom",
|
||||||
"html",
|
"html",
|
||||||
|
@ -33,8 +33,7 @@
|
||||||
"no_index" : {
|
"no_index" : {
|
||||||
"directory" : [
|
"directory" : [
|
||||||
"t",
|
"t",
|
||||||
"inc",
|
"inc"
|
||||||
"xt"
|
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"prereqs" : {
|
"prereqs" : {
|
||||||
|
@ -45,58 +44,32 @@
|
||||||
},
|
},
|
||||||
"configure" : {
|
"configure" : {
|
||||||
"requires" : {
|
"requires" : {
|
||||||
"Alien::Base::Wrapper" : "0",
|
|
||||||
"Alien::Libxml2" : "0.14",
|
|
||||||
"Config" : "0",
|
|
||||||
"ExtUtils::MakeMaker" : "0"
|
"ExtUtils::MakeMaker" : "0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"runtime" : {
|
"runtime" : {
|
||||||
"requires" : {
|
"requires" : {
|
||||||
"Carp" : "0",
|
"Test::More" : "0",
|
||||||
"DynaLoader" : "0",
|
|
||||||
"Encode" : "0",
|
|
||||||
"Exporter" : "5.57",
|
|
||||||
"IO::Handle" : "0",
|
|
||||||
"Scalar::Util" : "0",
|
|
||||||
"Tie::Hash" : "0",
|
|
||||||
"XML::NamespaceSupport" : "1.07",
|
"XML::NamespaceSupport" : "1.07",
|
||||||
"XML::SAX" : "0.11",
|
"XML::SAX" : "0.11",
|
||||||
"XML::SAX::Base" : "0",
|
"XML::SAX::Base" : "0",
|
||||||
"XML::SAX::DocumentLocator" : "0",
|
|
||||||
"XML::SAX::Exception" : "0",
|
"XML::SAX::Exception" : "0",
|
||||||
"base" : "0",
|
"base" : "0",
|
||||||
"constant" : "0",
|
|
||||||
"overload" : "0",
|
|
||||||
"parent" : "0",
|
"parent" : "0",
|
||||||
"perl" : "5.008001",
|
"perl" : "5.008",
|
||||||
"strict" : "0",
|
"strict" : "0",
|
||||||
"vars" : "0",
|
"vars" : "0",
|
||||||
"warnings" : "0"
|
"warnings" : "0"
|
||||||
}
|
}
|
||||||
},
|
|
||||||
"test" : {
|
|
||||||
"requires" : {
|
|
||||||
"Config" : "0",
|
|
||||||
"Errno" : "0",
|
|
||||||
"IO::File" : "0",
|
|
||||||
"IO::Handle" : "0",
|
|
||||||
"POSIX" : "0",
|
|
||||||
"Scalar::Util" : "0",
|
|
||||||
"Test::More" : "0",
|
|
||||||
"locale" : "0",
|
|
||||||
"utf8" : "0"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"release_status" : "stable",
|
"release_status" : "stable",
|
||||||
"resources" : {
|
"resources" : {
|
||||||
|
"homepage" : "https://github.com/shlomif/perl-XML-LibXML",
|
||||||
"repository" : {
|
"repository" : {
|
||||||
"type" : "git",
|
"url" : "https://github.com/shlomif/perl-XML-LibXML"
|
||||||
"url" : "https://github.com/shlomif/perl-XML-LibXML.git",
|
|
||||||
"web" : "https://github.com/shlomif/perl-XML-LibXML"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"version" : "2.0207",
|
"version" : "2.0134",
|
||||||
"x_serialization_backend" : "JSON::PP version 4.06"
|
"x_serialization_backend" : "JSON::PP version 2.97001"
|
||||||
}
|
}
|
||||||
|
|
37
META.yml
37
META.yml
|
@ -1,25 +1,13 @@
|
||||||
---
|
---
|
||||||
abstract: 'Interface to Gnome libxml2 xml parsing and DOM library'
|
abstract: 'Interface to Gnome libxml2 xml parsing and DOM library'
|
||||||
author:
|
author:
|
||||||
- 'Petr Pajas <PAJAS@cpan.org>'
|
- 'Petr Pajas'
|
||||||
build_requires:
|
build_requires:
|
||||||
Config: '0'
|
|
||||||
Errno: '0'
|
|
||||||
ExtUtils::MakeMaker: '0'
|
ExtUtils::MakeMaker: '0'
|
||||||
IO::File: '0'
|
|
||||||
IO::Handle: '0'
|
|
||||||
POSIX: '0'
|
|
||||||
Scalar::Util: '0'
|
|
||||||
Test::More: '0'
|
|
||||||
locale: '0'
|
|
||||||
utf8: '0'
|
|
||||||
configure_requires:
|
configure_requires:
|
||||||
Alien::Base::Wrapper: '0'
|
|
||||||
Alien::Libxml2: '0.14'
|
|
||||||
Config: '0'
|
|
||||||
ExtUtils::MakeMaker: '0'
|
ExtUtils::MakeMaker: '0'
|
||||||
dynamic_config: 0
|
dynamic_config: 1
|
||||||
generated_by: 'ExtUtils::MakeMaker version 7.60, CPAN::Meta::Converter version 2.150010'
|
generated_by: 'ExtUtils::MakeMaker version 7.34, CPAN::Meta::Converter version 2.150010'
|
||||||
keywords:
|
keywords:
|
||||||
- dom
|
- dom
|
||||||
- html
|
- html
|
||||||
|
@ -45,29 +33,20 @@ no_index:
|
||||||
directory:
|
directory:
|
||||||
- t
|
- t
|
||||||
- inc
|
- inc
|
||||||
- xt
|
|
||||||
requires:
|
requires:
|
||||||
Carp: '0'
|
Test::More: '0'
|
||||||
DynaLoader: '0'
|
|
||||||
Encode: '0'
|
|
||||||
Exporter: '5.57'
|
|
||||||
IO::Handle: '0'
|
|
||||||
Scalar::Util: '0'
|
|
||||||
Tie::Hash: '0'
|
|
||||||
XML::NamespaceSupport: '1.07'
|
XML::NamespaceSupport: '1.07'
|
||||||
XML::SAX: '0.11'
|
XML::SAX: '0.11'
|
||||||
XML::SAX::Base: '0'
|
XML::SAX::Base: '0'
|
||||||
XML::SAX::DocumentLocator: '0'
|
|
||||||
XML::SAX::Exception: '0'
|
XML::SAX::Exception: '0'
|
||||||
base: '0'
|
base: '0'
|
||||||
constant: '0'
|
|
||||||
overload: '0'
|
|
||||||
parent: '0'
|
parent: '0'
|
||||||
perl: '5.008001'
|
perl: '5.008'
|
||||||
strict: '0'
|
strict: '0'
|
||||||
vars: '0'
|
vars: '0'
|
||||||
warnings: '0'
|
warnings: '0'
|
||||||
resources:
|
resources:
|
||||||
repository: https://github.com/shlomif/perl-XML-LibXML.git
|
homepage: https://github.com/shlomif/perl-XML-LibXML
|
||||||
version: '2.0207'
|
repository: https://github.com/shlomif/perl-XML-LibXML
|
||||||
|
version: '2.0134'
|
||||||
x_serialization_backend: 'CPAN::Meta::YAML version 0.018'
|
x_serialization_backend: 'CPAN::Meta::YAML version 0.018'
|
||||||
|
|
|
@ -223,7 +223,7 @@ unless ( $is_Win32 ) { # cannot get config in W32
|
||||||
$libxml2_version = $1;
|
$libxml2_version = $1;
|
||||||
}
|
}
|
||||||
# 0 recommended by http://cpantest.grango.org (Notes for CPAN Authors)
|
# 0 recommended by http://cpantest.grango.org (Notes for CPAN Authors)
|
||||||
exit 1 if !$FORCE and $libxml2_version ne "2.9.4";
|
exit 0 if !$FORCE and $libxml2_version ne "2.9.4";
|
||||||
}
|
}
|
||||||
if ( $@ =~ /^UNTESTED (\S*)/ ) {
|
if ( $@ =~ /^UNTESTED (\S*)/ ) {
|
||||||
warn "Note: libxml2 $1 was not tested with this XML::LibXML version.\n"
|
warn "Note: libxml2 $1 was not tested with this XML::LibXML version.\n"
|
||||||
|
|
28
README
28
README
|
@ -3,8 +3,8 @@ INTRODUCTION
|
||||||
|
|
||||||
This module implements a Perl interface to the Gnome libxml2 library which
|
This module implements a Perl interface to the Gnome libxml2 library which
|
||||||
provides interfaces for parsing and manipulating XML files. This module allows
|
provides interfaces for parsing and manipulating XML files. This module allows
|
||||||
Perl programmers to make use of its highly capable validating XML parser and
|
Perl programmers to make use of the highly capable validating XML parser and
|
||||||
its high performance DOM implementation.
|
the high performance DOM implementation.
|
||||||
|
|
||||||
|
|
||||||
IMPORTANT NOTES
|
IMPORTANT NOTES
|
||||||
|
@ -104,8 +104,7 @@ Which version of libxml2 should be used?
|
||||||
XML::LibXML is tested against a couple versions of libxml2 before it is
|
XML::LibXML is tested against a couple versions of libxml2 before it is
|
||||||
released. Thus there are versions of libxml2 that are known not to work
|
released. Thus there are versions of libxml2 that are known not to work
|
||||||
properly with XML::LibXML. The Makefile.PL keeps a blacklist of the
|
properly with XML::LibXML. The Makefile.PL keeps a blacklist of the
|
||||||
incompatible libxml2 versions using Alien::Libxml2. The blacklist itself is
|
incompatible libxml2 versions.
|
||||||
kept inside its "alienfile" file.
|
|
||||||
|
|
||||||
If Makefile.PL detects one of the incompatible versions, it notifies the user.
|
If Makefile.PL detects one of the incompatible versions, it notifies the user.
|
||||||
It may still happen that XML::LibXML builds and pass its tests with such a
|
It may still happen that XML::LibXML builds and pass its tests with such a
|
||||||
|
@ -123,9 +122,6 @@ certain conditions. This is no reason to assume that it shall work without
|
||||||
problems. If Makefile.PL marks a version of libxml2 as incompatible or broken
|
problems. If Makefile.PL marks a version of libxml2 as incompatible or broken
|
||||||
it is done for a good reason.
|
it is done for a good reason.
|
||||||
|
|
||||||
Full linking information for libxml2 can be obtained by invoking "xml2-config
|
|
||||||
--libs".
|
|
||||||
|
|
||||||
|
|
||||||
Notes for Microsoft Windows
|
Notes for Microsoft Windows
|
||||||
===========================
|
===========================
|
||||||
|
@ -179,10 +175,10 @@ incompatible) versions of those DLLs.
|
||||||
Notes for Mac OS X
|
Notes for Mac OS X
|
||||||
==================
|
==================
|
||||||
|
|
||||||
Due to a refactoring of the module, XML::LibXML will not run with some earlier
|
Due refactoring the module, XML::LibXML will not run with some earlier versions
|
||||||
versions of Mac OS X. It appears that this is related to special linker options
|
of Mac OS X. It appears that this is related to special linker options for that
|
||||||
for that OS prior to version 10.2.2. Since the developers do not have full
|
OS prior to version 10.2.2. Since the developers do not have full access to
|
||||||
access to this OS, help/ patches from OS X gurus are highly appreciated.
|
this OS, help/ patches from OS X gurus are highly appreciated.
|
||||||
|
|
||||||
It is confirmed that XML::LibXML builds and runs without problems since Mac OS
|
It is confirmed that XML::LibXML builds and runs without problems since Mac OS
|
||||||
X 10.2.6.
|
X 10.2.6.
|
||||||
|
@ -232,12 +228,12 @@ Additionally I received the following Note from Rozi Kovesdi:
|
||||||
CONTACT
|
CONTACT
|
||||||
=======
|
=======
|
||||||
|
|
||||||
For bug reports, please use the issue tracker at
|
For bug reports, please use the CPAN request tracker on
|
||||||
https://github.com/shlomif/perl-XML-LibXML/issues .
|
http://rt.cpan.org/NoAuth/Bugs.html?Dist=XML-LibXML
|
||||||
|
|
||||||
For suggestions etc. you may contact the maintainer directly at
|
For suggestions etc. you may contact the maintainer directly at "pajas at ufal
|
||||||
https://www.shlomifish.org/me/contact-me/ , but in general, it is recommended
|
dot mff dot cuni dot cz", but in general, it is recommended to use the mailing
|
||||||
to use the mailing list given below.
|
list given below.
|
||||||
|
|
||||||
For suggestions etc., and other issues related to XML::LibXML you may use the
|
For suggestions etc., and other issues related to XML::LibXML you may use the
|
||||||
perl XML mailing list (perl-xml@listserv.ActiveState.com), where most
|
perl XML mailing list (perl-xml@listserv.ActiveState.com), where most
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
</authorgroup>
|
</authorgroup>
|
||||||
|
|
||||||
|
|
||||||
<edition>2.0207</edition>
|
<edition>2.0134</edition>
|
||||||
<copyright>
|
<copyright>
|
||||||
<year>2001-2007</year>
|
<year>2001-2007</year>
|
||||||
<holder>AxKit.com Ltd</holder>
|
<holder>AxKit.com Ltd</holder>
|
||||||
|
@ -45,8 +45,8 @@
|
||||||
<para>This module implements a Perl interface to the Gnome
|
<para>This module implements a Perl interface to the Gnome
|
||||||
libxml2 library which provides
|
libxml2 library which provides
|
||||||
interfaces for parsing and manipulating XML files. This
|
interfaces for parsing and manipulating XML files. This
|
||||||
module allows Perl programmers to make use of its highly
|
module allows Perl programmers to make use of the highly
|
||||||
capable validating XML parser and its high performance DOM
|
capable validating XML parser and the high performance DOM
|
||||||
implementation.</para>
|
implementation.</para>
|
||||||
|
|
||||||
<sect1>
|
<sect1>
|
||||||
|
@ -155,9 +155,7 @@ See Notes for Microsoft Windows below.)</para>
|
||||||
libxml2 before it is released. Thus there are versions
|
libxml2 before it is released. Thus there are versions
|
||||||
of libxml2 that are known not to work properly with
|
of libxml2 that are known not to work properly with
|
||||||
XML::LibXML. The Makefile.PL keeps a blacklist of
|
XML::LibXML. The Makefile.PL keeps a blacklist of
|
||||||
the incompatible libxml2 versions using Alien::Libxml2.
|
the incompatible libxml2 versions.</para>
|
||||||
The blacklist itself is kept inside its "alienfile"
|
|
||||||
file.</para>
|
|
||||||
|
|
||||||
<para>If Makefile.PL detects one of the incompatible versions,
|
<para>If Makefile.PL detects one of the incompatible versions,
|
||||||
it notifies the user. It may still happen that
|
it notifies the user. It may still happen that
|
||||||
|
@ -177,9 +175,6 @@ See Notes for Microsoft Windows below.)</para>
|
||||||
reason to assume that it shall work without problems.
|
reason to assume that it shall work without problems.
|
||||||
If Makefile.PL marks a version of libxml2 as incompatible or broken
|
If Makefile.PL marks a version of libxml2 as incompatible or broken
|
||||||
it is done for a good reason.</para>
|
it is done for a good reason.</para>
|
||||||
|
|
||||||
<para>Full linking information for libxml2 can be obtained
|
|
||||||
by invoking "xml2-config --libs".</para>
|
|
||||||
</sect2>
|
</sect2>
|
||||||
|
|
||||||
<sect2>
|
<sect2>
|
||||||
|
@ -228,14 +223,12 @@ See Notes for Microsoft Windows below.)</para>
|
||||||
<sect2>
|
<sect2>
|
||||||
<title>Notes for Mac OS X</title>
|
<title>Notes for Mac OS X</title>
|
||||||
|
|
||||||
<para>
|
<para>Due refactoring the module, XML::LibXML will not
|
||||||
Due to a refactoring of the module, XML::LibXML will
|
run with some earlier versions of Mac OS X. It appears that this is related
|
||||||
not run with some earlier versions of Mac OS X. It
|
to special linker options for that OS prior to version
|
||||||
appears that this is related to special linker options
|
10.2.2. Since the developers do not have full access to this OS,
|
||||||
for that OS prior to version 10.2.2. Since the
|
help/ patches from OS X gurus are highly
|
||||||
developers do not have full access to this OS, help/
|
appreciated.</para>
|
||||||
patches from OS X gurus are highly appreciated.
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>It is confirmed that XML::LibXML builds and runs
|
<para>It is confirmed that XML::LibXML builds and runs
|
||||||
without problems since Mac OS X 10.2.6.</para>
|
without problems since Mac OS X 10.2.6.</para>
|
||||||
|
@ -288,14 +281,9 @@ perl Makefile.PL LIBS='-L/path/to/lib' INC='-I/path/to/include'</programlisting>
|
||||||
<sect1>
|
<sect1>
|
||||||
<title>Contact</title>
|
<title>Contact</title>
|
||||||
|
|
||||||
<para>For bug reports, please use the issue tracker at
|
<para>For bug reports, please use the CPAN request tracker on http://rt.cpan.org/NoAuth/Bugs.html?Dist=XML-LibXML</para>
|
||||||
https://github.com/shlomif/perl-XML-LibXML/issues .</para>
|
|
||||||
|
|
||||||
<para>
|
<para>For suggestions etc. you may contact the maintainer directly at "pajas at ufal dot mff dot cuni dot cz", but in general, it is recommended to use the mailing list given below.
|
||||||
For suggestions etc. you may contact the maintainer directly at
|
|
||||||
https://www.shlomifish.org/me/contact-me/
|
|
||||||
, but in general, it is recommended to use the mailing
|
|
||||||
list given below.
|
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>For suggestions etc., and other issues
|
<para>For suggestions etc., and other issues
|
||||||
|
@ -393,9 +381,6 @@ EOT</programlisting>
|
||||||
unless stated otherwise, you only need to <literal>use XML::LibXML;</literal>
|
unless stated otherwise, you only need to <literal>use XML::LibXML;</literal>
|
||||||
in your programs.</para>
|
in your programs.</para>
|
||||||
|
|
||||||
<para>Check out <ulink url="http://grantm.github.io/perl-libxml-by-example/">XML::LibXML by Example</ulink>
|
|
||||||
for a tutorial.</para>
|
|
||||||
|
|
||||||
<para>For further information, please check the following documentation:</para>
|
<para>For further information, please check the following documentation:</para>
|
||||||
|
|
||||||
<variablelist>
|
<variablelist>
|
||||||
|
@ -1126,7 +1111,7 @@ $dom = $parser->load_xml(...);
|
||||||
</funcsynopsisinfo>
|
</funcsynopsisinfo>
|
||||||
</funcsynopsis>
|
</funcsynopsis>
|
||||||
<para>This function is available since XML::LibXML 1.70. It provides easy to use interface to the XML parser that parses
|
<para>This function is available since XML::LibXML 1.70. It provides easy to use interface to the XML parser that parses
|
||||||
given file (or non-HTTPS URL), string, or input stream
|
given file (or URL), string, or input stream
|
||||||
to a DOM tree. The arguments
|
to a DOM tree. The arguments
|
||||||
can be passed in a HASH reference
|
can be passed in a HASH reference
|
||||||
or as name => value pairs.
|
or as name => value pairs.
|
||||||
|
@ -1143,11 +1128,6 @@ $dom = $parser->load_xml(...);
|
||||||
and <xref linkend="parser-options"/>
|
and <xref linkend="parser-options"/>
|
||||||
for more information.
|
for more information.
|
||||||
</para>
|
</para>
|
||||||
<para>Note that, due to a limitation in the underlying libxml2
|
|
||||||
library, this call does not recognize HTTPS-based URLs. (It
|
|
||||||
will treat an HTTPS URL as a filename, likely throwing a "No such
|
|
||||||
file or directory" exception.)
|
|
||||||
</para>
|
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
|
@ -1274,11 +1254,10 @@ $dom = $parser->load_html(...);
|
||||||
</funcsynopsis>
|
</funcsynopsis>
|
||||||
|
|
||||||
<para>This function parses an XML document from a file or network;
|
<para>This function parses an XML document from a file or network;
|
||||||
$xmlfilename can be either a filename or a (non-HTTPS) URL.
|
$xmlfilename can be either a filename or an URL.
|
||||||
Note that for parsing files, this function is the fastest choice,
|
Note that for parsing files, this function is the fastest choice,
|
||||||
about 6-8 times faster then parse_fh().
|
about 6-8 times faster then parse_fh().
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|
||||||
|
@ -1325,7 +1304,7 @@ my $doc = $parser->parse_string(\$xmlstring, $baseuri);
|
||||||
</funcsynopsis>
|
</funcsynopsis>
|
||||||
|
|
||||||
<para>Similar to parse_file() but parses HTML (strict) documents;
|
<para>Similar to parse_file() but parses HTML (strict) documents;
|
||||||
$htmlfile can be filename or (non-HTTPS) URL.
|
$htmlfile can be filename or URL.
|
||||||
</para>
|
</para>
|
||||||
<para>An optional second argument can be
|
<para>An optional second argument can be
|
||||||
used to pass some options to the HTML
|
used to pass some options to the HTML
|
||||||
|
@ -3252,7 +3231,7 @@ my $dtd = $document->createInternalSubset( "foo", "-//FOO//DTD FOO 0.1//
|
||||||
</funcsynopsis>
|
</funcsynopsis>
|
||||||
|
|
||||||
<para>This will unbind the Child Node from its parent <function>$node</function>. The function returns the unbound node. If
|
<para>This will unbind the Child Node from its parent <function>$node</function>. The function returns the unbound node. If
|
||||||
<function>$childnode</function> is not a child of the given Node the function will fail.</para>
|
<function>oldNode</function> is not a child of the given Node the function will fail.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|
||||||
|
@ -5786,19 +5765,16 @@ $doc = XML::LibXML->new->parse_file($url);</programlisting>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<funcsynopsis>
|
<funcsynopsis>
|
||||||
<funcsynopsisinfo>$rngschema = XML::LibXML::RelaxNG->new( location => $filename_or_url, no_network => 1 );
|
<funcsynopsisinfo>$rngschema = XML::LibXML::RelaxNG->new( location => $filename_or_url );
|
||||||
$rngschema = XML::LibXML::RelaxNG->new( string => $xmlschemastring, no_network => 1 );
|
$rngschema = XML::LibXML::RelaxNG->new( string => $xmlschemastring );
|
||||||
$rngschema = XML::LibXML::RelaxNG->new( DOM => $doc, no_network => 1 );</funcsynopsisinfo>
|
$rngschema = XML::LibXML::RelaxNG->new( DOM => $doc );</funcsynopsisinfo>
|
||||||
</funcsynopsis>
|
</funcsynopsis>
|
||||||
|
|
||||||
<para>The constructor of XML::LibXML::RelaxNG needs to be called with list of parameters. At least location, string or DOM parameter is required to
|
<para>The constructor of XML::LibXML::RelaxNG may get called with either one of three parameters. The parameter tells the class from which
|
||||||
specify source of schema. Optional parameter no_network set to 1 cause that parser would not access network and optional parameter recover
|
source it should generate a validation schema. It is important, that each schema only have a single source.</para>
|
||||||
set 1 cause that parser would not call die() on errors.</para>
|
|
||||||
|
|
||||||
<para>It is important, that each schema only have a single source.</para>
|
|
||||||
|
|
||||||
<para>The location parameter allows one to parse a schema
|
<para>The location parameter allows one to parse a schema
|
||||||
from the filesystem or a (non-HTTPS) URL.</para>
|
from the filesystem or a URL.</para>
|
||||||
|
|
||||||
<para>The string parameter will parse the schema from the given XML string.</para>
|
<para>The string parameter will parse the schema from the given XML string.</para>
|
||||||
|
|
||||||
|
@ -5854,18 +5830,15 @@ $doc = XML::LibXML->new->parse_file($url);</programlisting>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<funcsynopsis>
|
<funcsynopsis>
|
||||||
<funcsynopsisinfo>$xmlschema = XML::LibXML::Schema->new( location => $filename_or_url, no_network => 1 );
|
<funcsynopsisinfo>$xmlschema = XML::LibXML::Schema->new( location => $filename_or_url );
|
||||||
$xmlschema = XML::LibXML::Schema->new( string => $xmlschemastring, no_network => 1 );</funcsynopsisinfo>
|
$xmlschema = XML::LibXML::Schema->new( string => $xmlschemastring );</funcsynopsisinfo>
|
||||||
</funcsynopsis>
|
</funcsynopsis>
|
||||||
|
|
||||||
<para>The constructor of XML::LibXML::Schema needs to be called with list of parameters. At least location or string parameter is required to
|
<para>The constructor of XML::LibXML::Schema may get called with either one of two parameters. The parameter tells the class from which
|
||||||
specify source of schema. Optional parameter no_network set to 1 cause that parser would not access network and optional parameter recover
|
source it should generate a validation schema. It is important, that each schema only have a single source.</para>
|
||||||
set 1 cause that parser would not call die() on errors.</para>
|
|
||||||
|
|
||||||
<para>It is important, that each schema only have a single source.</para>
|
|
||||||
|
|
||||||
<para>The location parameter allows one to parse a schema
|
<para>The location parameter allows one to parse a schema
|
||||||
from the filesystem or a (non-HTTPS) URL.</para>
|
from the filesystem or a URL.</para>
|
||||||
|
|
||||||
<para>The string parameter will parse the schema from the given XML string.</para>
|
<para>The string parameter will parse the schema from the given XML string.</para>
|
||||||
|
|
||||||
|
@ -6003,7 +5976,7 @@ my @nodes = $xc->findnodes('$A[work_area/street = $B]/name');
|
||||||
<term>registerVarLookupFunc</term>
|
<term>registerVarLookupFunc</term>
|
||||||
<listitem><funcsynopsis><funcsynopsisinfo>$xpc->registerVarLookupFunc($callback, $data)</funcsynopsisinfo></funcsynopsis>
|
<listitem><funcsynopsis><funcsynopsisinfo>$xpc->registerVarLookupFunc($callback, $data)</funcsynopsisinfo></funcsynopsis>
|
||||||
<para>Registers variable lookup function
|
<para>Registers variable lookup function
|
||||||
<literal>$callback</literal>. The registered function is
|
<literal>$prefix</literal>. The registered function is
|
||||||
executed by the XPath engine each time an XPath variable
|
executed by the XPath engine each time an XPath variable
|
||||||
is evaluated. It takes three arguments:
|
is evaluated. It takes three arguments:
|
||||||
<literal>$data</literal>, variable name, and variable
|
<literal>$data</literal>, variable name, and variable
|
||||||
|
@ -6334,7 +6307,7 @@ sub processNode {
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term>location</term>
|
<term>location</term>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>Read XML from a local file or (non-HTTPS) URL.</para>
|
<para>Read XML from a local file or URL.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
|
@ -6379,7 +6352,7 @@ sub processNode {
|
||||||
<term>RelaxNG => $rng_schema</term>
|
<term>RelaxNG => $rng_schema</term>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>can be used to pass either a <xref linkend="XML-LibXML-RelaxNG"/>
|
<para>can be used to pass either a <xref linkend="XML-LibXML-RelaxNG"/>
|
||||||
object or a filename or (non-HTTPS) URL of a RelaxNG schema to the
|
object or a filename or URL of a RelaxNG schema to the
|
||||||
constructor. The schema is then used to validate the
|
constructor. The schema is then used to validate the
|
||||||
document as it is processed.</para>
|
document as it is processed.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
@ -6388,7 +6361,7 @@ sub processNode {
|
||||||
<term>Schema => $xsd_schema</term>
|
<term>Schema => $xsd_schema</term>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>can be used to pass either a <xref linkend="XML-LibXML-Schema"/>
|
<para>can be used to pass either a <xref linkend="XML-LibXML-Schema"/>
|
||||||
object or a filename or (non-HTTPS) URL of a W3C XSD schema to the
|
object or a filename or URL of a W3C XSD schema to the
|
||||||
constructor. The schema is then used to validate the
|
constructor. The schema is then used to validate the
|
||||||
document as it is processed.</para>
|
document as it is processed.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
|
@ -1,601 +0,0 @@
|
||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
|
||||||
<!-- W3C Validator filename: E:/Web/WS-JBR/JBR-ALLENtrees.htm -->
|
|
||||||
<head>
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
|
||||||
<title>ALLEN Descendancies</title>
|
|
||||||
<link rel="stylesheet" href="JBRindex.css" type="text/css" />
|
|
||||||
<style type="text/css" media="screen,print"> </style>
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body>
|
|
||||||
<div id="PageContainer"> <!-- this container, used for every page, allows reference font size fine tuning etc.-->
|
|
||||||
|
|
||||||
<div class="pageHead">
|
|
||||||
<h1>The ALLEN Patrilineage Descendancies</h1>
|
|
||||||
<div class="navTop">
|
|
||||||
<ul>
|
|
||||||
<li><a href="mailto:john@johnbrobb.com">Email JBR</a></li>
|
|
||||||
<li><a href="index.html">JBRobb Home</a></li>
|
|
||||||
<li><a href="JBRdna.htm">About DNA Testing</a></li>
|
|
||||||
<li><a href="JBR-ALLEN.htm">The ALLEN Patrilineage Page</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- start pageRight -->
|
|
||||||
<div class="pageRightW66">
|
|
||||||
<h3 class="marginTop1" id="PostedDescendancies">Posted Patrilineage Pedigrees & Descendancies</h3>
|
|
||||||
<div class="surPedFont"> <!-- start surPed section -->
|
|
||||||
<p class="indented">
|
|
||||||
The following ancestral ALLEN descendancies have been contributed by researchers of this ALLEN patrilineage, and are generally substantiated with
|
|
||||||
evidence. Each descendancy begins with the earliest known male ancestor of a particular sublineange and continues down to the tested male descendant.
|
|
||||||
Since this DNA patrilineage project is focused on tested or testable male ALLENs, these descendancy trees have been pruned not only of daughters, but
|
|
||||||
also of male lines which are known to have gone extinct or “daughtered out”. However, in some instances complete reconstructed families of
|
|
||||||
the first generation or two will be included because of their broad-based genealogical interest; in such cases males known or presumed to have died
|
|
||||||
without children will be flagged “no known issue”, or “(NKI)”.</p>
|
|
||||||
|
|
||||||
<p class="indented">
|
|
||||||
The information provided for each male ALLEN should be sufficient in most cases to uniquely identify him in the USCensus and other readily available
|
|
||||||
sources. These data comprise (insofar as is known): date and place of birth, date and place of death, the name(s) of his wife (or wives) and the
|
|
||||||
date and place of marriage. Indefinite dates are always qualified as either approximate (“abt”, “bef”, “aft”, or
|
|
||||||
“by”) or merely estimated (“say”). Approximated dates imply supporting evidence which merely fails of complete accuracy, while
|
|
||||||
“say” dates are guesstimates based on typical patterns of the time, place, and social group. In some places, I have adjusted dates provided
|
|
||||||
by the sources to conform to these conventions, taking into consideration the accompanying evidence.</p>
|
|
||||||
|
|
||||||
<p class="indented">
|
|
||||||
The yDNA-tested male descendants are flagged below with their Project #s and the “handle” of the Principal Researcher, e.g.
|
|
||||||
<span class="clr-Descendant">Donald-05, Camilla-06</span>).</p>
|
|
||||||
|
|
||||||
<p class="indented">
|
|
||||||
Inferences about the placement of the distinctive yDNA mutations of project members have been interwoven with their descendancies, below, <span
|
|
||||||
class="clr-Mutation_sentence">in red</span>; please note, however, the careful qualifications where they appear. Most inferences drawn from DNA evidence
|
|
||||||
are probabilistic in nature and one needs to keep an open mind about alternative interpretations, just as one does with the genealogy itself.</p>
|
|
||||||
|
|
||||||
<!-- Some id= Descendant targets are placed above the actual D-xx text to better fill the screen window with relevant text -->
|
|
||||||
<p class="shim">invisible writing</p>
|
|
||||||
<h2>Early ALLENs—Possible Project Ancestors</h2>
|
|
||||||
<p class="shim">invisible writing</p>
|
|
||||||
<p class="surPedHeader">1-William of York County, Virginia, died about 1677</p>
|
|
||||||
<p class="sourcesparagraph">(<strong>Sources</strong>: <a href="JBR-ALLEN.htm#sourceHT">HT ALLEN</a>)</p>
|
|
||||||
<p>1--William Allen (- bef 12Nov1677 YorkCoVA) m. Judith</p>
|
|
||||||
<p>|--2-Hudson Allen [no known descendants]</p>
|
|
||||||
<p>|--2-William Allen [supposed to be father of William of New Kent … Albemarle Cos, below]</p>
|
|
||||||
<p class="shim">invisible writing</p>
|
|
||||||
|
|
||||||
<h2 id="Allen_Descendancies">Known ALLEN Project Sublineages</h2>
|
|
||||||
|
|
||||||
<p id="Robert1680" class="shim">invisible writing</p>
|
|
||||||
<p class="surPedHeader">1-Robert Allen of New Kent, Hanover, Goochland, and Henrico Counties, VA, born say 1680</p>
|
|
||||||
<p class="sourcesparagraph">(<strong>Sources</strong>: This Robert descendancy is the main focus of <a href="JBR-ALLEN.htm#sourceMILLER">MILLER</a>,
|
|
||||||
and except for the final generations connecting to the present, has been derived from MILLER by <a href="mailto:john@johnbrobb.com">John B. Robb</a>.
|
|
||||||
It should be noted, however, that Melba Allen of Mississippi has an entirely different reconstruction of the top of this Allen tree. <a
|
|
||||||
href="JBR-ALLEN.htm#A-08">Donna Bailey</a>, who is a descendant of this line through Robert->Robert->Josiah of South Carolina, has furnished additional
|
|
||||||
material for her more recent ancestors. </p>
|
|
||||||
|
|
||||||
<p>1-Robert Allen (say 1680 - abt 1756 HenricoCoVA)</p>
|
|
||||||
<p><span class="clr-Mutation_sentence">The mutation DYS447- probably appears early downstream of the patriarch Robert.</span></p>
|
|
||||||
<p>|--m1. say 1708 Elizabeth [WALKER?]</p>
|
|
||||||
<p>|--2-Robert Allen (say 1709 NewKentCoVA - abt 1783 CaswellCoNC)</p>
|
|
||||||
<p>| |--m1. Elizabeth [YOUNG??]</p>
|
|
||||||
<p>| |--3-Young Allen (by 1732 - 1774 WakeCoNC)</p>
|
|
||||||
<p>| | |--m. Martha [COLEMAN?]</p>
|
|
||||||
<p class="clr-Comment">| | | MILLER adds sons Robert & Drury citing Young’s will
|
|
||||||
but that document lists only the sons below;</p>
|
|
||||||
<p class="clr-Comment">| | | the bogus Drury was supposedly the progenitor of one of the IredellCoNC Allen families.</p>
|
|
||||||
<p>| | |--4-William Allen (say 1757 - after 1791)—no known issue</p>
|
|
||||||
<p>| | |--4-Coleman Allen (say 1760 - [GA?])—Colemans & other descendants turn up in GA</p>
|
|
||||||
<p>| | |--4-Robin Allen (say 1763 -)—no known issue</p>
|
|
||||||
<p>| | |--4-Young Allen (say 1766 -)—no known issue</p>
|
|
||||||
<p>| | |--4-Josiah Allen (say 1766 - 1823 AnsonCoNC)</p>
|
|
||||||
<p>| | | |--m. 1794 Nancy WHITE, GranvilleCoNC—Sons William, Joshua, Young, & Joseph</p>
|
|
||||||
<p>| | |--4-David Allen (abt 1771 -)—removed to AnsonCoNC; no known issue</p>
|
|
||||||
<p id="A-08">
|
|
||||||
| |--3-Josiah Allen (abt 1733 - 1781 EdgefieldCoSC)</p>
|
|
||||||
<p>| | |--m1. say 1757 _?_</p>
|
|
||||||
<p>| | |--4-James Allen (abt 1758 - 1826 MontgomeryCoAL)</p>
|
|
||||||
<p>| | | |--m1. _?_</p>
|
|
||||||
<p>| | | |--5-Lemuel Young Allen (abt 1797 EdgefieldCoSC - abt 1851 RuskCoTX)</p>
|
|
||||||
<p>| | | |--m2. Rebecca HUDSON</p>
|
|
||||||
<p>| | | |--5- ...who had sons James Jefferson, Alsey, Madison, and Josiah (all minors in 1826)</p>
|
|
||||||
<p>| | |--4-Robert Allen (abt 1760 - 1829 MontgomeryCoAL)</p>
|
|
||||||
<p>| | |--m. Nancy HAHM, in SC—Sons Dean, Wade Hampton, James, Robert, George</p>
|
|
||||||
<p>| | |--4-Josiah Allen (abt 1762 - 1796 EdgefieldCoSC)</p>
|
|
||||||
<p>| | |--m. Jennet—Sons William Winn, and Benjamin</p>
|
|
||||||
<p>| | |--4-Young Allen (abt 1764 - abt 1834 EdgefieldCoSC)</p>
|
|
||||||
<p>| | |--m. Susanna RICHARDSON— Son Aaron</p>
|
|
||||||
<p>| | |--4-Drury Allen (1777 EdgefieldCoSC - btw 26Apr1856 and 4Feb1857 ClarkeCoAL)</p>
|
|
||||||
<p>| | |--m1. abt 1799 [Margaret WAITE], EdgefieldCoSC</p>
|
|
||||||
<p>| | | |--5-Josiah Allen 1800 EdgefieldCoSC - 1891 JasperCoMS)</p>
|
|
||||||
<p>| | | | |--m. abt 1833 Elizabeth HOWELL, RankinCoMS</p>
|
|
||||||
<p>| | | |--5-Henry Allen abt 1801 EdgefieldCoSC - 1891 JasperCoMS)</p>
|
|
||||||
<p>| | | | |--m2. Sarah LATHAM</p>
|
|
||||||
<p>| | | |--5-Drury Allen 1806 EdgefieldCoSC - 1908 ErathCoTX)</p>
|
|
||||||
<p>| | | | |--m1. 1826 Elizabeth BUCKELEW, ClarkeCoAL</p>
|
|
||||||
<p>| | | | |--m2. 1841 Elizabeth (_?_) WOOD, ClarkeCoAL</p>
|
|
||||||
<p>| | | | |--6-George Washington Allen (1851 ClarkeCoAL - 1943 ErathCoTX)</p>
|
|
||||||
<p>| | | | | |--m. 1869 Sarah Elizabeth JORDAN, ClarkeCoAL</p>
|
|
||||||
<p>| | | | | |--7-Henry Hampton Allen (1874 ClarkeCoAL - 1964 HoodCoTX)</p>
|
|
||||||
<p>| | | | | | |--m. 1892 Ida Leona Batts</p>
|
|
||||||
<p>| | | | | | |--8-Boyd Earl Allen (1910 ErathCoTX - 1990 ErathCoTX)</p>
|
|
||||||
<p>| | | | | | | |--9-Danny Ray Allen
|
|
||||||
<span class="clr-Descendant">*** Donna-08 *** </span> <span class="clr-Mutation_sentence">(has the DYS447- mutation)</span></p>
|
|
||||||
<p>| | |--m2. 1821 Nanch/Fannie WEBB, ClarkeCoAL</p>
|
|
||||||
<p>| |--3-Robert Allen (abt 1735 - 1801 RichmondCoGA)</p>
|
|
||||||
<p class="clr-Comment">| | Robert settled initially with brother Josiah in old ColletonCoSC (now extinct)</p>
|
|
||||||
<p>| | |--m. abt 1760 Elizabeth WEST—Sons West, Jesse, Robert, Drury, Young, William</p>
|
|
||||||
<p class="clr-Comment">| | The wide gap between 3-Robert & 3-Drury suggests that there may have been 2 fathers Robert;</p>
|
|
||||||
<p class="clr-Comment">| | there is solid evidence at least that 3-Drury was the son of 2-Robert who died in CaswellCoNC..</p>
|
|
||||||
<p>| |--3-Drury Allen (1749 LunenburgCoVA - 1826 PikeCoGA)</p>
|
|
||||||
<p>| | |--m. Elizabeth YARBOROUGH</p>
|
|
||||||
<p>| | |--4-Josiah Allen (abt 1769 [ButeCoNC?] - abt 1816 GreeneCoGA)</p>
|
|
||||||
<p>| | | |--m. 1791 Elizabeth BROWNING—Sons Robert A., Young Drury, and Pleasant Josiah</p>
|
|
||||||
<p>| | |--4-Clement Allen (say 1773 - bef 1823 PikeCoGA</p>
|
|
||||||
<p>| | | |--m. Nancy McKISSICK—Sons Josiah, Young Stokes, John Cunningham, Drury, and James.</p>
|
|
||||||
<p>| | |--4-Stokes Allen (say 1775 - by 1831 PikeCoGA</p>
|
|
||||||
<p>| | | |--m. Susanna (GRAVES) FOUSHEE—Sons Clement Young, Thomas G., Stephen W., Young Drewry</p>
|
|
||||||
<p>| |--m2. by 1765 Hannah (EDWARDS) HUDSON</p>
|
|
||||||
<p>|--2-Benjamin Allen (twin) (1711 NewKentCoVA - aft 1766 [HenricoCoVA?])—no known issue</p>
|
|
||||||
<p>|--2-Joseph Allen (twin) (1711 NewKentCoVA - 1771 CharlotteCoVA)</p>
|
|
||||||
<p>| |--m. Sarah HUNT</p>
|
|
||||||
<p>| |--3-Memucan Hunt Allen (1753 - abt 1833 AndersonCoKY)—sons Joseph and Charles</p>
|
|
||||||
<p>| |--3-Memucan had brothers Benjamin, Robert, and Charles; the latter came with him to KY.</p>
|
|
||||||
<p>|--2-Drury Allen (1714 NewKentCoVA - abt 1803 PersonCoNC)</p>
|
|
||||||
<p>| |--m. Sarah TINSLEY</p>
|
|
||||||
<p>| |--3-David Allen (1746 LunenburgCoVA - 1828 PersonCoNC)</p>
|
|
||||||
<p>| | |--m. Catherine LANIER—sons Thomas, Drury, William</p>
|
|
||||||
<p>|--2-Richard Allen (say 1718 NewKentCoVA - aft 1772 [Henrico/HanoverCoVA])</p>
|
|
||||||
<p>| |--m. _?_ (no record of marriage); probably had son Drury who sold his HanoverCo land</p>
|
|
||||||
<p>|--2-William Allen (say 1721 NewKentCoVA - abt 1785 GranvilleCoNC)—married twice but left no sons</p>
|
|
||||||
<p>|--m2. aft 1734 Sarah [WINSTON??]</p>
|
|
||||||
<p class="shim">invisible writing</p>
|
|
||||||
|
|
||||||
<p id="William1725" class="shim">invisible writing</p>
|
|
||||||
<p id="A-09" class="surPedHeader">1-William Allen of Mecklenburg County, VA, born say 1725</p>
|
|
||||||
<p class="sourcesparagraph">(<strong>Sources</strong>: <a href="JBR-ALLEN.htm#A-04">Dr. Bob Allen</a>;
|
|
||||||
additions by <a href="mailto:john@johnbrobb.com">John B. Robb</a> based on <a href="JBR-ALLEN.htm#sourceMILLER">MILLER</a>,
|
|
||||||
<a href="JBR-ALLEN.htm#sourceCARPENTER-McKEE">CARPENTER/McKEE</a>,<br /> and the USCensus)</p>
|
|
||||||
<p>1-William Allen (say 1725 VA - 1789 MecklenburgCoVA)</p>
|
|
||||||
<p>|--m1. say 1750, _?_ WRAY</p>
|
|
||||||
<p>|--2-Turner Allen (abt 1751 - [LunenburgCoVA?]) m. Sally NESBITT</p>
|
|
||||||
<p>|--2-Drury Allen (abt 1753 - 1823 AnsonCoNC)</p>
|
|
||||||
<p>| |--m. abt 1772, Eleanor (“Nelly”) JARROTT</p>
|
|
||||||
<p>| |--3-Julius Allen (say 1773 - 1845 AnsonCoNC)</p>
|
|
||||||
<p>| | |--m. _?_ SMITH</p>
|
|
||||||
<p>| | |--4-Henderson Allen (1814 AnsonsCoNC - 1897 GA)---m. 1842 Sarah C. HAMMOND</p>
|
|
||||||
<p>| |--3-Thomas Allen (abt 1775 - 1858 FayetteCoTN</p>
|
|
||||||
<p>| | |--m1. _?_ SMITH</p>
|
|
||||||
<p>| | |--4-Jeremiah Allen (say 1808 AnsonCoNC - aft 1858)</p>
|
|
||||||
<p>| | |--4-Miles Allen (abt 1811 AnsonCoNC - abt 1843 [FayetteCoTN?])</p>
|
|
||||||
<p>| | | |--m. abt 1832 Eliza Ann MORRIS</p>
|
|
||||||
<p>| | | |--5-William Thomas Allen (1834 TN - abt 1859)</p>
|
|
||||||
<p>| | | | |--m. abt 1857 Rosanna HYATT</p>
|
|
||||||
<p>| | | | |--6-William Addison Allen (1858 AnsonCoNC - 1928 AnsonCoNC)</p>
|
|
||||||
<p>| | | | | |--m. 1878 Louisa Charlotte TOMLINSON</p>
|
|
||||||
<p>| | | | | |--7-William Addison Allen (1891 AnsonCoNC - 1955 AnsonCoNC)</p>
|
|
||||||
<p>| | | | | | |--8-Clinton Thomas Allen
|
|
||||||
<span class="clr-Descendant">*** Lynda-09 ***</span> <span class="clr-Mutation_sentence">(no mutations)</span></p>
|
|
||||||
<p id="A-04">
|
|
||||||
| | |--4-Edmond Allen (abt 1816 NC -)</p>
|
|
||||||
<p>| | | |--m. Rebecca SMITH b.AL)</p>
|
|
||||||
<p>| | |--m2. Nancy</p>
|
|
||||||
<p>| |--3-David Allen (abt 1780 VA - abt 1850 MarshallCoMS)</p>
|
|
||||||
<p>| | |--m1. Mary PARKER; m2. Elizabeth TURNER</p>
|
|
||||||
<p>| | |-?4-Claiborne Allen (abt 1815 NC - aft 1850 [MarshallCoMS?])</p>
|
|
||||||
<p>| |--3-Benjamin Allen (abt 1781 NC - 1878 SumterCoAL)</p>
|
|
||||||
<p>| | |--m. abt 1812 Huldah PARKER</p>
|
|
||||||
<p>| | |--4-Richmond Allen (1813 NC - 1889 SumterCoAL)---m. 1834 Sarah R. ALLEN</p>
|
|
||||||
<p>| | |--4-Wiley Allen (1815 NC - 1891 SumterCoAL)---m. Elvira Ann Tiras PONDS</p>
|
|
||||||
<p>| | | (removed to AL about 1840)</p>
|
|
||||||
<p>| | |--4-William Allen (abt 1817 NC - aft 1850 [ChoctawCoAL?])---m. Frances L.</p>
|
|
||||||
<p>| | |- 4-Enoch Allen (abt 1824 NC - 1896 Sumter/ChoctawCoAL?])---m. Jane S.</p>
|
|
||||||
<p>| | |- 4-Hampton Allen (1829 NC - 1903)---m. Susan Elizabeth BOWERS</p>
|
|
||||||
<p>| | |- 4-Robert Allen (abt 1834 NC - 1903)---m. Susan Elizabeth BOWERS</p>
|
|
||||||
<p>| | |- 4-Alexander Allen, a twin (abt 1837 NC - 1903)---m. Susan Elizabeth BOWERS</p>
|
|
||||||
<p>| | |- 4-Jeremiah Allen, a twin (abt 1837 NC -)---m. Molly SIMPSON (NKI)</p>
|
|
||||||
<p>| | |--4-other children: Jules, Dock (NKI), Norriss (NKI), Mary Ann, Harriet, Thomas (NKI)</p>
|
|
||||||
<p>| |--3-William Allen ( -)</p>
|
|
||||||
<p>| |--3-John Allen (abt 1792- 1857 AnsonCoNC)</p>
|
|
||||||
<p><span class="clr-Mutation_sentence">The mutation CDYb- first appears with John or one of his descendants.</span></p>
|
|
||||||
<p>| | |--m. abt 1812 Mary (“Polly”) ALLEN (a 1st cousin)</p>
|
|
||||||
<p>| | |--4-Drury Allen (abt 1825 NC - bef 1880 [AnsonCoNC?])</p>
|
|
||||||
<p>| | | |--m. Catharine Rowena BAUCOM</p>
|
|
||||||
<p>| | | |--5-William Henry Allen (abt 1851 AnsonCoNC - 1924 StanlyCoNC)</p>
|
|
||||||
<p>| | | | |--m. 1873 Ellen CURLEE</p>
|
|
||||||
<p>| | | | |--6-Robert Sidney Allen (1876 AnsonCoNC - 1953 LeeCoSC)</p>
|
|
||||||
<p>| | | | | |--m. 1903 Lilla Emile CRUMP</p>
|
|
||||||
<p>| | | | | |--7-Flake Shellum Allen (1918 AnsonCoNC - 1963 AnsonCoNC)</p>
|
|
||||||
<p>| | | | | | |--8-Robert Shepherd Allen
|
|
||||||
<span class="clr-Descendant">*** Dr.Bob-04 ***</span>
|
|
||||||
<span class="clr-Mutation_sentence">(has the CDYb- mutation)</span></p>
|
|
||||||
<p>|--2-William Allen (abt 1757 -)</p>
|
|
||||||
<p>|--2-John Allen (abt 1759 -) m. 1783, Nancy MORGAN</p>
|
|
||||||
<p>|--2-Darling Allen (abt 1760 - 1802 AnsonCoNC)</p>
|
|
||||||
<p>| |--m. 1793, Judith NANCE (Sons: Robert Nance b.1792, Darling)</p>
|
|
||||||
<p>|--2-Young Allen (abt 1764 - [LunenburgCoVA?]) m. Sarah POOLE</p>
|
|
||||||
<p>|--2-Pleasant Allen (abt 1766 -) m. 1787, Rebecca WATSON</p>
|
|
||||||
<p>|--2-Meredith Allen (say 1768 - 1829 HenryCoVA) m. 1788, Nancy COOPER</p>
|
|
||||||
<p>|--2-Gray Allen (abt 1770 -) m. 1791, Molly NANCE (Son: Gray)</p>
|
|
||||||
<p>|--m2. say 1775, Ann</p>
|
|
||||||
<p>|--2-Robert Allen (abt 1776 - [HenryCoVA?]) m. Celia MULLINS</p>
|
|
||||||
<p>|--2-Joseph Smith Allen (1779 MecklenburgCoVA - StCharlesCoMO)</p>
|
|
||||||
<p>| |--m1. 1807, Sarah WADE (Son William)</p>
|
|
||||||
<p>| |--m2. abt 1811, Rachel MAY (Sons: William M., Robert L., John Pines, Joseph J.)</p>
|
|
||||||
<p>|--2-Pines Allen (abt 1782 MecklenburgCoVA - MO)</p>
|
|
||||||
<p>| |--m1. 1807 HenryCoVA, Charlotte BAILEY (Sons: Robert B., Joseph J., John Parks, Charles C.</p>
|
|
||||||
<p>| |--m2. 1821 Nancy HUGHES (Sons: Pines Henderson b.1825 NC, William M. b.1832 MO</p>
|
|
||||||
<p class="shim">-</p>
|
|
||||||
|
|
||||||
<p id="Reynold1728" class="shim">invisible writing</p>
|
|
||||||
<p id="A-xx" class="surPedHeader">1-Reynold Allen of Granville, Johnston, Wake, and Iredell Cos NC, born say 1723</p>
|
|
||||||
<p class="sourcesparagraph">(<strong>Sources</strong>: <a href="JBR-ALLEN.htm#sourceMILLER">MILLER</a>
|
|
||||||
(mostly based on contributions by Sara C. Allen))</p>
|
|
||||||
|
|
||||||
<p>1-Reynold Allen (say 1723 - abt 1808 [IredellCoNC?])</p>
|
|
||||||
<p>|--m. say 1751, Mary</p>
|
|
||||||
<p>|--2-Young Allen (say 1756 NC - 1834 WakeCoNC)</p>
|
|
||||||
<p>| |--m. say 1779 Phebe PULLEN</p>
|
|
||||||
<p>| |--3-James Akin Allen (abt 1782 WakeCoNC - 1862 WakeCoNC)</p>
|
|
||||||
<p>| | |--m1. Mary WYNNE</p>
|
|
||||||
<p>| | |--4-William Gaston Allen (1810 NC - 1858) m. 1839 Martha B. SHIPP, WakeCoNC</p>
|
|
||||||
<p>| | |--4-Henry Young Allen (1824 NC -) 1850 Susan Ann OVERBY, GranvilleCoNC</p>
|
|
||||||
<p>| | |--4-Solomon J. Allen (abt 1831 - abt 1901)—no known issue</p>
|
|
||||||
<p>| | |--m2. 1849 Priscilla JACKSON</p>
|
|
||||||
<p>| |--3-John Allen (abt 1784 NC - [aft 1860 CarrollCoTN??]) m. 1808 Sarah HARRISON WakeCoNC</p>
|
|
||||||
<p>| | |--4-Moses Harrison Allen (1808-1886 NC) m. 1827 Lucy Williams Rhodes, WakeCoNC</p>
|
|
||||||
<p>| | |--4-Henry Anderson Allen (1814 - aft 1880 [WakeCoNC?]).</p>
|
|
||||||
<p>| | | |--m. 1837, Sarah Elizabeth ROGERS, WakeCoNC</p>
|
|
||||||
<p>| | |--4-Wyatt Marion Allen (1824 WakeCoNC - 1863 WakeCoNC)</p>
|
|
||||||
<p>| | | |--m. 1855 Martha Ann BAILEY, WakeCoNC</p>
|
|
||||||
<p>| |--3-Henry Allen (- abt 1841 WakeCoNC) m. 1831 Aley Sharpe Allen</p>
|
|
||||||
<p>| | |--4-James H. Allen (1815 NC -) m. 1838, Elizabeth C. SPAIN</p>
|
|
||||||
<p>| |--3-Miles Allen (- bef 1839 GibsonCoTN)</p>
|
|
||||||
<p>| | |--m. 1810 Jinsey ("Jane") BLEDSOE</p>
|
|
||||||
<p>| | |--4-Reynold Allen (1791 NC - abt 1879 WakeCoNC)</p>
|
|
||||||
<p>| | | |--m1. 1824 Betsy Ann HARRISON</p>
|
|
||||||
<p>| | | |--5-William Anderson Allen (1825 NC - 1884) m. 1849 Maria G. HICKS</p>
|
|
||||||
<p>| | | |--m2. 1836 Jane H. CANNON</p>
|
|
||||||
<p>| | | |--5-Charles Nickolas Allen (abt 1837 -) m. 1862 Caroline V. JOHNS WakeCoNC</p>
|
|
||||||
<p>| | | |--5-James Bascumb Allen (abt 1851 -)</p>
|
|
||||||
<p>| |--3-Young W. Allen (abt 1796 NC - aft 1880 [CarrollCoTN?] m. Ann ROGERS</p>
|
|
||||||
<p>|--2-Reynold Allen (say 1758 - abt 1812 IredellCoNC)</p>
|
|
||||||
<p>| |--3-William Moore Allen (abt 1784 NC - abt 1851 IredellCoNC)</p>
|
|
||||||
<p>| | |--4-Hinchea Allen m. 1835 Catherine LITTLE, LincolnCoNC</p>
|
|
||||||
<p>| | |--4-David Allen</p>
|
|
||||||
<p>| | |--4-Burrell Allen m. 1832 Rhoda L. HOKE, LincolnCoNC</p>
|
|
||||||
<p>| | |--4-John Allen</p>
|
|
||||||
<p>| | |--4-William Lee Allen</p>
|
|
||||||
<p>| | |--4-Augustus Allen</p>
|
|
||||||
<p>| |--3-David Allen (say 1786 -)</p>
|
|
||||||
<p>| |--3-Darling Allen (1788 IredellCoNC - 1867 WilkesCoNC) m. 1809 Susan WALLIS, WilkesCoNC</p>
|
|
||||||
<p>| | |--4-(1841 - 1843 IredellCoNC)—no known issue</p>
|
|
||||||
<p>| | |--4-William Wallace Allen (1827 IredellCoNC - abt 1863) m. Agnes MOORE</p>
|
|
||||||
<p>| | |--4-John Allen</p>
|
|
||||||
<p>| | |--4-Benton Carlton Allen (abt 1828 IredellCoNC -)</p>
|
|
||||||
<p>| |--3-John Haden Allen ()</p>
|
|
||||||
<p class="shim">-</p>
|
|
||||||
|
|
||||||
|
|
||||||
<p id="William1691" class="shim">invisible writing</p>
|
|
||||||
<p class="surPedHeader">1-William Allen of New Kent, Goochland, and Albemarle Counties, Virginia, born say 1691</p>
|
|
||||||
<p class="sourcesparagraph">(<strong>Sources</strong>: <a href="JBR-ALLEN.htm#A-03">Bill A. Allen</a>, <a href="JBR-ALLEN.htm#A-05">Donald
|
|
||||||
Allen</a>, <a href="JBR-ALLEN.htm#sourceWICKER">WICKER</a>. Project members Bill A., and Donald have researched their lines extensively and published
|
|
||||||
books on them which credibly link their TN ancestors to NC and VA respectively, and both books are full of anecdotal and background information which
|
|
||||||
brings their genealogy to life: see <a href="JBR-ALLEN.htm#sourceBill-A_ALLEN">Bill-A_ALLEN</a>, and <a href="JBR-ALLEN.htm#sourceDonald_ALLEN">Donald_ALLEN</a>)</p>
|
|
||||||
|
|
||||||
<p>1-William Allen (say 1691 - 1752 AlbemarleCoVA) </p>
|
|
||||||
<p>|--m1. abt 1712 Hannah [WATSON?]</p>
|
|
||||||
<p>|--2-Samuel Allen (1713 -)</p>
|
|
||||||
<p>| |--m. Martha ARCHER</p>
|
|
||||||
<p>|--m2. 1720 Mary (HUNT) MINGE</p>
|
|
||||||
<p>|--2-William Hunt Allen (1724 -1806 BuckinghamCoVA) m. Elizabeth</p>
|
|
||||||
<p id="A-03">
|
|
||||||
|--2-John Allen (1726 - 1754 AlbemarleCoVA)</p>
|
|
||||||
<p>| |--m. abt 1748 Betheniah Thomas NEVIL</p>
|
|
||||||
<p>| |--3-Samuel Allen (1747 - 1800 AmherstCoVA)</p>
|
|
||||||
<p>| | |--m. 1771 Hannah JOPLING</p>
|
|
||||||
<p>| | |--4-George Allen (1773 [AmherstCoVA?] - 1835 WhiteCo, later DekalbCoTN)</p>
|
|
||||||
<p>| | | |--m. 1798 Phebe WALKER, VA</p>
|
|
||||||
<p>| | | |--5-John W[alker?] Allen (abt 1800 [AmherstCoVA?] - aft 1870 [DeKalbCoTN?])</p>
|
|
||||||
<p>| | | | |--m. abt 1823 Lucy W. FLOWERS</p>
|
|
||||||
<p>| | | | |--6-George Allen (abt 1832 TN -)</p>
|
|
||||||
<p>| | | | |--6-William Allen (abt 1834 TN -)</p>
|
|
||||||
<p>| | | | |--6-John M. Allen (1843 SmithCoTN - 1902 WiseCoTN)</p>
|
|
||||||
<p>| | | | | |--m. 1876 Sarah Ann PELTON TarrantCoTX</p>
|
|
||||||
<p>| | | | | |--7-O'Guster ("Gus") Allen (1877 TarrantCoTN - 1959 OklahomaCityOK)</p>
|
|
||||||
<p>| | | | | | |--m. 1895 Frances Rosine JACKSON JackCoTX</p>
|
|
||||||
<p>| | | | | | |--8-John Elmer Allen (1907 OklahomaTerr - 1989 OklahomaCityOK)</p>
|
|
||||||
<p>| | | | | | | |--9-Donald Lee Allen
|
|
||||||
<span class="clr-Descendant">*** Donald-05 ***</span> </p>
|
|
||||||
<p>| | | |--5-John W. had possible brothers Jesse, Samuel, William D, and George H</p>
|
|
||||||
<p>| | |--4-Jesse Allen (1777 [AmherstCoVA?] - 1857 DekalbCoTN)</p>
|
|
||||||
<p>| | | |--m. Nancy WALKER va</p>
|
|
||||||
<p>| | |--4-Samuel Hunt Allen (abt 1785 AmherstCoVA? - abt 1831)</p>
|
|
||||||
<p>| | | |--m. by 1810 Polly WALKER VA</p>
|
|
||||||
<p>| | |--4-John Allen (abt 1786 AmherstCoVA? - 1854)</p>
|
|
||||||
<p>| |--3-Jesse Allen (abt 1748 - abt 1781 BuckinghamCoVA)</p>
|
|
||||||
<p>|--2-Valentine Allen (1730 - 1797 RockinghamCoNC) m. Nancy Ann ARNOLD</p>
|
|
||||||
<p><span class="clr-Mutation_sentence">The mutation DYS449+ first appears with Valentine or one of his descendants.</span></p>
|
|
||||||
<p>| |--m. 1753 Nancy Ann ARNOLD CumberlandCoVA</p>
|
|
||||||
<p>| |--3-William Hunt Allen (by 1755 - abt 1822 BedfordCoTN)</p>
|
|
||||||
<p>| | |--m. 1777 Agatha SCALES RockinghamCoNC</p>
|
|
||||||
<p>| | |--4-George Hunt Allen (1780 RockinghamCoNC - 1874 MarshallCoTN)</p>
|
|
||||||
<p>| | | |--m. 1804 Mary OGILVIE DavidsonCoTN</p>
|
|
||||||
<p>| | | |--5-Grant Iverson Allen (1805 WilliamsonCoTN - 1891 MarshallCoTN)</p>
|
|
||||||
<p>| | | | |--m. 1830 Nancy Elizabeth ALLEN WilliamsonCoTN</p>
|
|
||||||
<p>| | | | |
|
|
||||||
--6-Thomas Alexander Allen (1837 MarshallCoTN - 1917 MarshallCoTN)</p>
|
|
||||||
<p>| | | | | |
|
|
||||||
---m. 1867 Mary Fredonia Jane Ewing WilliamsonCoTN</p>
|
|
||||||
<p>| | | | | |
|
|
||||||
--7-William Harris Allen (1876 MarshallCoTN - 1942 MarshallCoTN)</p>
|
|
||||||
<p>| | | | | | |
|
|
||||||
---m. 1909 Ruth Hunter WilliamsonCoTN</p>
|
|
||||||
<p>| | | | | | |
|
|
||||||
--8-Thomas Hunter Allen (1912 MarshallCoTN - 1972 MarshallCoTN)</p>
|
|
||||||
<p>| | | | | | | |
|
|
||||||
--9-William Alfred Allen <span class="clr-Descendant">*** Bill-A-03 ***</span>
|
|
||||||
<span class="clr-Mutation_sentence">(has the DYS449+ mutation)</span></p>
|
|
||||||
<p>| |--3-George Allen (abt 1774 - 1854 MarshallCoTN) m. Annie Eliza PATRICK</p>
|
|
||||||
<p>|--2-George Hunt Allen (1734 - 1778) m. Mary BALLARD</p>
|
|
||||||
<p>|--2-Phillip Allen (1740 - 1763)</p>
|
|
||||||
<p class="shim">-</p>
|
|
||||||
|
|
||||||
<p id="A-01" class="shim">invisible writing</p>
|
|
||||||
<p class="surPedHeader">1-James T Allen of Bastrop, and Wise County, TX, born 1832</p>
|
|
||||||
<p class="sourcesparagraph">(<strong>Sources</strong>: <a href="JBR-ALLEN.htm#A-01">Bill Bernard Allen</a>,
|
|
||||||
<a href="JBR-ALLEN.htm#A-12">Fletcher Thomason</a>)</p>
|
|
||||||
<p><span class="clr-Mutation_sentence">The mutation DYS449+ occurs either downstream or within a few generations upstream of James T. Allen.</span></p>
|
|
||||||
<p>1-James T. Allen (1832 TN - 1900 WiseCoTX)</p>
|
|
||||||
<p>|--m. say 1755, Sarah ("Sallie") C. MILLER</p>
|
|
||||||
<p>|--2-Henry Clay Allen (1857 EllisCoTX - 1946 PhoenixAZ)</p>
|
|
||||||
<p>| |--m1. abt 1878 Edna Eliza TIMMONS</p>
|
|
||||||
<p>| |--3-William Louis Allen (1879 WiseCoTX - 1966 MercerCoIL)</p>
|
|
||||||
<p>| | |--m. abt 1910 Maude SWARTOUT</p>
|
|
||||||
<p>| | |--4-James Elwood Allen (1927 MercerCoIL - 2008 RockIslandCoIL)</p>
|
|
||||||
<p>| | | |--m. Violet Irene GEORGE</p>
|
|
||||||
<p>| | | |--5-William Bernard Allen (1949 -)</p>
|
|
||||||
<p>| | | | |
|
|
||||||
--6-William Bernard Allen (1971) <span class="clr-Descendant">*** Bill-B-01 ***</span>
|
|
||||||
<span class="clr-Mutation_sentence">(has the DYS449+ mutation)</span></p>
|
|
||||||
<p>| |--m2. 1881 Molly Eugenia Brazziel (Children: Tom, James, Etta Anna)</p>
|
|
||||||
<p>|--2-Frank Marion Allen (1866 - )</p>
|
|
||||||
<p>|--m1. abt 1895 Loucille LYNCH</p>
|
|
||||||
<p>| |--3-Tincy boy Kenneth Allen (1912 CottleCoTX - 1992 WiseCoTX)</p>
|
|
||||||
<p>| | |--m. Dovie Elizabeth BARTON</p>
|
|
||||||
<p>| | |--4-Lee Roy Allen (1942 TarrantCoTX -) <span class="clr-Descendant">*** Fletcher-12 ***</span></p>
|
|
||||||
<p id="A-14" class="shim">invisible writing</p>
|
|
||||||
<p class="surPedHeader">1-Charles Henry Francis Marion Allen of Georgia, and Cherokee County, Alabama, born abt 1826</p>
|
|
||||||
<p class="sourcesparagraph">(<strong>Sources</strong>: Winston Allen, and <a href="mailto:john@johnbrobb.com">John B. Robb</a>)</p>
|
|
||||||
<p><span class="clr-Mutation_sentence">The mutation DYS447- occurs either downstream or within a few generations upstream of Charles Henry Allen.</span></p>
|
|
||||||
|
|
||||||
<p>1-Charles Henry Francis Marion Allen (abt 1825 GA - bef 1900 [AL?]) </p>
|
|
||||||
<p>|--m. abt 1846 Francis [TOWERS?]</p>
|
|
||||||
<p>|--2-James T. Allen (abt 1849 AL -)</p>
|
|
||||||
<p>|--2-A[sa] Benjamin R. Allen (1861 AL - bef 1910 [LamarCoTX?])</p>
|
|
||||||
<p>| |--m. abt 1884 Martha Lou CHISENHALL</p>
|
|
||||||
<p>| |--3-James Lawrence Allen (1891 LamarCoTX -)</p>
|
|
||||||
<p>| | |--m. Essie Velma RATLIFF</p>
|
|
||||||
<p>| | |--4-Winston Allen
|
|
||||||
<span class="clr-Descendant">*** Winston-14 ***</span>
|
|
||||||
<span class="clr-Mutation_sentence">(has the DYS447- mutation)</span>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p id="A-07" class="shim">invisible writing</p>
|
|
||||||
<p class="surPedHeader">1-Joseph Allen of Elbert County, Georgia, born abt 1760</p>
|
|
||||||
<p class="sourcesparagraph">(<strong>Sources</strong>: <a href="JBR-ALLEN.htm#A-07">LouDean Mayes</a>)</p>
|
|
||||||
<p><span class="clr-Mutation_sentence">The mutation DYS447- occurs upstream of the patriarch, Joseph, of this sublineage.</span></p>
|
|
||||||
<p><span class="clr-Mutation_sentence">The mutations DYS570- & 464- occur probably downstream of Joseph.</span></p>
|
|
||||||
|
|
||||||
<p>1-Joseph Allen (say 1760 GA - 1833 ElbertCoGA) </p>
|
|
||||||
<p>|--m. bef 1790 Agnes PATTERSON</p>
|
|
||||||
<p>|--2-James Allen (1808 ElbertCoGA - 1880 HartCoGA)</p>
|
|
||||||
<p>| |--m. 1837 Mary A. HAYNES, ElbertCoGA</p>
|
|
||||||
<p>| |--3-James Monroe Allen (1846 ElbertCoGA - 1921 AndersonCoSC)</p>
|
|
||||||
<p>| | |--m. 1867 Mary Elizabeth Frances SANDERS, HartCoGA</p>
|
|
||||||
<p>| | |--4-James Henry Edward Allen (1869 HartCoGA - 1943 HartCoGA)</p>
|
|
||||||
<p>| | |--m. 1910 Mary Lula OWENS, HartCoGA </p>
|
|
||||||
<p>| | | |--5-Ira Wilson Allen 1914 HartCoGA - 1976 HartCoGA)</p>
|
|
||||||
<p>| | | | |--6-Ira Wilson Allen, Jr
|
|
||||||
<span class="clr-Descendant">*** LouDean-07 ***</span>
|
|
||||||
<span class="clr-Mutation_sentence">(has the DYS447- mutation, also 570- and 464-)</span></p>
|
|
||||||
<p id="A-10" class="shim">invisible writing</p>
|
|
||||||
<p class="surPedHeader">1-Russell Allen of Franklin County, AL, born abt 1828 in GA</p>
|
|
||||||
<p class="sourcesparagraph">(<strong>Sources</strong>: <a href="JBR-ALLEN.htm#A-10">Owen Allen</a>)</p>
|
|
||||||
<p><span class="clr-Mutation_sentence">The mutation CDYb- occurs either downstream or within a few generations upstream of Russell. </span></p>
|
|
||||||
<p>1-Russell Allen (abt 1828 GA - bef 1880 [FranklinCoAL?])</p>
|
|
||||||
<p>|--m. abt 1849 Millie</p>
|
|
||||||
<p>|--2-Peter Allen (abt 1857 - bef 1920)</p>
|
|
||||||
<p>| |--m. abt 1880, Savannah</p>
|
|
||||||
<p>| |--3-Morrison Allen (1881 AL - 1976)</p>
|
|
||||||
<p>| | |--m. Lula Elizabeth WHITE</p>
|
|
||||||
<p>| | |--4-Owen Tillman Allen (1909 ColbertCoAL - 1958)</p>
|
|
||||||
<p>| | | |--5-Owen Allen <span class="clr-Descendant">*** Owen-10 ***</span>
|
|
||||||
<span class="clr-Mutation_sentence">(has the CDYb- mutation)</span></p>
|
|
||||||
<p class="shim">-</p>
|
|
||||||
|
|
||||||
<p id="A-06" class="shim">invisible writing</p>
|
|
||||||
<p class="surPedHeader">1-James Allen of Gonzales County, TX, born 1814 in NC</p>
|
|
||||||
<p class="sourcesparagraph">(<strong>Sources</strong>: <a href="JBR-ALLEN.htm#A-06">Camilla Mitchell</a>)</p>
|
|
||||||
<p>1-James Allen (1814 NC - 1868 GonzalesCoTX)</p>
|
|
||||||
<p>|--m1. 1835 Camilla Catherine Tores LILLY [MontgomeryCoNC?])</p>
|
|
||||||
<p>|--2-James Robberson Allen (1841 - 1842)</p>
|
|
||||||
<p>|--2-Robbert Alexander Allen (1843 - 1863 MadisonParishLA)—no known issue</p>
|
|
||||||
<p>|--m2. 1852 Mary Ann Key, MaconCoAL</p>
|
|
||||||
<p>|--2-Henry Clarence Allen (1852 AL -)</p>
|
|
||||||
<p>|--2-Augustus Key Allen (1858 -)</p>
|
|
||||||
<p>|--2-Marion Jackson Allen (1861 -)</p>
|
|
||||||
<p>|--2-Thomas Jefferson Allen (1865 GonzalesCoTX - 1926 SanAntonioTX)</p>
|
|
||||||
<p>| |--m. 1898 Lillie Louisa BEACH, ElPasoTX</p>
|
|
||||||
<p>| |--3-Marion Thomas Allen (1905 DimmitCoTX - 1986)</p>
|
|
||||||
<p>| | |--4-William Douglas Allen <span class="clr-Descendant">*** Camilla-06 ***</span>
|
|
||||||
<span class="clr-Mutation_sentence">(no mutations—is the project RPH)</span></p>
|
|
||||||
<p class="shim">-</p>
|
|
||||||
|
|
||||||
<p id="A-11" class="shim">invisible writing</p>
|
|
||||||
<p class="surPedHeader">1-Robert N. Nesbitt of Hunt County, TX, born 1831 in TN</p>
|
|
||||||
<p class="sourcesparagraph">(<strong>Sources</strong>: <a href="JBR-ALLEN.htm#A-11">Geoff Nesbitt</a>)</p>
|
|
||||||
<p>1-Robert N. Nesbitt (1831 TN - aft 1910)</p>
|
|
||||||
<p>|--m. abt 1854 Martha E. SHEPARD</p>
|
|
||||||
<p>|--2-William Allen Nesbitt (1860 TX - 1937)</p>
|
|
||||||
<p>| |--m. 1862 Caddie VANNERSON, HopkinsCoTX</p>
|
|
||||||
<p>| |--3-Robert Allen Nesbitt (1889 TX - 1934)</p>
|
|
||||||
<p>| | |--m. Robbie RIKE</p>
|
|
||||||
<p>| | |--4-Robert Allen Nesbitt, Jr. (1914 AdaOK - 1988 GalvestonTX)</p>
|
|
||||||
<p>| | | |--5-Geoffrey Robert Nesbitt
|
|
||||||
<span class="clr-Descendant">*** Geoff-11 ***</span>
|
|
||||||
<span class="clr-Mutation_sentence">(no mutations)</span></p>
|
|
||||||
<p class="shim">-</p>
|
|
||||||
|
|
||||||
<p id="A-13" class="shim">invisible writing</p>
|
|
||||||
<p class="surPedHeader">1-Frank Harris of Marion County, Alabama, born say 1850</p>
|
|
||||||
<p class="sourcesparagraph">(<strong>Sources</strong>: <a href="JBR-ALLEN.htm#A-13">Sandra Hunt</a>)</p>
|
|
||||||
<p><span class="clr-Mutation_sentence">The mutation CDYB+ occurs either downstream or within a few generations upstream of Frank Harris. </span></p>
|
|
||||||
<p>1-Frank Harris (say 1850 AL - 1900 MarionCoAL)</p>
|
|
||||||
<p>|--m. abt 1875 Lucy M. [PATE?]</p>
|
|
||||||
<p>|--2-William Earl Harris (1883 AL - 1972)</p>
|
|
||||||
<p>| |--m1. abt 1903 Neety PALMER</p>
|
|
||||||
<p>| |--3-Willie Dalton Harris (abt 1904 MarionCoAL - 1992)</p>
|
|
||||||
<p>| | |--4-Hugh E. Harris
|
|
||||||
<span class="clr-Descendant">*** Sandra-13 ***</span>
|
|
||||||
<span class="clr-Mutation_sentence">(has the CDYb+ mutation)</span></p>
|
|
||||||
<p>| |--m2. abt 1909 Artie TICE</p>
|
|
||||||
|
|
||||||
<p id="A-02" class="shim">invisible writing</p>
|
|
||||||
<p class="surPedHeader">1-Gideon A. Allen of Twiggs Co GA, and Bossier Parish Louisiana, born 1804 in NC</p>
|
|
||||||
<p class="sourcesparagraph">(<strong>Sources</strong>: <a href="JBR-ALLEN.htm#A-02">Cary Allen</a>, whose <a
|
|
||||||
href="http://www.allensofmarietta.com/">web page</a> has more on his Allen line)</p>
|
|
||||||
|
|
||||||
<p><span class="clr-Mutation_sentence">The mutation 464- occurs either downstream or within a few generations upstream of Gideon. </span></p>
|
|
||||||
<p>1-Gideon A. Allen (1804 NC - 1875 BossierParLA)</p>
|
|
||||||
<p>|--m. 1828 Mary Ann HORN, TwiggsCoGA</p>
|
|
||||||
<p>|--2-John G. Allen (1835 TwiggsCoGA - 1906 BossierParLA)</p>
|
|
||||||
<p>| |--m. 1854 Emily L. SPURLIN, BossierParLA</p>
|
|
||||||
<p>| |--3-John Claud Allen (1869 BossierParLA - 1927 BossierParLA)</p>
|
|
||||||
<p>| | |--m. 1896 Mary Louwellen ALLEN</p>
|
|
||||||
<p>| | |--4-Claud Tarkington Allen (1900 BossierParLA - 1990 GreenvilleCoSC)</p>
|
|
||||||
<p>| | | |--m. 1921 Iona Olive ARNOLD, CaddoParLA</p>
|
|
||||||
<p>| | | |--5-John Clyde Allen (1931 BossierParLA - 2003)</p>
|
|
||||||
<p>| | | | |--6-Cary Neal Allen
|
|
||||||
<span class="clr-Descendant">*** Cary-02 ***</span>
|
|
||||||
<span class="clr-Mutation_sentence">(has a 464- mutation, to 11-13-14-15)</span></p>
|
|
||||||
|
|
||||||
<p class="marginBotLots"> </p>
|
|
||||||
</div> <!-- end surPed section -->
|
|
||||||
</div> <!--end pageRight -->
|
|
||||||
|
|
||||||
<!-- start pageLeft -->
|
|
||||||
<div class="pageLeftW30">
|
|
||||||
<p class="shim">-</p> <!-- invisible writing to trick Firefox & Netscape into not drawing navLeft box too high -->
|
|
||||||
<div class="navLeft">
|
|
||||||
<div class="navLeftLinksLoose">
|
|
||||||
<h3>ALLEN Patriarchs</h3>
|
|
||||||
<p class="multiline-entry"> <a href="#A-14">Charles Henry F. M.(abt 1825 - bef 1910)</a>
|
|
||||||
<br /> GA, Cherokee Co AL
|
|
||||||
<br /> m. Francis [TOWERS?]
|
|
||||||
<br /> <strong>Descendants</strong>:<a href="JBR-ALLEN.htm#A-14">Winston</a>—<a href="#A-14">A-14</a></p>
|
|
||||||
<p class="multiline-entry"> <a href="#A-02">Gideon (1804 - 1875)</a>
|
|
||||||
<br /> NC, Twiggs Co GA, & Bossier Parish LA
|
|
||||||
<br /> m. Mary Ann HORN
|
|
||||||
<br /> <strong>Descendants</strong>:<a href="JBR-ALLEN.htm#A-02">Cary</a>—<a href="#A-02">A-02</a></p>
|
|
||||||
<p class="multiline-entry"> <a href="#A-06">James (1814 - 1868)</a>
|
|
||||||
<br /> Montgomery Co NC, Gonzales Co TX
|
|
||||||
<br /> m1. Camilla Catherine Tores Lilly
|
|
||||||
<br /> m2. Mary Ann KEY
|
|
||||||
<br /> <strong>Descendants</strong>:<a href="JBR-ALLEN.htm#A-06">Camilla</a>—<a href="#A-06">A-06</a></p>
|
|
||||||
<p class="multiline-entry"> <a href="#A-01">James T (abt 1832 - 1900)</a>
|
|
||||||
<br /> Wise Co TX
|
|
||||||
<br /> m. Sarah ("Sallie") C. Miller
|
|
||||||
<br /> <strong>Descendants</strong>:
|
|
||||||
<a href="JBR-ALLEN.htm#A-01">Bill-B</a>—<a href="#A-01">A-01</a>,
|
|
||||||
<a href="JBR-ALLEN.htm#A-12">Fletcher</a>—<a href="#A-01">A-12</a></p>
|
|
||||||
<p class="multiline-entry"> <a href="#A-07">Joseph (say 1760 - 1833)</a>
|
|
||||||
<br /> ElbertCoGA
|
|
||||||
<br /> m. Agnes PATTERSON
|
|
||||||
<br /> <strong>Descendants</strong>:<a href="JBR-ALLEN.htm#A-07">LouDean</a>—<a href="#A-07">A-07</a></p>
|
|
||||||
<p class="multiline-entry"> <a href="#Reynold1728">Reynold (say 1728 - abt 1808)</a>
|
|
||||||
<br /> Granville, Johnston, Wake, and Iredell Cos NC
|
|
||||||
<br /> m. Mary</p>
|
|
||||||
<p class="multiline-entry"> <a href="#Robert1680">Robert (say 1680 - abt 1756)</a>
|
|
||||||
<br /> NewKent, Goochland, ;& Henrico Cos VA
|
|
||||||
<br /> m1. Elizabeth [WALKER?]
|
|
||||||
<br /> m2. Sarah [Winston??]
|
|
||||||
<br /> <strong>Descendants</strong>:<a href="JBR-ALLEN.htm#A-08">Donna</a>—<a href="#A-08">A-08</a></p>
|
|
||||||
<p class="multiline-entry"> <a href="#A-10">Russell (abt 1828 - bef 1880)</a>
|
|
||||||
<br /> Forsyth Co GA, & Franklin Co AL
|
|
||||||
<br /> m. Millie
|
|
||||||
<br /> <strong>Descendants</strong>:<a href="JBR-ALLEN.htm#A-10">Owen</a>—<a href="#A-10">A-10</a></p>
|
|
||||||
<p class="multiline-entry"> <a href="#William1691">William (say 1691 - 1752)</a>
|
|
||||||
<br /> NewKent, Goochland, & Albemarle Cos VA
|
|
||||||
<br /> m1. Hannah [Watson?]
|
|
||||||
<br /> m2. Mary (Hunt) Minge
|
|
||||||
<br /> <strong>Descendants</strong>:
|
|
||||||
<a href="JBR-ALLEN.htm#A-03">Bill-A</a>—<a href="#A-03">A-03</a>,
|
|
||||||
<a href="JBR-ALLEN.htm#A-05">Donald</a>—<a href="#William1691">A-05</a></p>
|
|
||||||
<p class="marginBot1">
|
|
||||||
<a href="#William1725">William (say 1725 - 1789)</a>
|
|
||||||
<br /> Mecklenburg Co VA
|
|
||||||
<br /> m. _?_ Wray
|
|
||||||
<br /> <strong>Descendants</strong>:
|
|
||||||
<a href="JBR-ALLEN.htm#A-04">Dr.Bob</a>—<a href="#A-04">A-04</a>,
|
|
||||||
<a href="JBR-ALLEN.htm#A-09">Lynda</a>—<a href="#William1725">A-09</a></p>
|
|
||||||
</div>
|
|
||||||
<div class="navLeftLinksLoose">
|
|
||||||
<h3>Other Surname Patriarchs</h3>
|
|
||||||
<p class="multiline-entry"> <a href="#A-13">Frank HARRIS (say 1850 - 1900)</a>
|
|
||||||
<br /> Marion Co AL
|
|
||||||
<br /> m1. Lucy M. [PATE?]
|
|
||||||
<br /> <strong>Descendants</strong>:<a href="JBR-ALLEN.htm#A-13">Sandra</a>—<a href="#A-13">A-13</a></p>
|
|
||||||
<p class="multiline-entry"> <a href="#A-11">Robert N. NESBITT (1831 - aft 1910)</a>
|
|
||||||
<br /> TN, then Upshur, Hopkins, & Hunt Cos TX
|
|
||||||
<br /> m. Martha E. Shepard
|
|
||||||
<br /> <strong>Descendants</strong>:<a href="JBR-ALLEN.htm#A-11">Geoff</a>—<a href="#A-11">A-11</a></p>
|
|
||||||
</div>
|
|
||||||
</div> <!--end navLeft -->
|
|
||||||
|
|
||||||
<div class="pageLeftRest">
|
|
||||||
|
|
||||||
<h5 class="bold italic">Navigating from here</h5>
|
|
||||||
<p class="notes">
|
|
||||||
The menu buttons at top right takes you to other pages on this site, while the nav panel above targets other points on
|
|
||||||
thispage, or brings up other resources. If you find yourself lost, the browser BACK button will take you back to where you
|
|
||||||
were (some people also have a convenient BACK button on their mouse, right under their thumb). Or hitting the Home key of
|
|
||||||
your keyboard will take you back to the top of this page where you are now. </p>
|
|
||||||
|
|
||||||
|
|
||||||
</div> <!--end pageLeftRest -->
|
|
||||||
</div> <!--end pageLeft -->
|
|
||||||
|
|
||||||
|
|
||||||
<div class="siteInfo">
|
|
||||||
<hr class="clr-dark-tan" />
|
|
||||||
<a>Last updated 8Apr2010<br />© John Barrett Robb</a>
|
|
||||||
<img src="Pics/valid-xhtml10.gif" alt="Valid XHTML 1.0 Strict" height="31px" width="88px" />
|
|
||||||
<img src="Pics/valid-css2.gif" alt="Valid CSS 2.1" height="31px" width="88px" />
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div> <!-- end of PageContainer block -->
|
|
||||||
|
|
||||||
<!-- Start of StatCounter Code -->
|
|
||||||
<script type="text/javascript">
|
|
||||||
var sc_project=4699798;
|
|
||||||
var sc_invisible=1;
|
|
||||||
var sc_partition=56;
|
|
||||||
var sc_click_stat=1;
|
|
||||||
var sc_security="2d713ec5";
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<script type="text/javascript"
|
|
||||||
src="http://www.statcounter.com/counter/counter_xhtml.js"></script><noscript><div
|
|
||||||
class="statcounter"><a title="wordpress com stats plugin"
|
|
||||||
class="statcounter"
|
|
||||||
href="http://www.statcounter.com/wordpress.com/"><img
|
|
||||||
class="statcounter"
|
|
||||||
src="http://c.statcounter.com/4699798/0/2d713ec5/1/"
|
|
||||||
alt="wordpress com stats plugin" /></a></div></noscript>
|
|
||||||
<!-- End of StatCounter Code -->
|
|
||||||
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
|
|
||||||
|
|
|
@ -1,29 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:thr="http://purl.org/syndication/thread/1.0">
|
|
||||||
<title>TheDieline.com: Package Design</title>
|
|
||||||
<link rel="self" type="application/atom+xml" href="http://www.thedieline.com/blog/atom.xml" />
|
|
||||||
<link rel="hub" href="http://hubbub.api.typepad.com/" />
|
|
||||||
<link rel="alternate" type="text/html" href="http://www.thedieline.com/blog/" />
|
|
||||||
<id>tag:typepad.com,2003:weblog-611821</id>
|
|
||||||
<updated>2011-06-15T11:03:00-07:00</updated>
|
|
||||||
<subtitle>The World's #1 Package Design Website</subtitle>
|
|
||||||
<generator uri="http://www.typepad.com/">TypePad</generator>
|
|
||||||
<entry>
|
|
||||||
<title>Ginja d' Óbidos</title>
|
|
||||||
<link rel="alternate" type="text/html" href="http://feeds.feedblitz.com/~/15124587/1ir2jk/thedieline~Ginja-d-%c3%93bidos.html" />
|
|
||||||
<link rel="replies" type="text/html" href="http://feeds.feedblitz.com/~/15124587/1ir2jk/thedieline~Ginja-d-%c3%93bidos.html" thr:count="2" thr:updated="2010-06-25T13:08:23-07:00" />
|
|
||||||
<id>tag:typepad.com,2003:post-6a00d8345250f069e20133f1a9824b970b</id>
|
|
||||||
<published>2010-06-25T10:00:00-07:00</published>
|
|
||||||
<updated>2010-06-24T22:16:07-07:00</updated>
|
|
||||||
<author>
|
|
||||||
<name>The Dieline</name>
|
|
||||||
</author>
|
|
||||||
<category scheme="http://www.sixapart.com/ns/types#category" term="Industry: Wine & Spirits" />
|
|
||||||
<category scheme="http://www.sixapart.com/ns/types#category" term="Substrate: Glass Bottle" />
|
|
||||||
|
|
||||||
|
|
||||||
<content type="html" xml:lang="en-US" xml:base="http://www.thedieline.com/blog/"><font color="#000000" ><p><Img align="left" border="0" height="1" width="1" style="border:0;float:left;margin:0;" vspace="0" hspace="0" src="http://feeds.feedblitz.com/~/i/15124587/1ir2jk/thedieline"><div xmlns="http://www.w3.org/1999/xhtml"><p><a href="http://feeds.feedblitz.com/~/t/0/1ir2jk/thedieline/~http://www.thedieline.com/.a/6a00d8345250f069e20133f1a97caa970b-popup" onclick="window.open( this.href, &#39;_blank&#39;, &#39;width=640,height=480,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0&#39; ); return false" style="display: inline;"><img alt="1" class="asset asset-image at-xid-6a00d8345250f069e20133f1a97caa970b " src="http://www.thedieline.com/.a/6a00d8345250f069e20133f1a97caa970b-550wi" style="width: 540px; " ></a> <br>Lisbon based <a href="http://feeds.feedblitz.com/~/t/0/1ir2jk/thedieline/~http://"></a><a href="http://feeds.feedblitz.com/~/t/0/1ir2jk/thedieline/~http://www.ntgj.org/" target="_blank">NT.GJ</a> designed this cherry liqueur concept which features actual cherries within...</div><p><a href="http://feeds.feedblitz.com/~/15124587/1ir2jk/thedieline">CLICK HERE to read the rest of the post...</a> <!-- _!fbztxtlnk!_ http://feeds.feedblitz.com/~/15124587/1ir2jk/thedieline -->&raquo;</p></font><p><div style="clear:both;"><em>(Want to see more packaging? Visit <a href="http://www.TheDieline.com">TheDieline.com</a>!)</em><p></div></p>
|
|
||||||
<div style="clear:both;"><a title="Tweet with Bit.ly" href="http://bit.ly/?v=3&ref=feedblitz&u=http%3a%2f%2fwww.thedieline.com%2fblog%2f2010%2f06%2fginja-d-%25c3%25b3bidos.html&t=Ginja+d%26%2339%3b+Óbidos"><img height="16" border="0" src="http://assets.feedblitz.com/images/icons/bitly.jpg"></a> <a title="Add to Delicious" href="http://delicious.com/post?url=http%3a%2f%2fwww.thedieline.com%2fblog%2f2010%2f06%2fginja-d-%25c3%25b3bidos.html&title=Ginja+d%26%2339%3b+Óbidos"><img height="16" border="0" src="http://assets.feedblitz.com/images/icons/delicious.jpg"></a> <a title="Digg This" href="http://digg.com/submit?phase=2&url=http%3a%2f%2fwww.thedieline.com%2fblog%2f2010%2f06%2fginja-d-%25c3%25b3bidos.html&title=Ginja+d%26%2339%3b+Óbidos"><img height="16" border="0" src="http://assets.feedblitz.com/images/icons/digg.jpg"></a> <a title="Add to FaceBook" href="http://facebook.com/share.php?u=http%3a%2f%2fwww.thedieline.com%2fblog%2f2010%2f06%2fginja-d-%25c3%25b3bidos.html&t=Ginja+d%26%2339%3b+Óbidos"><img height="16" border="0" src="http://assets.feedblitz.com/images/icons/facebook.jpg"></a> <a title="Add to Google Bookmarks" href="http://google.com/bookmarks/mark?op=edit&bkmk=http%3a%2f%2fwww.thedieline.com%2fblog%2f2010%2f06%2fginja-d-%25c3%25b3bidos.html&title=Ginja+d%26%2339%3b+Óbidos"><img height="16" border="0" src="http://assets.feedblitz.com/images/icons/google.jpg"></a> <a title="Stumble This" href="http://stumbleupon.com/submit?url=http%3a%2f%2fwww.thedieline.com%2fblog%2f2010%2f06%2fginja-d-%25c3%25b3bidos.html&title=Ginja+d%26%2339%3b+Óbidos"><img height="16" border="0" src="http://assets.feedblitz.com/images/icons/stumble.jpg"></a> <a title="Tweet This" href="http://twitter.com/home?status=Ginja+d%26%2339%3b+Óbidos+http%3a%2f%2fwww.thedieline.com%2fblog%2f2010%2f06%2fginja-d-%25c3%25b3bidos.html"><img height="16" border="0" src="http://assets.feedblitz.com/images/icons/twitter.jpg"></a> <a title="Subscribe by RSS" href="http://feeds.feedblitz.com/thedieline"><img height="16" border="0" src="http://assets.feedblitz.com/images/rss.gif"></a> <a title="View Comments" href="http://www.thedieline.com/blog/2010/06/ginja-d-%C3%B3bidos.html"><img height=16 border=0 src="http://assets.feedblitz.com/images/comment.png"></a> </div></content></entry></feed>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,493 @@
|
||||||
|
# $Id: CheckLib.pm,v 1.25 2008/10/27 12:16:23 drhyde Exp $
|
||||||
|
|
||||||
|
package #
|
||||||
|
Devel::CheckLib;
|
||||||
|
|
||||||
|
use 5.00405; #postfix foreach
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
|
||||||
|
use vars qw($VERSION @ISA @EXPORT);
|
||||||
|
$VERSION = '1.01';
|
||||||
|
use Config qw(%Config);
|
||||||
|
use Text::ParseWords 'quotewords';
|
||||||
|
|
||||||
|
use File::Spec;
|
||||||
|
use File::Temp;
|
||||||
|
|
||||||
|
require Exporter;
|
||||||
|
@ISA = qw(Exporter);
|
||||||
|
@EXPORT = qw(assert_lib check_lib_or_exit check_lib);
|
||||||
|
|
||||||
|
# localising prevents the warningness leaking out of this module
|
||||||
|
local $^W = 1; # use warnings is a 5.6-ism
|
||||||
|
|
||||||
|
_findcc(); # bomb out early if there's no compiler
|
||||||
|
|
||||||
|
=head1 NAME
|
||||||
|
|
||||||
|
Devel::CheckLib - check that a library is available
|
||||||
|
|
||||||
|
=head1 DESCRIPTION
|
||||||
|
|
||||||
|
Devel::CheckLib is a perl module that checks whether a particular C
|
||||||
|
library and its headers are available.
|
||||||
|
|
||||||
|
=head1 SYNOPSIS
|
||||||
|
|
||||||
|
use Devel::CheckLib;
|
||||||
|
|
||||||
|
check_lib_or_exit( lib => 'jpeg', header => 'jpeglib.h' );
|
||||||
|
check_lib_or_exit( lib => [ 'iconv', 'jpeg' ] );
|
||||||
|
|
||||||
|
# or prompt for path to library and then do this:
|
||||||
|
check_lib_or_exit( lib => 'jpeg', libpath => $additional_path );
|
||||||
|
|
||||||
|
=head1 USING IT IN Makefile.PL or Build.PL
|
||||||
|
|
||||||
|
If you want to use this from Makefile.PL or Build.PL, do
|
||||||
|
not simply copy the module into your distribution as this may cause
|
||||||
|
problems when PAUSE and search.cpan.org index the distro. Instead, use
|
||||||
|
the use-devel-checklib script.
|
||||||
|
|
||||||
|
=head1 HOW IT WORKS
|
||||||
|
|
||||||
|
You pass named parameters to a function, describing to it how to build
|
||||||
|
and link to the libraries.
|
||||||
|
|
||||||
|
It works by trying to compile some code - which defaults to this:
|
||||||
|
|
||||||
|
int main(void) { return 0; }
|
||||||
|
|
||||||
|
and linking it to the specified libraries. If something pops out the end
|
||||||
|
which looks executable, it gets executed, and if main() returns 0 we know
|
||||||
|
that it worked. That tiny program is
|
||||||
|
built once for each library that you specify, and (without linking) once
|
||||||
|
for each header file.
|
||||||
|
|
||||||
|
If you want to check for the presence of particular functions in a
|
||||||
|
library, or even that those functions return particular results, then
|
||||||
|
you can pass your own function body for main() thus:
|
||||||
|
|
||||||
|
check_lib_or_exit(
|
||||||
|
function => 'foo();if(libversion() > 5) return 0; else return 1;'
|
||||||
|
incpath => ...
|
||||||
|
libpath => ...
|
||||||
|
lib => ...
|
||||||
|
header => ...
|
||||||
|
);
|
||||||
|
|
||||||
|
In that case, it will fail to build if either foo() or libversion() don't
|
||||||
|
exist, and main() will return the wrong value if libversion()'s return
|
||||||
|
value isn't what you want.
|
||||||
|
|
||||||
|
=head1 FUNCTIONS
|
||||||
|
|
||||||
|
All of these take the same named parameters and are exported by default.
|
||||||
|
To avoid exporting them, C<use Devel::CheckLib ()>.
|
||||||
|
|
||||||
|
=head2 assert_lib
|
||||||
|
|
||||||
|
This takes several named parameters, all of which are optional, and dies
|
||||||
|
with an error message if any of the libraries listed can
|
||||||
|
not be found. B<Note>: dying in a Makefile.PL or Build.PL may provoke
|
||||||
|
a 'FAIL' report from CPAN Testers' automated smoke testers. Use
|
||||||
|
C<check_lib_or_exit> instead.
|
||||||
|
|
||||||
|
The named parameters are:
|
||||||
|
|
||||||
|
=over
|
||||||
|
|
||||||
|
=item lib
|
||||||
|
|
||||||
|
Must be either a string with the name of a single
|
||||||
|
library or a reference to an array of strings of library names. Depending
|
||||||
|
on the compiler found, library names will be fed to the compiler either as
|
||||||
|
C<-l> arguments or as C<.lib> file names. (E.g. C<-ljpeg> or C<jpeg.lib>)
|
||||||
|
|
||||||
|
=item libpath
|
||||||
|
|
||||||
|
a string or an array of strings
|
||||||
|
representing additional paths to search for libraries.
|
||||||
|
|
||||||
|
=item LIBS
|
||||||
|
|
||||||
|
a C<ExtUtils::MakeMaker>-style space-seperated list of
|
||||||
|
libraries (each preceded by '-l') and directories (preceded by '-L').
|
||||||
|
|
||||||
|
This can also be supplied on the command-line.
|
||||||
|
|
||||||
|
=item debug
|
||||||
|
|
||||||
|
If true - emit information during processing that can be used for
|
||||||
|
debugging.
|
||||||
|
|
||||||
|
=back
|
||||||
|
|
||||||
|
And libraries are no use without header files, so ...
|
||||||
|
|
||||||
|
=over
|
||||||
|
|
||||||
|
=item header
|
||||||
|
|
||||||
|
Must be either a string with the name of a single
|
||||||
|
header file or a reference to an array of strings of header file names.
|
||||||
|
|
||||||
|
=item incpath
|
||||||
|
|
||||||
|
a string or an array of strings
|
||||||
|
representing additional paths to search for headers.
|
||||||
|
|
||||||
|
=item INC
|
||||||
|
|
||||||
|
a C<ExtUtils::MakeMaker>-style space-seperated list of
|
||||||
|
incpaths, each preceded by '-I'.
|
||||||
|
|
||||||
|
This can also be supplied on the command-line.
|
||||||
|
|
||||||
|
=back
|
||||||
|
|
||||||
|
=head2 check_lib_or_exit
|
||||||
|
|
||||||
|
This behaves exactly the same as C<assert_lib()> except that instead of
|
||||||
|
dieing, it warns (with exactly the same error message) and exits.
|
||||||
|
This is intended for use in Makefile.PL / Build.PL
|
||||||
|
when you might want to prompt the user for various paths and
|
||||||
|
things before checking that what they've told you is sane.
|
||||||
|
|
||||||
|
If any library or header is missing, it exits with an exit value of 0 to avoid
|
||||||
|
causing a CPAN Testers 'FAIL' report. CPAN Testers should ignore this
|
||||||
|
result -- which is what you want if an external library dependency is not
|
||||||
|
available.
|
||||||
|
|
||||||
|
=head2 check_lib
|
||||||
|
|
||||||
|
This behaves exactly the same as C<assert_lib()> except that it is silent,
|
||||||
|
returning false instead of dieing, or true otherwise.
|
||||||
|
|
||||||
|
=cut
|
||||||
|
|
||||||
|
sub check_lib_or_exit {
|
||||||
|
eval 'assert_lib(@_)';
|
||||||
|
if($@) {
|
||||||
|
warn $@;
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
sub check_lib {
|
||||||
|
eval 'assert_lib(@_)';
|
||||||
|
return $@ ? 0 : 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
sub assert_lib {
|
||||||
|
my %args = @_;
|
||||||
|
my (@libs, @libpaths, @headers, @incpaths);
|
||||||
|
|
||||||
|
# FIXME: these four just SCREAM "refactor" at me
|
||||||
|
@libs = (ref($args{lib}) ? @{$args{lib}} : $args{lib})
|
||||||
|
if $args{lib};
|
||||||
|
@libpaths = (ref($args{libpath}) ? @{$args{libpath}} : $args{libpath})
|
||||||
|
if $args{libpath};
|
||||||
|
@headers = (ref($args{header}) ? @{$args{header}} : $args{header})
|
||||||
|
if $args{header};
|
||||||
|
@incpaths = (ref($args{incpath}) ? @{$args{incpath}} : $args{incpath})
|
||||||
|
if $args{incpath};
|
||||||
|
|
||||||
|
# work-a-like for Makefile.PL's LIBS and INC arguments
|
||||||
|
# if given as command-line argument, append to %args
|
||||||
|
for my $arg (@ARGV) {
|
||||||
|
for my $mm_attr_key (qw(LIBS INC)) {
|
||||||
|
if (my ($mm_attr_value) = $arg =~ /\A $mm_attr_key = (.*)/x) {
|
||||||
|
# it is tempting to put some \s* into the expression, but the
|
||||||
|
# MM command-line parser only accepts LIBS etc. followed by =,
|
||||||
|
# so we should not be any more lenient with whitespace than that
|
||||||
|
$args{$mm_attr_key} .= " $mm_attr_value";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# using special form of split to trim whitespace
|
||||||
|
if(defined($args{LIBS})) {
|
||||||
|
foreach my $arg (split(' ', $args{LIBS})) {
|
||||||
|
die("LIBS argument badly-formed: $arg\n") unless($arg =~ /^-[lLR]/);
|
||||||
|
push @{$arg =~ /^-l/ ? \@libs : \@libpaths}, substr($arg, 2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(defined($args{INC})) {
|
||||||
|
foreach my $arg (split(' ', $args{INC})) {
|
||||||
|
die("INC argument badly-formed: $arg\n") unless($arg =~ /^-I/);
|
||||||
|
push @incpaths, substr($arg, 2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
my ($cc, $ld) = _findcc();
|
||||||
|
my @missing;
|
||||||
|
my @wrongresult;
|
||||||
|
my @use_headers;
|
||||||
|
|
||||||
|
# first figure out which headers we can't find ...
|
||||||
|
for my $header (@headers) {
|
||||||
|
push @use_headers, $header;
|
||||||
|
my($ch, $cfile) = File::Temp::tempfile(
|
||||||
|
'assertlibXXXXXXXX', SUFFIX => '.c'
|
||||||
|
);
|
||||||
|
my $ofile = $cfile;
|
||||||
|
$ofile =~ s/\.c$/$Config{_o}/;
|
||||||
|
print $ch qq{#include <$_>\n} for @use_headers;
|
||||||
|
print $ch qq{int main(void) { return 0; }\n};
|
||||||
|
close($ch);
|
||||||
|
my $exefile = File::Temp::mktemp( 'assertlibXXXXXXXX' ) . $Config{_exe};
|
||||||
|
my @sys_cmd;
|
||||||
|
# FIXME: re-factor - almost identical code later when linking
|
||||||
|
if ( $Config{cc} eq 'cl' ) { # Microsoft compiler
|
||||||
|
require Win32;
|
||||||
|
@sys_cmd = (
|
||||||
|
@$cc,
|
||||||
|
$cfile,
|
||||||
|
"/Fe$exefile",
|
||||||
|
(map { '/I'.Win32::GetShortPathName($_) } @incpaths),
|
||||||
|
"/link",
|
||||||
|
@$ld
|
||||||
|
);
|
||||||
|
} elsif($Config{cc} =~ /bcc32(\.exe)?/) { # Borland
|
||||||
|
@sys_cmd = (
|
||||||
|
@$cc,
|
||||||
|
@$ld,
|
||||||
|
(map { "-I$_" } @incpaths),
|
||||||
|
"-o$exefile",
|
||||||
|
$cfile
|
||||||
|
);
|
||||||
|
} else { # Unix-ish: gcc, Sun, AIX (gcc, cc), ...
|
||||||
|
@sys_cmd = (
|
||||||
|
@$cc,
|
||||||
|
@$ld,
|
||||||
|
$cfile,
|
||||||
|
(map { "-I$_" } @incpaths),
|
||||||
|
"-o", "$exefile"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
warn "# @sys_cmd\n" if $args{debug};
|
||||||
|
my $rv = $args{debug} ? system(@sys_cmd) : _quiet_system(@sys_cmd);
|
||||||
|
push @missing, $header if $rv != 0 || ! -x $exefile;
|
||||||
|
_cleanup_exe($exefile);
|
||||||
|
unlink $ofile if -e $ofile;
|
||||||
|
unlink $cfile;
|
||||||
|
}
|
||||||
|
|
||||||
|
# now do each library in turn with headers
|
||||||
|
my($ch, $cfile) = File::Temp::tempfile(
|
||||||
|
'assertlibXXXXXXXX', SUFFIX => '.c'
|
||||||
|
);
|
||||||
|
my $ofile = $cfile;
|
||||||
|
$ofile =~ s/\.c$/$Config{_o}/;
|
||||||
|
print $ch qq{#include <$_>\n} foreach (@headers);
|
||||||
|
print $ch "int main(void) { ".($args{function} || 'return 0;')." }\n";
|
||||||
|
close($ch);
|
||||||
|
for my $lib ( @libs ) {
|
||||||
|
my $exefile = File::Temp::mktemp( 'assertlibXXXXXXXX' ) . $Config{_exe};
|
||||||
|
my @sys_cmd;
|
||||||
|
if ( $Config{cc} eq 'cl' ) { # Microsoft compiler
|
||||||
|
require Win32;
|
||||||
|
my @libpath = map {
|
||||||
|
q{/libpath:} . Win32::GetShortPathName($_)
|
||||||
|
} @libpaths;
|
||||||
|
# this is horribly sensitive to the order of arguments
|
||||||
|
@sys_cmd = (
|
||||||
|
@$cc,
|
||||||
|
$cfile,
|
||||||
|
"${lib}.lib",
|
||||||
|
"/Fe$exefile",
|
||||||
|
(map { '/I'.Win32::GetShortPathName($_) } @incpaths),
|
||||||
|
"/link",
|
||||||
|
@$ld,
|
||||||
|
(map {'/libpath:'.Win32::GetShortPathName($_)} @libpaths),
|
||||||
|
);
|
||||||
|
} elsif($Config{cc} eq 'CC/DECC') { # VMS
|
||||||
|
} elsif($Config{cc} =~ /bcc32(\.exe)?/) { # Borland
|
||||||
|
@sys_cmd = (
|
||||||
|
@$cc,
|
||||||
|
@$ld,
|
||||||
|
"-o$exefile",
|
||||||
|
(map { "-I$_" } @incpaths),
|
||||||
|
(map { "-L$_" } @libpaths),
|
||||||
|
"-l$lib",
|
||||||
|
$cfile);
|
||||||
|
} else { # Unix-ish
|
||||||
|
# gcc, Sun, AIX (gcc, cc)
|
||||||
|
@sys_cmd = (
|
||||||
|
@$cc,
|
||||||
|
@$ld,
|
||||||
|
$cfile,
|
||||||
|
"-o", "$exefile",
|
||||||
|
(map { "-I$_" } @incpaths),
|
||||||
|
(map { "-L$_" } @libpaths),
|
||||||
|
"-l$lib",
|
||||||
|
);
|
||||||
|
}
|
||||||
|
warn "# @sys_cmd\n" if $args{debug};
|
||||||
|
my $rv = $args{debug} ? system(@sys_cmd) : _quiet_system(@sys_cmd);
|
||||||
|
push @missing, $lib if $rv != 0 || ! -x $exefile;
|
||||||
|
my $absexefile = File::Spec->rel2abs($exefile);
|
||||||
|
$absexefile = '"'.$absexefile.'"' if $absexefile =~ m/\s/;
|
||||||
|
push @wrongresult, $lib if $rv == 0 && -x $exefile && system($absexefile) != 0;
|
||||||
|
unlink $ofile if -e $ofile;
|
||||||
|
_cleanup_exe($exefile);
|
||||||
|
}
|
||||||
|
unlink $cfile;
|
||||||
|
|
||||||
|
my $miss_string = join( q{, }, map { qq{'$_'} } @missing );
|
||||||
|
die("Can't link/include C library $miss_string, aborting.\n") if @missing;
|
||||||
|
my $wrong_string = join( q{, }, map { qq{'$_'} } @wrongresult);
|
||||||
|
die("wrong result: $wrong_string\n") if @wrongresult;
|
||||||
|
}
|
||||||
|
|
||||||
|
sub _cleanup_exe {
|
||||||
|
my ($exefile) = @_;
|
||||||
|
my $ofile = $exefile;
|
||||||
|
$ofile =~ s/$Config{_exe}$/$Config{_o}/;
|
||||||
|
unlink $exefile if -f $exefile;
|
||||||
|
unlink $ofile if -f $ofile;
|
||||||
|
unlink "$exefile\.manifest" if -f "$exefile\.manifest";
|
||||||
|
if ( $Config{cc} eq 'cl' ) {
|
||||||
|
# MSVC also creates foo.ilk and foo.pdb
|
||||||
|
my $ilkfile = $exefile;
|
||||||
|
$ilkfile =~ s/$Config{_exe}$/.ilk/;
|
||||||
|
my $pdbfile = $exefile;
|
||||||
|
$pdbfile =~ s/$Config{_exe}$/.pdb/;
|
||||||
|
unlink $ilkfile if -f $ilkfile;
|
||||||
|
unlink $pdbfile if -f $pdbfile;
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
# return ($cc, $ld)
|
||||||
|
# where $cc is an array ref of compiler name, compiler flags
|
||||||
|
# where $ld is an array ref of linker flags
|
||||||
|
sub _findcc {
|
||||||
|
# Need to use $keep=1 to work with MSWin32 backslashes and quotes
|
||||||
|
my $Config_ccflags = $Config{ccflags}; # use copy so ASPerl will compile
|
||||||
|
my @Config_ldflags = ();
|
||||||
|
for my $config_val ( @Config{qw(ldflags perllibs)} ){
|
||||||
|
push @Config_ldflags, $config_val if ( $config_val =~ /\S/ );
|
||||||
|
}
|
||||||
|
my @ccflags = grep { length } quotewords('\s+', 1, $Config_ccflags||'');
|
||||||
|
my @ldflags = grep { length } quotewords('\s+', 1, @Config_ldflags);
|
||||||
|
my @paths = split(/$Config{path_sep}/, $ENV{PATH});
|
||||||
|
my @cc = split(/\s+/, $Config{cc});
|
||||||
|
return ( [ @cc, @ccflags ], \@ldflags ) if -x $cc[0];
|
||||||
|
foreach my $path (@paths) {
|
||||||
|
my $compiler = File::Spec->catfile($path, $cc[0]) . $Config{_exe};
|
||||||
|
return ([ $compiler, @cc[1 .. $#cc], @ccflags ], \@ldflags)
|
||||||
|
if -x $compiler;
|
||||||
|
}
|
||||||
|
die("Couldn't find your C compiler\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
# code substantially borrowed from IPC::Run3
|
||||||
|
sub _quiet_system {
|
||||||
|
my (@cmd) = @_;
|
||||||
|
|
||||||
|
# save handles
|
||||||
|
local *STDOUT_SAVE;
|
||||||
|
local *STDERR_SAVE;
|
||||||
|
open STDOUT_SAVE, ">&STDOUT" or die "CheckLib: $! saving STDOUT";
|
||||||
|
open STDERR_SAVE, ">&STDERR" or die "CheckLib: $! saving STDERR";
|
||||||
|
|
||||||
|
# redirect to nowhere
|
||||||
|
local *DEV_NULL;
|
||||||
|
open DEV_NULL, ">" . File::Spec->devnull
|
||||||
|
or die "CheckLib: $! opening handle to null device";
|
||||||
|
open STDOUT, ">&" . fileno DEV_NULL
|
||||||
|
or die "CheckLib: $! redirecting STDOUT to null handle";
|
||||||
|
open STDERR, ">&" . fileno DEV_NULL
|
||||||
|
or die "CheckLib: $! redirecting STDERR to null handle";
|
||||||
|
|
||||||
|
# run system command
|
||||||
|
my $rv = system(@cmd);
|
||||||
|
|
||||||
|
# restore handles
|
||||||
|
open STDOUT, ">&" . fileno STDOUT_SAVE
|
||||||
|
or die "CheckLib: $! restoring STDOUT handle";
|
||||||
|
open STDERR, ">&" . fileno STDERR_SAVE
|
||||||
|
or die "CheckLib: $! restoring STDERR handle";
|
||||||
|
|
||||||
|
return $rv;
|
||||||
|
}
|
||||||
|
|
||||||
|
=head1 PLATFORMS SUPPORTED
|
||||||
|
|
||||||
|
You must have a C compiler installed. We check for C<$Config{cc}>,
|
||||||
|
both literally as it is in Config.pm and also in the $PATH.
|
||||||
|
|
||||||
|
It has been tested with varying degrees on rigourousness on:
|
||||||
|
|
||||||
|
=over
|
||||||
|
|
||||||
|
=item gcc (on Linux, *BSD, Mac OS X, Solaris, Cygwin)
|
||||||
|
|
||||||
|
=item Sun's compiler tools on Solaris
|
||||||
|
|
||||||
|
=item IBM's tools on AIX
|
||||||
|
|
||||||
|
=item SGI's tools on Irix 6.5
|
||||||
|
|
||||||
|
=item Microsoft's tools on Windows
|
||||||
|
|
||||||
|
=item MinGW on Windows (with Strawberry Perl)
|
||||||
|
|
||||||
|
=item Borland's tools on Windows
|
||||||
|
|
||||||
|
=item QNX
|
||||||
|
|
||||||
|
=back
|
||||||
|
|
||||||
|
=head1 WARNINGS, BUGS and FEEDBACK
|
||||||
|
|
||||||
|
This is a very early release intended primarily for feedback from
|
||||||
|
people who have discussed it. The interface may change and it has
|
||||||
|
not been adequately tested.
|
||||||
|
|
||||||
|
Feedback is most welcome, including constructive criticism.
|
||||||
|
Bug reports should be made using L<http://rt.cpan.org/> or by email.
|
||||||
|
|
||||||
|
When submitting a bug report, please include the output from running:
|
||||||
|
|
||||||
|
perl -V
|
||||||
|
perl -MDevel::CheckLib -e0
|
||||||
|
|
||||||
|
=head1 SEE ALSO
|
||||||
|
|
||||||
|
L<Devel::CheckOS>
|
||||||
|
|
||||||
|
L<Probe::Perl>
|
||||||
|
|
||||||
|
=head1 AUTHORS
|
||||||
|
|
||||||
|
David Cantrell E<lt>david@cantrell.org.ukE<gt>
|
||||||
|
|
||||||
|
David Golden E<lt>dagolden@cpan.orgE<gt>
|
||||||
|
|
||||||
|
Yasuhiro Matsumoto E<lt>mattn@cpan.orgE<gt>
|
||||||
|
|
||||||
|
Thanks to the cpan-testers-discuss mailing list for prompting us to write it
|
||||||
|
in the first place;
|
||||||
|
|
||||||
|
to Chris Williams for help with Borland support;
|
||||||
|
|
||||||
|
to Tony Cook for help with Microsoft compiler command-line options
|
||||||
|
|
||||||
|
=head1 COPYRIGHT and LICENCE
|
||||||
|
|
||||||
|
Copyright 2007 David Cantrell. Portions copyright 2007 David Golden.
|
||||||
|
|
||||||
|
This module is free-as-in-speech software, and may be used, distributed,
|
||||||
|
and modified under the same conditions as perl itself.
|
||||||
|
|
||||||
|
=head1 CONSPIRACY
|
||||||
|
|
||||||
|
This module is also free-as-in-mason software.
|
||||||
|
|
||||||
|
=cut
|
||||||
|
|
||||||
|
1;
|
|
@ -121,7 +121,7 @@ Petr Pajas
|
||||||
|
|
||||||
=head1 VERSION
|
=head1 VERSION
|
||||||
|
|
||||||
2.0207
|
2.0134
|
||||||
|
|
||||||
=head1 COPYRIGHT
|
=head1 COPYRIGHT
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@ use Tie::Hash;
|
||||||
our @ISA = qw/Tie::Hash/;
|
our @ISA = qw/Tie::Hash/;
|
||||||
|
|
||||||
use vars qw($VERSION);
|
use vars qw($VERSION);
|
||||||
$VERSION = "2.0207"; # VERSION TEMPLATE: DO NOT CHANGE
|
$VERSION = "2.0134"; # VERSION TEMPLATE: DO NOT CHANGE
|
||||||
|
|
||||||
BEGIN
|
BEGIN
|
||||||
{
|
{
|
||||||
|
|
|
@ -16,7 +16,7 @@ use warnings;
|
||||||
|
|
||||||
use vars qw ($VERSION);
|
use vars qw ($VERSION);
|
||||||
|
|
||||||
$VERSION = "2.0207"; # VERSION TEMPLATE: DO NOT CHANGE
|
$VERSION = "2.0134"; # VERSION TEMPLATE: DO NOT CHANGE
|
||||||
|
|
||||||
use overload
|
use overload
|
||||||
'""' => \&value,
|
'""' => \&value,
|
||||||
|
|
|
@ -45,7 +45,7 @@ Petr Pajas
|
||||||
|
|
||||||
=head1 VERSION
|
=head1 VERSION
|
||||||
|
|
||||||
2.0207
|
2.0134
|
||||||
|
|
||||||
=head1 COPYRIGHT
|
=head1 COPYRIGHT
|
||||||
|
|
||||||
|
|
|
@ -46,7 +46,7 @@ Petr Pajas
|
||||||
|
|
||||||
=head1 VERSION
|
=head1 VERSION
|
||||||
|
|
||||||
2.0207
|
2.0134
|
||||||
|
|
||||||
=head1 COPYRIGHT
|
=head1 COPYRIGHT
|
||||||
|
|
||||||
|
|
|
@ -19,11 +19,12 @@ use strict;
|
||||||
use warnings;
|
use warnings;
|
||||||
|
|
||||||
require Exporter;
|
require Exporter;
|
||||||
|
require DynaLoader;
|
||||||
use vars qw( @ISA $VERSION @EXPORT @EXPORT_OK %EXPORT_TAGS);
|
use vars qw( @ISA $VERSION @EXPORT @EXPORT_OK %EXPORT_TAGS);
|
||||||
|
|
||||||
@ISA = qw(Exporter);
|
@ISA = qw(Exporter);
|
||||||
|
|
||||||
$VERSION = "2.0207"; # VERSION TEMPLATE: DO NOT CHANGE
|
$VERSION = "2.0134"; # VERSION TEMPLATE: DO NOT CHANGE
|
||||||
|
|
||||||
use XML::LibXML qw(:libxml);
|
use XML::LibXML qw(:libxml);
|
||||||
|
|
||||||
|
|
|
@ -116,7 +116,7 @@ Petr Pajas
|
||||||
|
|
||||||
=head1 VERSION
|
=head1 VERSION
|
||||||
|
|
||||||
2.0207
|
2.0134
|
||||||
|
|
||||||
=head1 COPYRIGHT
|
=head1 COPYRIGHT
|
||||||
|
|
||||||
|
|
|
@ -129,7 +129,7 @@ Petr Pajas
|
||||||
|
|
||||||
=head1 VERSION
|
=head1 VERSION
|
||||||
|
|
||||||
2.0207
|
2.0134
|
||||||
|
|
||||||
=head1 COPYRIGHT
|
=head1 COPYRIGHT
|
||||||
|
|
||||||
|
|
|
@ -12,7 +12,7 @@ use warnings;
|
||||||
use XML::LibXML;
|
use XML::LibXML;
|
||||||
|
|
||||||
use vars qw ($VERSION);
|
use vars qw ($VERSION);
|
||||||
$VERSION = "2.0207"; # VERSION TEMPLATE: DO NOT CHANGE
|
$VERSION = "2.0134"; # VERSION TEMPLATE: DO NOT CHANGE
|
||||||
|
|
||||||
use 5.008_000;
|
use 5.008_000;
|
||||||
|
|
||||||
|
|
|
@ -683,7 +683,7 @@ Petr Pajas
|
||||||
|
|
||||||
=head1 VERSION
|
=head1 VERSION
|
||||||
|
|
||||||
2.0207
|
2.0134
|
||||||
|
|
||||||
=head1 COPYRIGHT
|
=head1 COPYRIGHT
|
||||||
|
|
||||||
|
|
|
@ -27,7 +27,7 @@ Petr Pajas
|
||||||
|
|
||||||
=head1 VERSION
|
=head1 VERSION
|
||||||
|
|
||||||
2.0207
|
2.0134
|
||||||
|
|
||||||
=head1 COPYRIGHT
|
=head1 COPYRIGHT
|
||||||
|
|
||||||
|
|
|
@ -89,7 +89,7 @@ Petr Pajas
|
||||||
|
|
||||||
=head1 VERSION
|
=head1 VERSION
|
||||||
|
|
||||||
2.0207
|
2.0134
|
||||||
|
|
||||||
=head1 COPYRIGHT
|
=head1 COPYRIGHT
|
||||||
|
|
||||||
|
|
|
@ -382,7 +382,7 @@ Petr Pajas
|
||||||
|
|
||||||
=head1 VERSION
|
=head1 VERSION
|
||||||
|
|
||||||
2.0207
|
2.0134
|
||||||
|
|
||||||
=head1 COPYRIGHT
|
=head1 COPYRIGHT
|
||||||
|
|
||||||
|
|
|
@ -14,7 +14,7 @@ use strict;
|
||||||
use warnings;
|
use warnings;
|
||||||
use vars qw($VERSION);
|
use vars qw($VERSION);
|
||||||
|
|
||||||
$VERSION = "2.0207"; # VERSION TEMPLATE: DO NOT CHANGE
|
$VERSION = "2.0134"; # VERSION TEMPLATE: DO NOT CHANGE
|
||||||
|
|
||||||
use constant ERR_OK => 0;
|
use constant ERR_OK => 0;
|
||||||
use constant ERR_INTERNAL_ERROR => 1;
|
use constant ERR_INTERNAL_ERROR => 1;
|
||||||
|
|
|
@ -17,7 +17,7 @@ Petr Pajas
|
||||||
|
|
||||||
=head1 VERSION
|
=head1 VERSION
|
||||||
|
|
||||||
2.0207
|
2.0134
|
||||||
|
|
||||||
=head1 COPYRIGHT
|
=head1 COPYRIGHT
|
||||||
|
|
||||||
|
|
|
@ -17,6 +17,7 @@ no warnings 'recursion';
|
||||||
use Encode ();
|
use Encode ();
|
||||||
|
|
||||||
use vars qw(@error_domains $VERSION $WARNINGS);
|
use vars qw(@error_domains $VERSION $WARNINGS);
|
||||||
|
use Carp;
|
||||||
use overload
|
use overload
|
||||||
'""' => \&as_string,
|
'""' => \&as_string,
|
||||||
'eq' => sub {
|
'eq' => sub {
|
||||||
|
@ -28,7 +29,7 @@ use overload
|
||||||
fallback => 1;
|
fallback => 1;
|
||||||
|
|
||||||
$WARNINGS = 0; # 0: suppress, 1: report via warn, 2: report via die
|
$WARNINGS = 0; # 0: suppress, 1: report via warn, 2: report via die
|
||||||
$VERSION = "2.0207"; # VERSION TEMPLATE: DO NOT CHANGE
|
$VERSION = "2.0134"; # VERSION TEMPLATE: DO NOT CHANGE
|
||||||
|
|
||||||
use constant XML_ERR_NONE => 0;
|
use constant XML_ERR_NONE => 0;
|
||||||
use constant XML_ERR_WARNING => 1; # A simple warning
|
use constant XML_ERR_WARNING => 1; # A simple warning
|
||||||
|
@ -242,7 +243,7 @@ sub as_string {
|
||||||
# warnings. This has the pleasing benefit of making the test suite
|
# warnings. This has the pleasing benefit of making the test suite
|
||||||
# run warning-free.
|
# run warning-free.
|
||||||
no warnings 'utf8';
|
no warnings 'utf8';
|
||||||
my $context = Encode::encode('UTF-8', $self->{context});
|
my $context = Encode::encode('utf8', $self->{context}, Encode::FB_DEFAULT);
|
||||||
$msg.=$context."\n";
|
$msg.=$context."\n";
|
||||||
$context = substr($context,0,$self->{column});
|
$context = substr($context,0,$self->{column});
|
||||||
$context=~s/[^\t]/ /g;
|
$context=~s/[^\t]/ /g;
|
||||||
|
@ -253,7 +254,7 @@ sub as_string {
|
||||||
|
|
||||||
sub dump {
|
sub dump {
|
||||||
my ($self)=@_;
|
my ($self)=@_;
|
||||||
require Data::Dumper;
|
use Data::Dumper;
|
||||||
return Data::Dumper->new([$self],['error'])->Dump;
|
return Data::Dumper->new([$self],['error'])->Dump;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -244,7 +244,7 @@ Petr Pajas
|
||||||
|
|
||||||
=head1 VERSION
|
=head1 VERSION
|
||||||
|
|
||||||
2.0207
|
2.0134
|
||||||
|
|
||||||
=head1 COPYRIGHT
|
=head1 COPYRIGHT
|
||||||
|
|
||||||
|
|
|
@ -280,7 +280,7 @@ Petr Pajas
|
||||||
|
|
||||||
=head1 VERSION
|
=head1 VERSION
|
||||||
|
|
||||||
2.0207
|
2.0134
|
||||||
|
|
||||||
=head1 COPYRIGHT
|
=head1 COPYRIGHT
|
||||||
|
|
||||||
|
|
|
@ -16,7 +16,7 @@ use strict;
|
||||||
use warnings;
|
use warnings;
|
||||||
|
|
||||||
use vars qw ($VERSION);
|
use vars qw ($VERSION);
|
||||||
$VERSION = "2.0207"; # VERSION TEMPLATE: DO NOT CHANGE
|
$VERSION = "2.0134"; # VERSION TEMPLATE: DO NOT CHANGE
|
||||||
|
|
||||||
use overload
|
use overload
|
||||||
'""' => \&value,
|
'""' => \&value,
|
||||||
|
|
|
@ -141,7 +141,7 @@ Petr Pajas
|
||||||
|
|
||||||
=head1 VERSION
|
=head1 VERSION
|
||||||
|
|
||||||
2.0207
|
2.0134
|
||||||
|
|
||||||
=head1 COPYRIGHT
|
=head1 COPYRIGHT
|
||||||
|
|
||||||
|
|
|
@ -174,7 +174,7 @@ stripped from the context it is and inserted into a (hidden) document-fragment.
|
||||||
|
|
||||||
$childnode = $node->removeChild( $childnode );
|
$childnode = $node->removeChild( $childnode );
|
||||||
|
|
||||||
This will unbind the Child Node from its parent C<<<<<< $node >>>>>>. The function returns the unbound node. If C<<<<<< $childnode >>>>>> is not a child of the given Node the function will fail.
|
This will unbind the Child Node from its parent C<<<<<< $node >>>>>>. The function returns the unbound node. If C<<<<<< oldNode >>>>>> is not a child of the given Node the function will fail.
|
||||||
|
|
||||||
|
|
||||||
=item replaceChild
|
=item replaceChild
|
||||||
|
@ -763,7 +763,7 @@ Petr Pajas
|
||||||
|
|
||||||
=head1 VERSION
|
=head1 VERSION
|
||||||
|
|
||||||
2.0207
|
2.0134
|
||||||
|
|
||||||
=head1 COPYRIGHT
|
=head1 COPYRIGHT
|
||||||
|
|
||||||
|
|
|
@ -17,7 +17,7 @@ use XML::LibXML::Literal;
|
||||||
use XML::LibXML::Number;
|
use XML::LibXML::Number;
|
||||||
|
|
||||||
use vars qw($VERSION);
|
use vars qw($VERSION);
|
||||||
$VERSION = "2.0207"; # VERSION TEMPLATE: DO NOT CHANGE
|
$VERSION = "2.0134"; # VERSION TEMPLATE: DO NOT CHANGE
|
||||||
|
|
||||||
use overload
|
use overload
|
||||||
'""' => \&to_literal,
|
'""' => \&to_literal,
|
||||||
|
|
|
@ -14,7 +14,7 @@ use strict;
|
||||||
use warnings;
|
use warnings;
|
||||||
|
|
||||||
use vars qw ($VERSION);
|
use vars qw ($VERSION);
|
||||||
$VERSION = "2.0207"; # VERSION TEMPLATE: DO NOT CHANGE
|
$VERSION = "2.0134"; # VERSION TEMPLATE: DO NOT CHANGE
|
||||||
|
|
||||||
use overload
|
use overload
|
||||||
'""' => \&value,
|
'""' => \&value,
|
||||||
|
|
|
@ -74,7 +74,7 @@ Petr Pajas
|
||||||
|
|
||||||
=head1 VERSION
|
=head1 VERSION
|
||||||
|
|
||||||
2.0207
|
2.0134
|
||||||
|
|
||||||
=head1 COPYRIGHT
|
=head1 COPYRIGHT
|
||||||
|
|
||||||
|
|
|
@ -174,17 +174,13 @@ eval{} block
|
||||||
|
|
||||||
|
|
||||||
This function is available since XML::LibXML 1.70. It provides easy to use
|
This function is available since XML::LibXML 1.70. It provides easy to use
|
||||||
interface to the XML parser that parses given file (or non-HTTPS URL), string,
|
interface to the XML parser that parses given file (or URL), string, or input
|
||||||
or input stream to a DOM tree. The arguments can be passed in a HASH reference
|
stream to a DOM tree. The arguments can be passed in a HASH reference or as
|
||||||
or as name => value pairs. The function can be called as a class method or an
|
name => value pairs. The function can be called as a class method or an object
|
||||||
object method. In both cases it internally creates a new parser instance
|
method. In both cases it internally creates a new parser instance passing the
|
||||||
passing the specified parser options; if called as an object method, it clones
|
specified parser options; if called as an object method, it clones the original
|
||||||
the original parser (preserving its settings) and additionally applies the
|
parser (preserving its settings) and additionally applies the specified options
|
||||||
specified options to the new parser. See the constructor C<<<<<< new >>>>>> and L<<<<<< Parser Options >>>>>> for more information.
|
to the new parser. See the constructor C<<<<<< new >>>>>> and L<<<<<< Parser Options >>>>>> for more information.
|
||||||
|
|
||||||
Note that, due to a limitation in the underlying libxml2 library, this call
|
|
||||||
does not recognize HTTPS-based URLs. (It will treat an HTTPS URL as a filename,
|
|
||||||
likely throwing a "No such file or directory" exception.)
|
|
||||||
|
|
||||||
|
|
||||||
=item load_html
|
=item load_html
|
||||||
|
@ -273,8 +269,8 @@ This is an alias to process_xincludes, but through a JAVA like function name.
|
||||||
$doc = $parser->parse_file( $xmlfilename );
|
$doc = $parser->parse_file( $xmlfilename );
|
||||||
|
|
||||||
This function parses an XML document from a file or network; $xmlfilename can
|
This function parses an XML document from a file or network; $xmlfilename can
|
||||||
be either a filename or a (non-HTTPS) URL. Note that for parsing files, this
|
be either a filename or an URL. Note that for parsing files, this function is
|
||||||
function is the fastest choice, about 6-8 times faster then parse_fh().
|
the fastest choice, about 6-8 times faster then parse_fh().
|
||||||
|
|
||||||
|
|
||||||
=item parse_fh
|
=item parse_fh
|
||||||
|
@ -312,7 +308,7 @@ function.
|
||||||
$doc = $parser->parse_html_file( $htmlfile, \%opts );
|
$doc = $parser->parse_html_file( $htmlfile, \%opts );
|
||||||
|
|
||||||
Similar to parse_file() but parses HTML (strict) documents; $htmlfile can be
|
Similar to parse_file() but parses HTML (strict) documents; $htmlfile can be
|
||||||
filename or (non-HTTPS) URL.
|
filename or URL.
|
||||||
|
|
||||||
An optional second argument can be used to pass some options to the HTML parser
|
An optional second argument can be used to pass some options to the HTML parser
|
||||||
as a HASH reference. See options labeled with HTML in L<<<<<< Parser Options >>>>>>.
|
as a HASH reference. See options labeled with HTML in L<<<<<< Parser Options >>>>>>.
|
||||||
|
@ -988,7 +984,7 @@ Petr Pajas
|
||||||
|
|
||||||
=head1 VERSION
|
=head1 VERSION
|
||||||
|
|
||||||
2.0207
|
2.0134
|
||||||
|
|
||||||
=head1 COPYRIGHT
|
=head1 COPYRIGHT
|
||||||
|
|
||||||
|
|
|
@ -94,7 +94,7 @@ Petr Pajas
|
||||||
|
|
||||||
=head1 VERSION
|
=head1 VERSION
|
||||||
|
|
||||||
2.0207
|
2.0134
|
||||||
|
|
||||||
=head1 COPYRIGHT
|
=head1 COPYRIGHT
|
||||||
|
|
||||||
|
|
|
@ -14,7 +14,7 @@ use strict;
|
||||||
use warnings;
|
use warnings;
|
||||||
|
|
||||||
use vars qw ($VERSION);
|
use vars qw ($VERSION);
|
||||||
$VERSION = "2.0207"; # VERSION TEMPLATE: DO NOT CHANGE
|
$VERSION = "2.0134"; # VERSION TEMPLATE: DO NOT CHANGE
|
||||||
|
|
||||||
use 5.008_000;
|
use 5.008_000;
|
||||||
|
|
||||||
|
|
|
@ -90,7 +90,7 @@ where ... are (optional) reader options described below in L<<<<<< Reader option
|
||||||
|
|
||||||
=item location
|
=item location
|
||||||
|
|
||||||
Read XML from a local file or (non-HTTPS) URL.
|
Read XML from a local file or URL.
|
||||||
|
|
||||||
|
|
||||||
=item string
|
=item string
|
||||||
|
@ -129,14 +129,14 @@ override document encoding.
|
||||||
|
|
||||||
=item RelaxNG => $rng_schema
|
=item RelaxNG => $rng_schema
|
||||||
|
|
||||||
can be used to pass either a L<<<<<< XML::LibXML::RelaxNG >>>>>> object or a filename or (non-HTTPS) URL of a RelaxNG schema to the constructor.
|
can be used to pass either a L<<<<<< XML::LibXML::RelaxNG >>>>>> object or a filename or URL of a RelaxNG schema to the constructor. The schema
|
||||||
The schema is then used to validate the document as it is processed.
|
is then used to validate the document as it is processed.
|
||||||
|
|
||||||
|
|
||||||
=item Schema => $xsd_schema
|
=item Schema => $xsd_schema
|
||||||
|
|
||||||
can be used to pass either a L<<<<<< XML::LibXML::Schema >>>>>> object or a filename or (non-HTTPS) URL of a W3C XSD schema to the constructor.
|
can be used to pass either a L<<<<<< XML::LibXML::Schema >>>>>> object or a filename or URL of a W3C XSD schema to the constructor. The schema
|
||||||
The schema is then used to validate the document as it is processed.
|
is then used to validate the document as it is processed.
|
||||||
|
|
||||||
|
|
||||||
=item ...
|
=item ...
|
||||||
|
@ -657,7 +657,7 @@ Petr Pajas
|
||||||
|
|
||||||
=head1 VERSION
|
=head1 VERSION
|
||||||
|
|
||||||
2.0207
|
2.0134
|
||||||
|
|
||||||
=head1 COPYRIGHT
|
=head1 COPYRIGHT
|
||||||
|
|
||||||
|
|
|
@ -58,7 +58,7 @@ Petr Pajas
|
||||||
|
|
||||||
=head1 VERSION
|
=head1 VERSION
|
||||||
|
|
||||||
2.0207
|
2.0134
|
||||||
|
|
||||||
=head1 COPYRIGHT
|
=head1 COPYRIGHT
|
||||||
|
|
||||||
|
|
|
@ -9,9 +9,9 @@ XML::LibXML::RelaxNG - RelaxNG Schema Validation
|
||||||
use XML::LibXML;
|
use XML::LibXML;
|
||||||
$doc = XML::LibXML->new->parse_file($url);
|
$doc = XML::LibXML->new->parse_file($url);
|
||||||
|
|
||||||
$rngschema = XML::LibXML::RelaxNG->new( location => $filename_or_url, no_network => 1 );
|
$rngschema = XML::LibXML::RelaxNG->new( location => $filename_or_url );
|
||||||
$rngschema = XML::LibXML::RelaxNG->new( string => $xmlschemastring, no_network => 1 );
|
$rngschema = XML::LibXML::RelaxNG->new( string => $xmlschemastring );
|
||||||
$rngschema = XML::LibXML::RelaxNG->new( DOM => $doc, no_network => 1 );
|
$rngschema = XML::LibXML::RelaxNG->new( DOM => $doc );
|
||||||
eval { $rngschema->validate( $doc ); };
|
eval { $rngschema->validate( $doc ); };
|
||||||
|
|
||||||
=head1 DESCRIPTION
|
=head1 DESCRIPTION
|
||||||
|
@ -27,20 +27,17 @@ validation.
|
||||||
|
|
||||||
=item new
|
=item new
|
||||||
|
|
||||||
$rngschema = XML::LibXML::RelaxNG->new( location => $filename_or_url, no_network => 1 );
|
$rngschema = XML::LibXML::RelaxNG->new( location => $filename_or_url );
|
||||||
$rngschema = XML::LibXML::RelaxNG->new( string => $xmlschemastring, no_network => 1 );
|
$rngschema = XML::LibXML::RelaxNG->new( string => $xmlschemastring );
|
||||||
$rngschema = XML::LibXML::RelaxNG->new( DOM => $doc, no_network => 1 );
|
$rngschema = XML::LibXML::RelaxNG->new( DOM => $doc );
|
||||||
|
|
||||||
The constructor of XML::LibXML::RelaxNG needs to be called with list of
|
The constructor of XML::LibXML::RelaxNG may get called with either one of three
|
||||||
parameters. At least location, string or DOM parameter is required to specify
|
parameters. The parameter tells the class from which source it should generate
|
||||||
source of schema. Optional parameter no_network set to 1 cause that parser
|
a validation schema. It is important, that each schema only have a single
|
||||||
would not access network and optional parameter recover set 1 cause that parser
|
source.
|
||||||
would not call die() on errors.
|
|
||||||
|
|
||||||
It is important, that each schema only have a single source.
|
|
||||||
|
|
||||||
The location parameter allows one to parse a schema from the filesystem or a
|
The location parameter allows one to parse a schema from the filesystem or a
|
||||||
(non-HTTPS) URL.
|
URL.
|
||||||
|
|
||||||
The string parameter will parse the schema from the given XML string.
|
The string parameter will parse the schema from the given XML string.
|
||||||
|
|
||||||
|
@ -73,7 +70,7 @@ Petr Pajas
|
||||||
|
|
||||||
=head1 VERSION
|
=head1 VERSION
|
||||||
|
|
||||||
2.0207
|
2.0134
|
||||||
|
|
||||||
=head1 COPYRIGHT
|
=head1 COPYRIGHT
|
||||||
|
|
||||||
|
|
|
@ -14,7 +14,7 @@ use warnings;
|
||||||
|
|
||||||
use vars qw($VERSION @ISA);
|
use vars qw($VERSION @ISA);
|
||||||
|
|
||||||
$VERSION = "2.0207"; # VERSION TEMPLATE: DO NOT CHANGE
|
$VERSION = "2.0134"; # VERSION TEMPLATE: DO NOT CHANGE
|
||||||
|
|
||||||
use XML::LibXML;
|
use XML::LibXML;
|
||||||
use XML::SAX::Base;
|
use XML::SAX::Base;
|
||||||
|
@ -47,16 +47,9 @@ sub _parse_characterstream {
|
||||||
croak( "not implemented yet" );
|
croak( "not implemented yet" );
|
||||||
}
|
}
|
||||||
|
|
||||||
# See:
|
|
||||||
# https://rt.cpan.org/Public/Bug/Display.html?id=132759
|
|
||||||
sub _calc_new_XML_LibXML_parser_for_compatibility_with_XML_Simple_etc
|
|
||||||
{
|
|
||||||
return XML::LibXML->new( expand_entities => 1, );
|
|
||||||
}
|
|
||||||
|
|
||||||
sub _parse_bytestream {
|
sub _parse_bytestream {
|
||||||
my ( $self, $fh ) = @_;
|
my ( $self, $fh ) = @_;
|
||||||
$self->{ParserOptions}{LibParser} = $self->_calc_new_XML_LibXML_parser_for_compatibility_with_XML_Simple_etc() unless defined $self->{ParserOptions}{LibParser};
|
$self->{ParserOptions}{LibParser} = XML::LibXML->new() unless defined $self->{ParserOptions}{LibParser};
|
||||||
$self->{ParserOptions}{ParseFunc} = \&XML::LibXML::parse_fh;
|
$self->{ParserOptions}{ParseFunc} = \&XML::LibXML::parse_fh;
|
||||||
$self->{ParserOptions}{ParseFuncParam} = $fh;
|
$self->{ParserOptions}{ParseFuncParam} = $fh;
|
||||||
$self->_parse;
|
$self->_parse;
|
||||||
|
@ -65,7 +58,7 @@ sub _parse_bytestream {
|
||||||
|
|
||||||
sub _parse_string {
|
sub _parse_string {
|
||||||
my ( $self, $string ) = @_;
|
my ( $self, $string ) = @_;
|
||||||
$self->{ParserOptions}{LibParser} = $self->_calc_new_XML_LibXML_parser_for_compatibility_with_XML_Simple_etc() unless defined $self->{ParserOptions}{LibParser};
|
$self->{ParserOptions}{LibParser} = XML::LibXML->new() unless defined $self->{ParserOptions}{LibParser};
|
||||||
$self->{ParserOptions}{ParseFunc} = \&XML::LibXML::parse_string;
|
$self->{ParserOptions}{ParseFunc} = \&XML::LibXML::parse_string;
|
||||||
$self->{ParserOptions}{ParseFuncParam} = $string;
|
$self->{ParserOptions}{ParseFuncParam} = $string;
|
||||||
$self->_parse;
|
$self->_parse;
|
||||||
|
@ -74,7 +67,7 @@ sub _parse_string {
|
||||||
|
|
||||||
sub _parse_systemid {
|
sub _parse_systemid {
|
||||||
my $self = shift;
|
my $self = shift;
|
||||||
$self->{ParserOptions}{LibParser} = $self->_calc_new_XML_LibXML_parser_for_compatibility_with_XML_Simple_etc() unless defined $self->{ParserOptions}{LibParser};
|
$self->{ParserOptions}{LibParser} = XML::LibXML->new() unless defined $self->{ParserOptions}{LibParser};
|
||||||
$self->{ParserOptions}{ParseFunc} = \&XML::LibXML::parse_file;
|
$self->{ParserOptions}{ParseFunc} = \&XML::LibXML::parse_file;
|
||||||
$self->{ParserOptions}{ParseFuncParam} = shift;
|
$self->{ParserOptions}{ParseFuncParam} = shift;
|
||||||
$self->_parse;
|
$self->_parse;
|
||||||
|
@ -83,7 +76,7 @@ sub _parse_systemid {
|
||||||
|
|
||||||
sub parse_chunk {
|
sub parse_chunk {
|
||||||
my ( $self, $chunk ) = @_;
|
my ( $self, $chunk ) = @_;
|
||||||
$self->{ParserOptions}{LibParser} = $self->_calc_new_XML_LibXML_parser_for_compatibility_with_XML_Simple_etc() unless defined $self->{ParserOptions}{LibParser};
|
$self->{ParserOptions}{LibParser} = XML::LibXML->new() unless defined $self->{ParserOptions}{LibParser};
|
||||||
$self->{ParserOptions}{ParseFunc} = \&XML::LibXML::parse_xml_chunk;
|
$self->{ParserOptions}{ParseFunc} = \&XML::LibXML::parse_xml_chunk;
|
||||||
$self->{ParserOptions}{LibParser}->{IS_FILTER}=1; # a hack to prevent parse_xml_chunk from issuing end_document
|
$self->{ParserOptions}{LibParser}->{IS_FILTER}=1; # a hack to prevent parse_xml_chunk from issuing end_document
|
||||||
$self->{ParserOptions}{ParseFuncParam} = $chunk;
|
$self->{ParserOptions}{ParseFuncParam} = $chunk;
|
||||||
|
|
|
@ -47,7 +47,7 @@ Petr Pajas
|
||||||
|
|
||||||
=head1 VERSION
|
=head1 VERSION
|
||||||
|
|
||||||
2.0207
|
2.0134
|
||||||
|
|
||||||
=head1 COPYRIGHT
|
=head1 COPYRIGHT
|
||||||
|
|
||||||
|
|
|
@ -21,7 +21,7 @@ sub CLONE_SKIP {
|
||||||
return $XML::LibXML::__threads_shared ? 0 : 1;
|
return $XML::LibXML::__threads_shared ? 0 : 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
$VERSION = "2.0207"; # VERSION TEMPLATE: DO NOT CHANGE
|
$VERSION = "2.0134"; # VERSION TEMPLATE: DO NOT CHANGE
|
||||||
|
|
||||||
sub new {
|
sub new {
|
||||||
my $class = shift;
|
my $class = shift;
|
||||||
|
|
|
@ -38,7 +38,7 @@ Petr Pajas
|
||||||
|
|
||||||
=head1 VERSION
|
=head1 VERSION
|
||||||
|
|
||||||
2.0207
|
2.0134
|
||||||
|
|
||||||
=head1 COPYRIGHT
|
=head1 COPYRIGHT
|
||||||
|
|
||||||
|
|
|
@ -15,7 +15,7 @@ use warnings;
|
||||||
use XML::LibXML;
|
use XML::LibXML;
|
||||||
use vars qw ($VERSION);
|
use vars qw ($VERSION);
|
||||||
|
|
||||||
$VERSION = "2.0207"; # VERSION TEMPLATE: DO NOT CHANGE
|
$VERSION = "2.0134"; # VERSION TEMPLATE: DO NOT CHANGE
|
||||||
|
|
||||||
sub CLONE_SKIP {
|
sub CLONE_SKIP {
|
||||||
return $XML::LibXML::__threads_shared ? 0 : 1;
|
return $XML::LibXML::__threads_shared ? 0 : 1;
|
||||||
|
|
|
@ -18,7 +18,7 @@ use XML::LibXML::Common qw(:libxml);
|
||||||
use XML::SAX::Base;
|
use XML::SAX::Base;
|
||||||
use XML::SAX::DocumentLocator;
|
use XML::SAX::DocumentLocator;
|
||||||
|
|
||||||
$VERSION = "2.0207"; # VERSION TEMPLATE: DO NOT CHANGE
|
$VERSION = "2.0134"; # VERSION TEMPLATE: DO NOT CHANGE
|
||||||
@ISA = ('XML::SAX::Base');
|
@ISA = ('XML::SAX::Base');
|
||||||
|
|
||||||
sub CLONE_SKIP {
|
sub CLONE_SKIP {
|
||||||
|
|
|
@ -9,8 +9,8 @@ XML::LibXML::Schema - XML Schema Validation
|
||||||
use XML::LibXML;
|
use XML::LibXML;
|
||||||
$doc = XML::LibXML->new->parse_file($url);
|
$doc = XML::LibXML->new->parse_file($url);
|
||||||
|
|
||||||
$xmlschema = XML::LibXML::Schema->new( location => $filename_or_url, no_network => 1 );
|
$xmlschema = XML::LibXML::Schema->new( location => $filename_or_url );
|
||||||
$xmlschema = XML::LibXML::Schema->new( string => $xmlschemastring, no_network => 1 );
|
$xmlschema = XML::LibXML::Schema->new( string => $xmlschemastring );
|
||||||
eval { $xmlschema->validate( $doc ); };
|
eval { $xmlschema->validate( $doc ); };
|
||||||
|
|
||||||
=head1 DESCRIPTION
|
=head1 DESCRIPTION
|
||||||
|
@ -27,19 +27,16 @@ validation. As of 2.6.32, libxml2 only supports decimal types up to 24 digits
|
||||||
|
|
||||||
=item new
|
=item new
|
||||||
|
|
||||||
$xmlschema = XML::LibXML::Schema->new( location => $filename_or_url, no_network => 1 );
|
$xmlschema = XML::LibXML::Schema->new( location => $filename_or_url );
|
||||||
$xmlschema = XML::LibXML::Schema->new( string => $xmlschemastring, no_network => 1 );
|
$xmlschema = XML::LibXML::Schema->new( string => $xmlschemastring );
|
||||||
|
|
||||||
The constructor of XML::LibXML::Schema needs to be called with list of
|
The constructor of XML::LibXML::Schema may get called with either one of two
|
||||||
parameters. At least location or string parameter is required to specify source
|
parameters. The parameter tells the class from which source it should generate
|
||||||
of schema. Optional parameter no_network set to 1 cause that parser would not
|
a validation schema. It is important, that each schema only have a single
|
||||||
access network and optional parameter recover set 1 cause that parser would not
|
source.
|
||||||
call die() on errors.
|
|
||||||
|
|
||||||
It is important, that each schema only have a single source.
|
|
||||||
|
|
||||||
The location parameter allows one to parse a schema from the filesystem or a
|
The location parameter allows one to parse a schema from the filesystem or a
|
||||||
(non-HTTPS) URL.
|
URL.
|
||||||
|
|
||||||
The string parameter will parse the schema from the given XML string.
|
The string parameter will parse the schema from the given XML string.
|
||||||
|
|
||||||
|
@ -69,7 +66,7 @@ Petr Pajas
|
||||||
|
|
||||||
=head1 VERSION
|
=head1 VERSION
|
||||||
|
|
||||||
2.0207
|
2.0134
|
||||||
|
|
||||||
=head1 COPYRIGHT
|
=head1 COPYRIGHT
|
||||||
|
|
||||||
|
|
|
@ -170,7 +170,7 @@ Petr Pajas
|
||||||
|
|
||||||
=head1 VERSION
|
=head1 VERSION
|
||||||
|
|
||||||
2.0207
|
2.0134
|
||||||
|
|
||||||
=head1 COPYRIGHT
|
=head1 COPYRIGHT
|
||||||
|
|
||||||
|
|
|
@ -17,7 +17,7 @@ use Carp;
|
||||||
use XML::LibXML;
|
use XML::LibXML;
|
||||||
use XML::LibXML::NodeList;
|
use XML::LibXML::NodeList;
|
||||||
|
|
||||||
$VERSION = "2.0207"; # VERSION TEMPLATE: DO NOT CHANGE
|
$VERSION = "2.0134"; # VERSION TEMPLATE: DO NOT CHANGE
|
||||||
|
|
||||||
# should LibXML XPath data types be used for simple objects
|
# should LibXML XPath data types be used for simple objects
|
||||||
# when passing parameters to extension functions (default: no)
|
# when passing parameters to extension functions (default: no)
|
||||||
|
|
|
@ -143,7 +143,7 @@ Returns namespace URI registered with C<<<<<< $prefix >>>>>>. If C<<<<<< $prefix
|
||||||
|
|
||||||
$xpc->registerVarLookupFunc($callback, $data)
|
$xpc->registerVarLookupFunc($callback, $data)
|
||||||
|
|
||||||
Registers variable lookup function C<<<<<< $callback >>>>>>. The registered function is executed by the XPath engine each time an XPath
|
Registers variable lookup function C<<<<<< $prefix >>>>>>. The registered function is executed by the XPath engine each time an XPath
|
||||||
variable is evaluated. It takes three arguments: C<<<<<< $data >>>>>>, variable name, and variable ns-URI and must return one value: a number or
|
variable is evaluated. It takes three arguments: C<<<<<< $data >>>>>>, variable name, and variable ns-URI and must return one value: a number or
|
||||||
string or any C<<<<<< XML::LibXML:: >>>>>> object that can be a result of findnodes: Boolean, Literal, Number, Node (e.g.
|
string or any C<<<<<< XML::LibXML:: >>>>>> object that can be a result of findnodes: Boolean, Literal, Number, Node (e.g.
|
||||||
Document, Element, etc.), or NodeList. For convenience, simple (non-blessed)
|
Document, Element, etc.), or NodeList. For convenience, simple (non-blessed)
|
||||||
|
@ -362,7 +362,7 @@ Petr Pajas
|
||||||
|
|
||||||
=head1 VERSION
|
=head1 VERSION
|
||||||
|
|
||||||
2.0207
|
2.0134
|
||||||
|
|
||||||
=head1 COPYRIGHT
|
=head1 COPYRIGHT
|
||||||
|
|
||||||
|
|
|
@ -52,7 +52,7 @@ Petr Pajas
|
||||||
|
|
||||||
=head1 VERSION
|
=head1 VERSION
|
||||||
|
|
||||||
2.0207
|
2.0134
|
||||||
|
|
||||||
=head1 COPYRIGHT
|
=head1 COPYRIGHT
|
||||||
|
|
||||||
|
|
|
@ -1118,7 +1118,7 @@ Sv2C( SV* scalar, const xmlChar *encoding )
|
||||||
dTHX;
|
dTHX;
|
||||||
|
|
||||||
xs_warn("SV2C: start!\n");
|
xs_warn("SV2C: start!\n");
|
||||||
if ( scalar != NULL && SvOK(scalar) ) {
|
if ( scalar != NULL && scalar != &PL_sv_undef ) {
|
||||||
STRLEN len = 0;
|
STRLEN len = 0;
|
||||||
char * t_pv =SvPV(scalar, len);
|
char * t_pv =SvPV(scalar, len);
|
||||||
xmlChar* ts = NULL;
|
xmlChar* ts = NULL;
|
||||||
|
|
|
@ -3,14 +3,14 @@
|
||||||
use strict;
|
use strict;
|
||||||
use warnings;
|
use warnings;
|
||||||
|
|
||||||
use File::Find::Object ();
|
use File::Find::Object;
|
||||||
use Path::Tiny qw/ path tempdir tempfile cwd /;
|
use IO::All;
|
||||||
|
|
||||||
my $tree = File::Find::Object->new( {}, 'lib/' );
|
my $tree = File::Find::Object->new({}, 'lib/');
|
||||||
|
|
||||||
my $version_n = shift(@ARGV);
|
my $version_n = shift(@ARGV);
|
||||||
|
|
||||||
if ( !defined($version_n) )
|
if (!defined($version_n))
|
||||||
{
|
{
|
||||||
die "Specify version number as an argument! bump-version-number.pl '0.0.1'";
|
die "Specify version number as an argument! bump-version-number.pl '0.0.1'";
|
||||||
}
|
}
|
||||||
|
@ -19,26 +19,27 @@ sub process_file
|
||||||
{
|
{
|
||||||
# The filename.
|
# The filename.
|
||||||
my ($r) = @_;
|
my ($r) = @_;
|
||||||
my $fh = path($r);
|
|
||||||
|
|
||||||
my @lines = $fh->lines_utf8;
|
my @lines = io->file($r)->getlines();
|
||||||
foreach (@lines)
|
foreach (@lines)
|
||||||
{
|
{
|
||||||
s#(\$VERSION = "|^Version )\d+\.\d+(?:\.\d+)?("|)#$1 . $version_n . $2#e;
|
s#(\$VERSION = "|^Version )\d+\.\d+(?:\.\d+)?("|)#$1 . $version_n . $2#e;
|
||||||
}
|
}
|
||||||
$fh->spew_utf8(@lines);
|
io->file($r)->print(
|
||||||
|
@lines
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
process_file('LibXML.pm');
|
process_file('LibXML.pm');
|
||||||
|
|
||||||
while ( my $r = $tree->next() )
|
while (my $r = $tree->next()) {
|
||||||
{
|
if ($r =~ m{/\.(?:svn|hg|git)\z})
|
||||||
if ( $r =~ m{/\.(?:svn|hg|git)\z} )
|
|
||||||
{
|
{
|
||||||
$tree->prune();
|
$tree->prune();
|
||||||
}
|
}
|
||||||
elsif ( $r =~ m{\.pm\z} )
|
elsif ($r =~ m{\.pm\z})
|
||||||
{
|
{
|
||||||
process_file($r);
|
process_file($r);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -3,21 +3,25 @@
|
||||||
use strict;
|
use strict;
|
||||||
use warnings;
|
use warnings;
|
||||||
|
|
||||||
use Path::Tiny qw/ path /;
|
use IO::All;
|
||||||
|
|
||||||
my ($version) =
|
my ($version) =
|
||||||
( map { m{\$VERSION *= *"([^"]+)"} ? ($1) : () }
|
(map { m{\$VERSION *= *"([^"]+)"} ? ($1) : () }
|
||||||
path('LibXML.pm')->lines_utf8() );
|
io->file('LibXML.pm')->getlines()
|
||||||
|
)
|
||||||
|
;
|
||||||
|
|
||||||
if ( !defined($version) )
|
if (!defined ($version))
|
||||||
{
|
{
|
||||||
die "Version is undefined!";
|
die "Version is undefined!";
|
||||||
}
|
}
|
||||||
|
|
||||||
my @cmd = (
|
my @cmd = (
|
||||||
"git", "tag", "-m", "Tagging the XML-LibXML release as $version",
|
"git", "tag", "-m",
|
||||||
|
"Tagging the XML-LibXML release as $version",
|
||||||
"XML-LibXML-$version",
|
"XML-LibXML-$version",
|
||||||
);
|
);
|
||||||
|
|
||||||
print join( " ", map { /\s/ ? qq{"$_"} : $_ } @cmd ), "\n";
|
print join(" ", map { /\s/ ? qq{"$_"} : $_ } @cmd), "\n";
|
||||||
exec(@cmd);
|
exec(@cmd);
|
||||||
|
|
||||||
|
|
|
@ -1,194 +0,0 @@
|
||||||
#!perl
|
|
||||||
|
|
||||||
use strict;
|
|
||||||
use warnings;
|
|
||||||
|
|
||||||
# This test was generated by Dist::Zilla::Plugin::Test::ReportPrereqs 0.027
|
|
||||||
|
|
||||||
use Test::More tests => 1;
|
|
||||||
|
|
||||||
use ExtUtils::MakeMaker;
|
|
||||||
use File::Spec;
|
|
||||||
|
|
||||||
# from $version::LAX
|
|
||||||
my $lax_version_re =
|
|
||||||
qr/(?: undef | (?: (?:[0-9]+) (?: \. | (?:\.[0-9]+) (?:_[0-9]+)? )?
|
|
||||||
|
|
|
||||||
(?:\.[0-9]+) (?:_[0-9]+)?
|
|
||||||
) | (?:
|
|
||||||
v (?:[0-9]+) (?: (?:\.[0-9]+)+ (?:_[0-9]+)? )?
|
|
||||||
|
|
|
||||||
(?:[0-9]+)? (?:\.[0-9]+){2,} (?:_[0-9]+)?
|
|
||||||
)
|
|
||||||
)/x;
|
|
||||||
|
|
||||||
# hide optional CPAN::Meta modules from prereq scanner
|
|
||||||
# and check if they are available
|
|
||||||
my $cpan_meta = "CPAN::Meta";
|
|
||||||
my $cpan_meta_pre = "CPAN::Meta::Prereqs";
|
|
||||||
my $HAS_CPAN_META = eval "require $cpan_meta; $cpan_meta->VERSION('2.120900')" && eval "require $cpan_meta_pre"; ## no critic
|
|
||||||
|
|
||||||
# Verify requirements?
|
|
||||||
my $DO_VERIFY_PREREQS = 1;
|
|
||||||
|
|
||||||
sub _max {
|
|
||||||
my $max = shift;
|
|
||||||
$max = ( $_ > $max ) ? $_ : $max for @_;
|
|
||||||
return $max;
|
|
||||||
}
|
|
||||||
|
|
||||||
sub _merge_prereqs {
|
|
||||||
my ($collector, $prereqs) = @_;
|
|
||||||
|
|
||||||
# CPAN::Meta::Prereqs object
|
|
||||||
if (ref $collector eq $cpan_meta_pre) {
|
|
||||||
return $collector->with_merged_prereqs(
|
|
||||||
CPAN::Meta::Prereqs->new( $prereqs )
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
# Raw hashrefs
|
|
||||||
for my $phase ( keys %$prereqs ) {
|
|
||||||
for my $type ( keys %{ $prereqs->{$phase} } ) {
|
|
||||||
for my $module ( keys %{ $prereqs->{$phase}{$type} } ) {
|
|
||||||
$collector->{$phase}{$type}{$module} = $prereqs->{$phase}{$type}{$module};
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return $collector;
|
|
||||||
}
|
|
||||||
|
|
||||||
my @include = qw(
|
|
||||||
|
|
||||||
);
|
|
||||||
|
|
||||||
my @exclude = qw(
|
|
||||||
|
|
||||||
);
|
|
||||||
|
|
||||||
# Add static prereqs to the included modules list
|
|
||||||
my $static_prereqs = do './t/00-report-prereqs.dd';
|
|
||||||
|
|
||||||
# Merge all prereqs (either with ::Prereqs or a hashref)
|
|
||||||
my $full_prereqs = _merge_prereqs(
|
|
||||||
( $HAS_CPAN_META ? $cpan_meta_pre->new : {} ),
|
|
||||||
$static_prereqs
|
|
||||||
);
|
|
||||||
|
|
||||||
# Add dynamic prereqs to the included modules list (if we can)
|
|
||||||
my ($source) = grep { -f } 'MYMETA.json', 'MYMETA.yml';
|
|
||||||
my $cpan_meta_error;
|
|
||||||
if ( $source && $HAS_CPAN_META
|
|
||||||
&& (my $meta = eval { CPAN::Meta->load_file($source) } )
|
|
||||||
) {
|
|
||||||
$full_prereqs = _merge_prereqs($full_prereqs, $meta->prereqs);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$cpan_meta_error = $@; # capture error from CPAN::Meta->load_file($source)
|
|
||||||
$source = 'static metadata';
|
|
||||||
}
|
|
||||||
|
|
||||||
my @full_reports;
|
|
||||||
my @dep_errors;
|
|
||||||
my $req_hash = $HAS_CPAN_META ? $full_prereqs->as_string_hash : $full_prereqs;
|
|
||||||
|
|
||||||
# Add static includes into a fake section
|
|
||||||
for my $mod (@include) {
|
|
||||||
$req_hash->{other}{modules}{$mod} = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
for my $phase ( qw(configure build test runtime develop other) ) {
|
|
||||||
next unless $req_hash->{$phase};
|
|
||||||
next if ($phase eq 'develop' and not $ENV{AUTHOR_TESTING});
|
|
||||||
|
|
||||||
for my $type ( qw(requires recommends suggests conflicts modules) ) {
|
|
||||||
next unless $req_hash->{$phase}{$type};
|
|
||||||
|
|
||||||
my $title = ucfirst($phase).' '.ucfirst($type);
|
|
||||||
my @reports = [qw/Module Want Have/];
|
|
||||||
|
|
||||||
for my $mod ( sort keys %{ $req_hash->{$phase}{$type} } ) {
|
|
||||||
next if $mod eq 'perl';
|
|
||||||
next if grep { $_ eq $mod } @exclude;
|
|
||||||
|
|
||||||
my $file = $mod;
|
|
||||||
$file =~ s{::}{/}g;
|
|
||||||
$file .= ".pm";
|
|
||||||
my ($prefix) = grep { -e File::Spec->catfile($_, $file) } @INC;
|
|
||||||
|
|
||||||
my $want = $req_hash->{$phase}{$type}{$mod};
|
|
||||||
$want = "undef" unless defined $want;
|
|
||||||
$want = "any" if !$want && $want == 0;
|
|
||||||
|
|
||||||
my $req_string = $want eq 'any' ? 'any version required' : "version '$want' required";
|
|
||||||
|
|
||||||
if ($prefix) {
|
|
||||||
my $have = MM->parse_version( File::Spec->catfile($prefix, $file) );
|
|
||||||
$have = "undef" unless defined $have;
|
|
||||||
push @reports, [$mod, $want, $have];
|
|
||||||
|
|
||||||
if ( $DO_VERIFY_PREREQS && $HAS_CPAN_META && $type eq 'requires' ) {
|
|
||||||
if ( $have !~ /\A$lax_version_re\z/ ) {
|
|
||||||
push @dep_errors, "$mod version '$have' cannot be parsed ($req_string)";
|
|
||||||
}
|
|
||||||
elsif ( ! $full_prereqs->requirements_for( $phase, $type )->accepts_module( $mod => $have ) ) {
|
|
||||||
push @dep_errors, "$mod version '$have' is not in required range '$want'";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
push @reports, [$mod, $want, "missing"];
|
|
||||||
|
|
||||||
if ( $DO_VERIFY_PREREQS && $type eq 'requires' ) {
|
|
||||||
push @dep_errors, "$mod is not installed ($req_string)";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( @reports ) {
|
|
||||||
push @full_reports, "=== $title ===\n\n";
|
|
||||||
|
|
||||||
my $ml = _max( map { length $_->[0] } @reports );
|
|
||||||
my $wl = _max( map { length $_->[1] } @reports );
|
|
||||||
my $hl = _max( map { length $_->[2] } @reports );
|
|
||||||
|
|
||||||
if ($type eq 'modules') {
|
|
||||||
splice @reports, 1, 0, ["-" x $ml, "", "-" x $hl];
|
|
||||||
push @full_reports, map { sprintf(" %*s %*s\n", -$ml, $_->[0], $hl, $_->[2]) } @reports;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
splice @reports, 1, 0, ["-" x $ml, "-" x $wl, "-" x $hl];
|
|
||||||
push @full_reports, map { sprintf(" %*s %*s %*s\n", -$ml, $_->[0], $wl, $_->[1], $hl, $_->[2]) } @reports;
|
|
||||||
}
|
|
||||||
|
|
||||||
push @full_reports, "\n";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( @full_reports ) {
|
|
||||||
diag "\nVersions for all modules listed in $source (including optional ones):\n\n", @full_reports;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( $cpan_meta_error || @dep_errors ) {
|
|
||||||
diag "\n*** WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING ***\n";
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( $cpan_meta_error ) {
|
|
||||||
my ($orig_source) = grep { -f } 'MYMETA.json', 'MYMETA.yml';
|
|
||||||
diag "\nCPAN::Meta->load_file('$orig_source') failed with: $cpan_meta_error\n";
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( @dep_errors ) {
|
|
||||||
diag join("\n",
|
|
||||||
"\nThe following REQUIRED prerequisites were not satisfied:\n",
|
|
||||||
@dep_errors,
|
|
||||||
"\n"
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
# TEST
|
|
||||||
pass;
|
|
||||||
|
|
||||||
# vim: ts=4 sts=4 sw=4 et:
|
|
|
@ -25,8 +25,6 @@ use constant XML_DECL => "<?xml version=\"1.0\"?>\n";
|
||||||
|
|
||||||
use Errno qw(ENOENT);
|
use Errno qw(ENOENT);
|
||||||
|
|
||||||
# TEST*533
|
|
||||||
|
|
||||||
##
|
##
|
||||||
# test values
|
# test values
|
||||||
my @goodWFStrings = (
|
my @goodWFStrings = (
|
||||||
|
@ -722,7 +720,7 @@ my $badXInclude = q{
|
||||||
my %badstrings = (
|
my %badstrings = (
|
||||||
SIMPLE => '<?xml version="1.0"?>'."\n<A/>\n",
|
SIMPLE => '<?xml version="1.0"?>'."\n<A/>\n",
|
||||||
);
|
);
|
||||||
my $parser = XML::LibXML->new(expand_entities => 1);
|
my $parser = XML::LibXML->new;
|
||||||
|
|
||||||
$parser->validation(1);
|
$parser->validation(1);
|
||||||
my $doc;
|
my $doc;
|
||||||
|
@ -747,7 +745,7 @@ EOXML
|
||||||
<bar/>
|
<bar/>
|
||||||
EOXML
|
EOXML
|
||||||
|
|
||||||
my $parser = XML::LibXML->new(expand_entities => 1);
|
my $parser = XML::LibXML->new;
|
||||||
$parser->validation(1);
|
$parser->validation(1);
|
||||||
|
|
||||||
eval { $parser->parse_string( $badxml ); };
|
eval { $parser->parse_string( $badxml ); };
|
||||||
|
|
|
@ -69,7 +69,7 @@ ok($dtdstr, "DTD String read");
|
||||||
# TEST
|
# TEST
|
||||||
ok ($@, '->validate throws an exception');
|
ok ($@, '->validate throws an exception');
|
||||||
|
|
||||||
my $parser = XML::LibXML->new(load_ext_dtd => 1);
|
my $parser = XML::LibXML->new();
|
||||||
# TEST
|
# TEST
|
||||||
ok ($parser->validation(1), '->validation returns 1');
|
ok ($parser->validation(1), '->validation returns 1');
|
||||||
# this one is OK as it's well formed (no DTD)
|
# this one is OK as it's well formed (no DTD)
|
||||||
|
|
|
@ -276,7 +276,7 @@ $XML::LibXML::close_cb = $close1_global_counter->cb();
|
||||||
|
|
||||||
{
|
{
|
||||||
# tests if global callbacks are working
|
# tests if global callbacks are working
|
||||||
my $parser = XML::LibXML->new(load_ext_dtd => 1);
|
my $parser = XML::LibXML->new();
|
||||||
# TEST
|
# TEST
|
||||||
ok($parser, '$parser was init');
|
ok($parser, '$parser was init');
|
||||||
|
|
||||||
|
|
|
@ -9,6 +9,5 @@ use XML::LibXML;
|
||||||
$doc = XML::LibXML::Document->new();
|
$doc = XML::LibXML::Document->new();
|
||||||
}
|
}
|
||||||
# used to get "Attempt to free unreferenced scalar" here
|
# used to get "Attempt to free unreferenced scalar" here
|
||||||
# TEST
|
ok(1, 'docfree Out of scope is OK - no "Attempt to free unreferenced scalar"');
|
||||||
pass('docfree Out of scope is OK - no "Attempt to free unreferenced scalar"');
|
|
||||||
|
|
||||||
|
|
|
@ -16,7 +16,7 @@ BEGIN {
|
||||||
use XML::LibXML;
|
use XML::LibXML;
|
||||||
|
|
||||||
if ( XML::LibXML::LIBXML_VERSION >= 20510 ) {
|
if ( XML::LibXML::LIBXML_VERSION >= 20510 ) {
|
||||||
plan tests => 17;
|
plan tests => 13;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
plan skip_all => 'Skip No RNG Support compiled';
|
plan skip_all => 'Skip No RNG Support compiled';
|
||||||
|
@ -32,7 +32,6 @@ my $badfile = "test/relaxng/badschema.rng";
|
||||||
my $validfile = "test/relaxng/demo.xml";
|
my $validfile = "test/relaxng/demo.xml";
|
||||||
my $invalidfile = "test/relaxng/invaliddemo.xml";
|
my $invalidfile = "test/relaxng/invaliddemo.xml";
|
||||||
my $demo4 = "test/relaxng/demo4.rng";
|
my $demo4 = "test/relaxng/demo4.rng";
|
||||||
my $netfile = "test/relaxng/net.rng";
|
|
||||||
|
|
||||||
print "# 1 parse schema from a file\n";
|
print "# 1 parse schema from a file\n";
|
||||||
{
|
{
|
||||||
|
@ -128,34 +127,5 @@ EOXML
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
print "# 6 check that no_network => 1 works\n";
|
|
||||||
{
|
|
||||||
my $rng = eval { XML::LibXML::RelaxNG->new( location => $netfile, no_network => 1 ) };
|
|
||||||
# TEST
|
|
||||||
like( $@, qr{I/O error : Attempt to load network entity}, 'RNG from file location with external import and no_network => 1 throws an exception.' );
|
|
||||||
# TEST
|
|
||||||
ok( !defined $rng, 'RNG from file location with external import and no_network => 1 is not loaded.' );
|
|
||||||
}
|
|
||||||
{
|
|
||||||
my $rng = eval { XML::LibXML::RelaxNG->new( string => <<'EOF', no_network => 1 ) };
|
|
||||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
|
||||||
<grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
|
|
||||||
<include href="http://example.com/xml.rng"/>
|
|
||||||
<start>
|
|
||||||
<ref name="include"/>
|
|
||||||
</start>
|
|
||||||
<define name="include">
|
|
||||||
<element name="include">
|
|
||||||
<text/>
|
|
||||||
</element>
|
|
||||||
</define>
|
|
||||||
</grammar>
|
|
||||||
EOF
|
|
||||||
# TEST
|
|
||||||
like( $@, qr{I/O error : Attempt to load network entity}, 'RNG from buffer with external import and no_network => 1 throws an exception.' );
|
|
||||||
# TEST
|
|
||||||
ok( !defined $rng, 'RNG from buffer with external import and no_network => 1 is not loaded.' );
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
} # Version >= 20510 test
|
} # Version >= 20510 test
|
||||||
|
|
23
t/26schema.t
23
t/26schema.t
|
@ -15,7 +15,7 @@ use Test::More;
|
||||||
use XML::LibXML;
|
use XML::LibXML;
|
||||||
|
|
||||||
if ( XML::LibXML::LIBXML_VERSION >= 20510 ) {
|
if ( XML::LibXML::LIBXML_VERSION >= 20510 ) {
|
||||||
plan tests => 12;
|
plan tests => 8;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
plan skip_all => 'No Schema Support compiled.';
|
plan skip_all => 'No Schema Support compiled.';
|
||||||
|
@ -27,7 +27,6 @@ my $file = "test/schema/schema.xsd";
|
||||||
my $badfile = "test/schema/badschema.xsd";
|
my $badfile = "test/schema/badschema.xsd";
|
||||||
my $validfile = "test/schema/demo.xml";
|
my $validfile = "test/schema/demo.xml";
|
||||||
my $invalidfile = "test/schema/invaliddemo.xml";
|
my $invalidfile = "test/schema/invaliddemo.xml";
|
||||||
my $netfile = "test/schema/net.xsd";
|
|
||||||
|
|
||||||
|
|
||||||
# 1 parse schema from a file
|
# 1 parse schema from a file
|
||||||
|
@ -113,23 +112,3 @@ EOF
|
||||||
is( $result, 0, 'validate() with element returns 0' );
|
is( $result, 0, 'validate() with element returns 0' );
|
||||||
}
|
}
|
||||||
|
|
||||||
# 5 check that no_network => 1 works
|
|
||||||
{
|
|
||||||
my $schema = eval { XML::LibXML::Schema->new( location => $netfile, no_network => 1 ) };
|
|
||||||
# TEST
|
|
||||||
like( $@, qr{I/O error : Attempt to load network entity}, 'Schema from file location with external import and no_network => 1 throws an exception.' );
|
|
||||||
# TEST
|
|
||||||
ok( !defined $schema, 'Schema from file location with external import and no_network => 1 is not loaded.' );
|
|
||||||
}
|
|
||||||
{
|
|
||||||
my $schema = eval { XML::LibXML::Schema->new( string => <<'EOF', no_network => 1 ) };
|
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
|
|
||||||
<xsd:import namespace="http://example.com/namespace" schemaLocation="http://example.com/xml.xsd"/>
|
|
||||||
</xsd:schema>
|
|
||||||
EOF
|
|
||||||
# TEST
|
|
||||||
like( $@, qr{I/O error : Attempt to load network entity}, 'Schema from buffer with external import and no_network => 1 throws an exception.' );
|
|
||||||
# TEST
|
|
||||||
ok( !defined $schema, 'Schema from buffer with external import and no_network => 1 is not loaded.' );
|
|
||||||
}
|
|
||||||
|
|
|
@ -49,14 +49,11 @@ my($parser, $doc);
|
||||||
|
|
||||||
$parser = XML::LibXML->new;
|
$parser = XML::LibXML->new;
|
||||||
#$parser->set_option(huge => 0);
|
#$parser->set_option(huge => 0);
|
||||||
# TEST
|
|
||||||
ok(!$parser->get_option('huge'), "huge mode disabled by default");
|
ok(!$parser->get_option('huge'), "huge mode disabled by default");
|
||||||
|
|
||||||
$doc = eval { $parser->parse_string($evil_xml); };
|
$doc = eval { $parser->parse_string($evil_xml); };
|
||||||
|
|
||||||
# TEST
|
|
||||||
isnt("$@", "", "exception thrown during parse");
|
isnt("$@", "", "exception thrown during parse");
|
||||||
# TEST
|
|
||||||
like($@, qr/entity.*loop/si, "exception refers to entity reference loop");
|
like($@, qr/entity.*loop/si, "exception refers to entity reference loop");
|
||||||
|
|
||||||
|
|
||||||
|
@ -64,11 +61,9 @@ $parser = XML::LibXML->new;
|
||||||
|
|
||||||
$doc = eval { $parser->parse_string($benign_xml); };
|
$doc = eval { $parser->parse_string($benign_xml); };
|
||||||
|
|
||||||
# TEST
|
|
||||||
is("$@", "", "no exception thrown during parse");
|
is("$@", "", "no exception thrown during parse");
|
||||||
|
|
||||||
my $body = $doc->findvalue( '/lolz' );
|
my $body = $doc->findvalue( '/lolz' );
|
||||||
# TEST
|
|
||||||
is($body, 'haha', 'entity was parsed and expanded correctly');
|
is($body, 'haha', 'entity was parsed and expanded correctly');
|
||||||
|
|
||||||
exit;
|
exit;
|
||||||
|
|
|
@ -19,7 +19,6 @@ BEGIN{
|
||||||
use_ok('XML::LibXML::Reader');
|
use_ok('XML::LibXML::Reader');
|
||||||
};
|
};
|
||||||
|
|
||||||
# TEST*100
|
|
||||||
my $file = "test/textReader/countries.xml";
|
my $file = "test/textReader/countries.xml";
|
||||||
{
|
{
|
||||||
my $reader = XML::LibXML::Reader->new(location => $file, {expand_entities => 1});
|
my $reader = XML::LibXML::Reader->new(location => $file, {expand_entities => 1});
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
use strict;
|
use strict;
|
||||||
use warnings;
|
use warnings;
|
||||||
|
|
||||||
use Test::More tests => 291;
|
use Test::More tests => 290;
|
||||||
|
|
||||||
use XML::LibXML;
|
use XML::LibXML;
|
||||||
|
|
||||||
|
@ -50,7 +50,7 @@ no_network
|
||||||
{
|
{
|
||||||
my $p = XML::LibXML->new();
|
my $p = XML::LibXML->new();
|
||||||
for my $opt (@all) {
|
for my $opt (@all) {
|
||||||
my $ret = 0;
|
my $ret = (($opt =~ /^(?:load_ext_dtd|expand_entities)$/) ? 1 : 0);
|
||||||
# TEST*$all
|
# TEST*$all
|
||||||
ok(
|
ok(
|
||||||
($p->get_option($opt)||0) == $ret
|
($p->get_option($opt)||0) == $ret
|
||||||
|
@ -110,21 +110,18 @@ no_network
|
||||||
ok( $p->get_option('recover') == 2, ' TODO : Add test name' );
|
ok( $p->get_option('recover') == 2, ' TODO : Add test name' );
|
||||||
|
|
||||||
# TEST
|
# TEST
|
||||||
ok( $p->expand_entities() == 0, 'expand_entities should default to false' );
|
ok( $p->expand_entities() == 1, ' TODO : Add test name' );
|
||||||
# TEST
|
# TEST
|
||||||
ok( $p->load_ext_dtd() == 0, 'load_ext_dtd should default to false' );
|
ok( $p->load_ext_dtd() == 1, ' TODO : Add test name' );
|
||||||
$p->load_ext_dtd(1);
|
|
||||||
# TEST
|
|
||||||
ok( $p->load_ext_dtd() == 1, 'load_ext_dtd should be true after being set to true' );
|
|
||||||
$p->load_ext_dtd(0);
|
$p->load_ext_dtd(0);
|
||||||
$p->expand_entities(1);
|
|
||||||
# TEST
|
# TEST
|
||||||
ok( $p->expand_entities() == 1, 'expand_entities should be true after being set to true' );
|
ok( $p->load_ext_dtd() == 0, ' TODO : Add test name' );
|
||||||
# TEST
|
|
||||||
ok( $p->load_ext_dtd() == 1, 'load_ext_dtd should be true after expand_entities is set to true' );
|
|
||||||
$p->expand_entities(0);
|
$p->expand_entities(0);
|
||||||
# TEST
|
# TEST
|
||||||
ok( $p->expand_entities() == 0, 'expand_entities should be false after being set to false' );
|
ok( $p->expand_entities() == 0, ' TODO : Add test name' );
|
||||||
|
$p->expand_entities(1);
|
||||||
|
# TEST
|
||||||
|
ok( $p->expand_entities() == 1, ' TODO : Add test name' );
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#!/usr/bin/env perl
|
#!/usr/bin/perl -w
|
||||||
|
|
||||||
use strict;
|
use strict;
|
||||||
use warnings;
|
use warnings;
|
||||||
|
@ -50,7 +50,6 @@ $parser->parse_string(<<'END_OF_XML');
|
||||||
</rdf:RDF></metadata></record></GetRecord></OAI-PMH>
|
</rdf:RDF></metadata></record></GetRecord></OAI-PMH>
|
||||||
END_OF_XML
|
END_OF_XML
|
||||||
|
|
||||||
# TEST
|
|
||||||
eq_or_diff(
|
eq_or_diff(
|
||||||
\@got_warnings,
|
\@got_warnings,
|
||||||
[],
|
[],
|
||||||
|
|
|
@ -1,34 +0,0 @@
|
||||||
|
|
||||||
use strict;
|
|
||||||
use warnings;
|
|
||||||
|
|
||||||
=head1 DESCRIPTION
|
|
||||||
|
|
||||||
L<https://github.com/shlomif/perl-XML-LibXML/pull/63>
|
|
||||||
|
|
||||||
This test program
|
|
||||||
|
|
||||||
use warnings;
|
|
||||||
use XML::LibXML;
|
|
||||||
|
|
||||||
my $test = XML::LibXML::Text->new({}->{bar});
|
|
||||||
|
|
||||||
produces the following warning:
|
|
||||||
|
|
||||||
$ perl ~/test.pl
|
|
||||||
Use of uninitialized value in subroutine entry at /home/sven/test.pl line 4.
|
|
||||||
|
|
||||||
This apparently happens, because Sv2C tries to catch undef values by comparing the memory location of the scalar in question to &PL_sv_undef. While PL_sv_undef certainly is an undef value, not all undef values share its memory location. The added commit fixes this, by using SvOK to correctly detect all undef values.
|
|
||||||
|
|
||||||
=cut
|
|
||||||
|
|
||||||
use Test::More tests => 1;
|
|
||||||
|
|
||||||
use XML::LibXML;
|
|
||||||
|
|
||||||
$SIG{__WARN__} = sub { die "warning " . shift . "!"; };
|
|
||||||
|
|
||||||
my $test = XML::LibXML::Text->new( {}->{bar} );
|
|
||||||
|
|
||||||
# TEST
|
|
||||||
pass("success");
|
|
|
@ -4,20 +4,12 @@ use warnings;
|
||||||
use XML::LibXML;
|
use XML::LibXML;
|
||||||
use Test::More tests => 8;
|
use Test::More tests => 8;
|
||||||
|
|
||||||
# TEST
|
|
||||||
ok(my $doc = XML::LibXML::Document->new(), 'new document');
|
ok(my $doc = XML::LibXML::Document->new(), 'new document');
|
||||||
# TEST
|
|
||||||
ok(my $elm = $doc->createElement('D:element'), 'create element');
|
ok(my $elm = $doc->createElement('D:element'), 'create element');
|
||||||
# TEST
|
|
||||||
ok($elm->setAttribute('xmlns:D', 'attribute'), 'set attribute');
|
ok($elm->setAttribute('xmlns:D', 'attribute'), 'set attribute');
|
||||||
$doc->setDocumentElement($elm); # XXX does not return true if successful
|
$doc->setDocumentElement($elm); # XXX does not return true if successful
|
||||||
# TEST
|
|
||||||
ok(my $str = $doc->toString(0), 'to string');
|
ok(my $str = $doc->toString(0), 'to string');
|
||||||
# TEST
|
|
||||||
ok(my $par = XML::LibXML->new(), 'new parser');
|
ok(my $par = XML::LibXML->new(), 'new parser');
|
||||||
# TEST
|
|
||||||
ok( eval { $par->parse_string($str) } , 'parse string');
|
ok( eval { $par->parse_string($str) } , 'parse string');
|
||||||
# TEST
|
|
||||||
is($@, "", 'parse error');
|
is($@, "", 'parse error');
|
||||||
# TEST
|
|
||||||
like($str, qr{<D:element xmlns:D="attribute"/>}, 'xml element');
|
like($str, qr{<D:element xmlns:D="attribute"/>}, 'xml element');
|
||||||
|
|
|
@ -27,7 +27,6 @@ use XML::LibXML;
|
||||||
|
|
||||||
close($fh);
|
close($fh);
|
||||||
|
|
||||||
# TEST
|
|
||||||
is($buf, '', 'No warning emitted on load_html with recover => 2.');
|
is($buf, '', 'No warning emitted on load_html with recover => 2.');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -16,35 +16,23 @@ $e2->setAttribute('attr' => 'value2');
|
||||||
my $h1 = \%{ $e1 };
|
my $h1 = \%{ $e1 };
|
||||||
my $h2 = \%{ $e2 };
|
my $h2 = \%{ $e2 };
|
||||||
|
|
||||||
# TEST
|
|
||||||
isnt $h1,$h2, 'different references';
|
isnt $h1,$h2, 'different references';
|
||||||
|
|
||||||
# TEST
|
|
||||||
is $h1->{attr}, 'value1', 'affr for el 1';
|
is $h1->{attr}, 'value1', 'affr for el 1';
|
||||||
# TEST
|
|
||||||
is $h2->{attr}, 'value2', 'affr for el 2';
|
is $h2->{attr}, 'value2', 'affr for el 2';
|
||||||
|
|
||||||
# TEST
|
|
||||||
is "$e1", '<test1 attr="value1"/>', 'stringify for el 1';
|
is "$e1", '<test1 attr="value1"/>', 'stringify for el 1';
|
||||||
# TEST
|
|
||||||
is "$e2", '<test2 attr="value2"/>', 'stringify for el 2';
|
is "$e2", '<test2 attr="value2"/>', 'stringify for el 2';
|
||||||
|
|
||||||
# TEST
|
|
||||||
cmp_ok 0+$e1, '>', 1, 'num for el 1';
|
cmp_ok 0+$e1, '>', 1, 'num for el 1';
|
||||||
# TEST
|
|
||||||
cmp_ok 0+$e2, '>', 1, 'num for el 2';
|
cmp_ok 0+$e2, '>', 1, 'num for el 2';
|
||||||
|
|
||||||
# TEST
|
|
||||||
isnt 0+$e1,0+$e2, 'num for e1 and e2 differs';
|
isnt 0+$e1,0+$e2, 'num for e1 and e2 differs';
|
||||||
|
|
||||||
my $e3 = $e1;
|
my $e3 = $e1;
|
||||||
|
|
||||||
# TEST
|
|
||||||
ok $e3 eq $e1, 'eq';
|
ok $e3 eq $e1, 'eq';
|
||||||
# TEST
|
|
||||||
ok $e3 == $e1, '==';
|
ok $e3 == $e1, '==';
|
||||||
|
|
||||||
# TEST
|
|
||||||
ok $e1 ne $e2, 'ne';
|
ok $e1 ne $e2, 'ne';
|
||||||
# TEST
|
|
||||||
ok $e1 != $e2, '!=';
|
ok $e1 != $e2, '!=';
|
||||||
|
|
|
@ -23,7 +23,6 @@ my $foo = $doc->documentElement;
|
||||||
my @children_1 = $foo->childNodes;
|
my @children_1 = $foo->childNodes;
|
||||||
my @children_2 = $foo->childNodes;
|
my @children_2 = $foo->childNodes;
|
||||||
|
|
||||||
# TEST
|
|
||||||
ok($children_1[0]->can('unique_key'), 'unique_key method available')
|
ok($children_1[0]->can('unique_key'), 'unique_key method available')
|
||||||
or exit -1;
|
or exit -1;
|
||||||
|
|
||||||
|
|
|
@ -3,15 +3,9 @@
|
||||||
use strict;
|
use strict;
|
||||||
use warnings;
|
use warnings;
|
||||||
|
|
||||||
use Test::More;
|
use Test::More tests => 3;
|
||||||
use File::Spec;
|
use File::Spec;
|
||||||
|
|
||||||
if ( ! $ENV{AUTHOR_TESTING} ) {
|
|
||||||
plan skip_all => "only for AUTHORS";
|
|
||||||
} else {
|
|
||||||
plan tests => 3;
|
|
||||||
}
|
|
||||||
|
|
||||||
sub _is_present
|
sub _is_present
|
||||||
{
|
{
|
||||||
my $path = shift;
|
my $path = shift;
|
||||||
|
@ -35,3 +29,4 @@ sub _is_present
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,12 +0,0 @@
|
||||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
|
||||||
<grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
|
|
||||||
<include href="http://example.com/xml.rng"/>
|
|
||||||
<start>
|
|
||||||
<ref name="include"/>
|
|
||||||
</start>
|
|
||||||
<define name="include">
|
|
||||||
<element name="include">
|
|
||||||
<text/>
|
|
||||||
</element>
|
|
||||||
</define>
|
|
||||||
</grammar>
|
|
|
@ -1,4 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
|
|
||||||
<xsd:import namespace="http://example.com/namespace" schemaLocation="http://example.com/xml.xsd"/>
|
|
||||||
</xsd:schema>
|
|
Loading…
Reference in New Issue