New upstream version 2.0207+dfsg+really+2.0134

This commit is contained in:
zhouganqing 2024-07-10 16:24:22 +08:00
parent 1d68b2273b
commit 104c8ff52a
78 changed files with 709 additions and 2586 deletions

54
Changes
View File

@ -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

View File

@ -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.

View File

@ -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;

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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"
} }

View File

@ -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'

View File

@ -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
View File

@ -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

View File

@ -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-&gt;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-&gt;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-&gt;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-&gt;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-&gt;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-&gt;new-&gt;parse_file($url);</programlisting>
<listitem> <listitem>
<funcsynopsis> <funcsynopsis>
<funcsynopsisinfo>$rngschema = XML::LibXML::RelaxNG-&gt;new( location =&gt; $filename_or_url, no_network =&gt; 1 ); <funcsynopsisinfo>$rngschema = XML::LibXML::RelaxNG-&gt;new( location =&gt; $filename_or_url );
$rngschema = XML::LibXML::RelaxNG-&gt;new( string =&gt; $xmlschemastring, no_network =&gt; 1 ); $rngschema = XML::LibXML::RelaxNG-&gt;new( string =&gt; $xmlschemastring );
$rngschema = XML::LibXML::RelaxNG-&gt;new( DOM =&gt; $doc, no_network =&gt; 1 );</funcsynopsisinfo> $rngschema = XML::LibXML::RelaxNG-&gt;new( DOM =&gt; $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-&gt;new-&gt;parse_file($url);</programlisting>
<listitem> <listitem>
<funcsynopsis> <funcsynopsis>
<funcsynopsisinfo>$xmlschema = XML::LibXML::Schema-&gt;new( location =&gt; $filename_or_url, no_network =&gt; 1 ); <funcsynopsisinfo>$xmlschema = XML::LibXML::Schema-&gt;new( location =&gt; $filename_or_url );
$xmlschema = XML::LibXML::Schema-&gt;new( string =&gt; $xmlschemastring, no_network =&gt; 1 );</funcsynopsisinfo> $xmlschema = XML::LibXML::Schema-&gt;new( string =&gt; $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-&gt;findnodes('$A[work_area/street = $B]/name');
<term>registerVarLookupFunc</term> <term>registerVarLookupFunc</term>
<listitem><funcsynopsis><funcsynopsisinfo>$xpc-&gt;registerVarLookupFunc($callback, $data)</funcsynopsisinfo></funcsynopsis> <listitem><funcsynopsis><funcsynopsisinfo>$xpc-&gt;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>

View File

@ -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&nbsp;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 &amp; 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 &ldquo;daughtered out&rdquo;. 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 &ldquo;no known issue&rdquo;, or &ldquo;(NKI)&rdquo;.</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 (&ldquo;abt&rdquo;, &ldquo;bef&rdquo;, &ldquo;aft&rdquo;, or
&ldquo;by&rdquo;) or merely estimated (&ldquo;say&rdquo;). Approximated dates imply supporting evidence which merely fails of complete accuracy, while
&ldquo;say&rdquo; 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 &ldquo;handle&rdquo; of the Principal Researcher, e.g.&nbsp;
<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&mdash;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>:&nbsp;<a href="JBR-ALLEN.htm#sourceHT">HT ALLEN</a>)</p>
<p>1--William Allen (- bef 12Nov1677 YorkCoVA)&nbsp;&nbsp;m. Judith</p>
<p>|--2-Hudson Allen [no known descendants]</p>
<p>|--2-William Allen [supposed to be father of William of New Kent &#133; 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>:&nbsp;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>.
&nbsp;It should be noted, however, that Melba Allen of Mississippi has an entirely different reconstruction of the top of this Allen tree. &nbsp; <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>|&nbsp;&nbsp;&nbsp;|--m1. Elizabeth [YOUNG??]</p>
<p>|&nbsp;&nbsp;&nbsp;|--3-Young Allen (by 1732 - 1774 WakeCoNC)</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--m. Martha [COLEMAN?]</p>
<p class="clr-Comment">|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;MILLER adds sons Robert &amp; Drury citing Young&rsquo;s will
but that document lists only the sons below;</p>
<p class="clr-Comment">|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;the bogus Drury was supposedly the progenitor of one of the IredellCoNC Allen families.</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--4-William Allen (say 1757 - after 1791)&mdash;no known issue</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--4-Coleman Allen (say 1760 - [GA?])&mdash;Colemans &amp; other descendants turn up in GA</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--4-Robin Allen (say 1763 -)&mdash;no known issue</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--4-Young Allen (say 1766 -)&mdash;no known issue</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--4-Josiah Allen (say 1766 - 1823 AnsonCoNC)</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--m. 1794 Nancy WHITE, GranvilleCoNC&mdash;Sons William, Joshua, Young, &amp; Joseph</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--4-David Allen (abt 1771 -)&mdash;removed to AnsonCoNC; no known issue</p>
<p id="A-08">
|&nbsp;&nbsp;&nbsp;|--3-Josiah Allen (abt 1733 - 1781 EdgefieldCoSC)</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--m1. say 1757 _?_</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--4-James Allen (abt 1758 - 1826 MontgomeryCoAL)</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--m1. _?_</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--5-Lemuel Young Allen (abt 1797 EdgefieldCoSC - abt 1851 RuskCoTX)</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--m2. Rebecca HUDSON</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--5- ...who had sons James Jefferson, Alsey, Madison, and Josiah (all minors in 1826)</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--4-Robert Allen (abt 1760 - 1829 MontgomeryCoAL)</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--m. Nancy HAHM, in SC&mdash;Sons Dean, Wade Hampton, James, Robert, George</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--4-Josiah Allen (abt 1762 - 1796 EdgefieldCoSC)</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--m. Jennet&mdash;Sons William Winn, and Benjamin</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--4-Young Allen (abt 1764 - abt 1834 EdgefieldCoSC)</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--m. Susanna RICHARDSON&mdash; Son Aaron</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--4-Drury Allen (1777 EdgefieldCoSC - btw 26Apr1856 and 4Feb1857 ClarkeCoAL)</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--m1. abt 1799 [Margaret WAITE], EdgefieldCoSC</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--5-Josiah Allen 1800 EdgefieldCoSC - 1891 JasperCoMS)</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--m. abt 1833 Elizabeth HOWELL, RankinCoMS</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--5-Henry Allen abt 1801 EdgefieldCoSC - 1891 JasperCoMS)</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--m2. Sarah LATHAM</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--5-Drury Allen 1806 EdgefieldCoSC - 1908 ErathCoTX)</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--m1. 1826 Elizabeth BUCKELEW, ClarkeCoAL</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--m2. 1841 Elizabeth (_?_) WOOD, ClarkeCoAL</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--6-George Washington Allen (1851 ClarkeCoAL - 1943 ErathCoTX)</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--m. 1869 Sarah Elizabeth JORDAN, ClarkeCoAL</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--7-Henry Hampton Allen (1874 ClarkeCoAL - 1964 HoodCoTX)</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--m. 1892 Ida Leona Batts</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--8-Boyd Earl Allen (1910 ErathCoTX - 1990 ErathCoTX)</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--9-Danny Ray Allen &nbsp;&nbsp;&nbsp;
<span class="clr-Descendant">*** Donna-08 *** &nbsp;&nbsp;&nbsp;</span> <span class="clr-Mutation_sentence">(has the DYS447- mutation)</span></p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--m2. 1821 Nanch/Fannie WEBB, ClarkeCoAL</p>
<p>|&nbsp;&nbsp;&nbsp;|--3-Robert Allen (abt 1735 - 1801 RichmondCoGA)</p>
<p class="clr-Comment">|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Robert settled initially with brother Josiah in old ColletonCoSC (now extinct)</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--m. abt 1760 Elizabeth WEST&mdash;Sons West, Jesse, Robert, Drury, Young, William</p>
<p class="clr-Comment">|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The wide gap between 3-Robert &amp; 3-Drury suggests that there may have been 2 fathers Robert;</p>
<p class="clr-Comment">|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;there is solid evidence at least that 3-Drury was the son of 2-Robert who died in CaswellCoNC..</p>
<p>|&nbsp;&nbsp;&nbsp;|--3-Drury Allen (1749 LunenburgCoVA - 1826 PikeCoGA)</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--m. Elizabeth YARBOROUGH</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--4-Josiah Allen (abt 1769 [ButeCoNC?] - abt 1816 GreeneCoGA)</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--m. 1791 Elizabeth BROWNING&mdash;Sons Robert A., Young Drury, and Pleasant Josiah</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--4-Clement Allen (say 1773 - bef 1823 PikeCoGA</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--m. Nancy McKISSICK&mdash;Sons Josiah, Young Stokes, John Cunningham, Drury, and James.</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--4-Stokes Allen (say 1775 - by 1831 PikeCoGA</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--m. Susanna (GRAVES) FOUSHEE&mdash;Sons Clement Young, Thomas G., Stephen W., Young Drewry</p>
<p>|&nbsp;&nbsp;&nbsp;|--m2. by 1765 Hannah (EDWARDS) HUDSON</p>
<p>|--2-Benjamin Allen (twin) (1711 NewKentCoVA - aft 1766 [HenricoCoVA?])&mdash;no known issue</p>
<p>|--2-Joseph Allen (twin) (1711 NewKentCoVA - 1771 CharlotteCoVA)</p>
<p>|&nbsp;&nbsp;&nbsp;|--m. Sarah HUNT</p>
<p>|&nbsp;&nbsp;&nbsp;|--3-Memucan Hunt Allen (1753 - abt 1833 AndersonCoKY)&mdash;sons Joseph and Charles</p>
<p>|&nbsp;&nbsp;&nbsp;|--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>|&nbsp;&nbsp;&nbsp;|--m. Sarah TINSLEY</p>
<p>|&nbsp;&nbsp;&nbsp;|--3-David Allen (1746 LunenburgCoVA - 1828 PersonCoNC)</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--m. Catherine LANIER&mdash;sons Thomas, Drury, William</p>
<p>|--2-Richard Allen (say 1718 NewKentCoVA - aft 1772 [Henrico/HanoverCoVA])</p>
<p>|&nbsp;&nbsp;&nbsp;|--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)&mdash;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>:&nbsp;<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?])&nbsp;&nbsp;m. Sally NESBITT</p>
<p>|--2-Drury Allen (abt 1753 - 1823 AnsonCoNC)</p>
<p>|&nbsp;&nbsp;&nbsp;|--m. abt 1772, Eleanor (&ldquo;Nelly&rdquo;) JARROTT</p>
<p>|&nbsp;&nbsp;&nbsp;|--3-Julius Allen (say 1773 - 1845 AnsonCoNC)</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--m. _?_ SMITH</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--4-Henderson Allen (1814 AnsonsCoNC - 1897 GA)---m. 1842 Sarah C. HAMMOND</p>
<p>|&nbsp;&nbsp;&nbsp;|--3-Thomas Allen (abt 1775 - 1858 FayetteCoTN</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--m1. _?_ SMITH</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--4-Jeremiah Allen (say 1808 AnsonCoNC - aft 1858)</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--4-Miles Allen (abt 1811 AnsonCoNC - abt 1843 [FayetteCoTN?])</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--m. abt 1832 Eliza Ann MORRIS</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--5-William Thomas Allen (1834 TN - abt 1859)</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--m. abt 1857 Rosanna HYATT</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--6-William Addison Allen (1858 AnsonCoNC - 1928 AnsonCoNC)</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--m. 1878 Louisa Charlotte TOMLINSON</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--7-William Addison Allen (1891 AnsonCoNC - 1955 AnsonCoNC)</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--8-Clinton Thomas Allen &nbsp;&nbsp;&nbsp;
<span class="clr-Descendant">*** Lynda-09 ***</span> &nbsp;&nbsp;&nbsp;<span class="clr-Mutation_sentence">(no mutations)</span></p>
<p id="A-04">
|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--4-Edmond Allen (abt 1816 NC -)</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--m. Rebecca SMITH b.AL)</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--m2. Nancy</p>
<p>|&nbsp;&nbsp;&nbsp;|--3-David Allen (abt 1780 VA - abt 1850 MarshallCoMS)</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--m1. Mary PARKER; m2. Elizabeth TURNER</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|-?4-Claiborne Allen (abt 1815 NC - aft 1850 [MarshallCoMS?])</p>
<p>|&nbsp;&nbsp;&nbsp;|--3-Benjamin Allen (abt 1781 NC - 1878 SumterCoAL)</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--m. abt 1812 Huldah PARKER</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--4-Richmond Allen (1813 NC - 1889 SumterCoAL)---m. 1834 Sarah R. ALLEN</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--4-Wiley Allen (1815 NC - 1891 SumterCoAL)---m. Elvira Ann Tiras PONDS</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(removed to AL about 1840)</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--4-William Allen (abt 1817 NC - aft 1850 [ChoctawCoAL?])---m. Frances L.</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|- 4-Enoch Allen (abt 1824 NC - 1896 Sumter/ChoctawCoAL?])---m. Jane S.</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|- 4-Hampton Allen (1829 NC - 1903)---m. Susan Elizabeth BOWERS</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|- 4-Robert Allen (abt 1834 NC - 1903)---m. Susan Elizabeth BOWERS</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|- 4-Alexander Allen, a twin (abt 1837 NC - 1903)---m. Susan Elizabeth BOWERS</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|- 4-Jeremiah Allen, a twin (abt 1837 NC -)---m. Molly SIMPSON (NKI)</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--4-other children: Jules, Dock (NKI), Norriss (NKI), Mary Ann, Harriet, Thomas (NKI)</p>
<p>|&nbsp;&nbsp;&nbsp;|--3-William Allen ( -)</p>
<p>|&nbsp;&nbsp;&nbsp;|--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>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--m. abt 1812 Mary (&ldquo;Polly&rdquo;) ALLEN (a 1st cousin)</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--4-Drury Allen (abt 1825 NC - bef 1880 [AnsonCoNC?])</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--m. Catharine Rowena BAUCOM</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--5-William Henry Allen (abt 1851 AnsonCoNC - 1924 StanlyCoNC)</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--m. 1873 Ellen CURLEE</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--6-Robert Sidney Allen (1876 AnsonCoNC - 1953 LeeCoSC)</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--m. 1903 Lilla Emile CRUMP</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--7-Flake Shellum Allen (1918 AnsonCoNC - 1963 AnsonCoNC)</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--8-Robert Shepherd Allen &nbsp;&nbsp;&nbsp;
<span class="clr-Descendant">*** Dr.Bob-04 ***</span>
&nbsp;&nbsp;&nbsp;<span class="clr-Mutation_sentence">(has the CDYb- mutation)</span></p>
<p>|--2-William Allen (abt 1757 -)</p>
<p>|--2-John Allen (abt 1759 -)&nbsp;&nbsp;m. 1783, Nancy MORGAN</p>
<p>|--2-Darling Allen (abt 1760 - 1802 AnsonCoNC)</p>
<p>|&nbsp;&nbsp;&nbsp;|--m. 1793, Judith NANCE (Sons: Robert Nance b.1792, Darling)</p>
<p>|--2-Young Allen (abt 1764 - [LunenburgCoVA?])&nbsp;&nbsp;m. Sarah POOLE</p>
<p>|--2-Pleasant Allen (abt 1766 -)&nbsp;&nbsp;m. 1787, Rebecca WATSON</p>
<p>|--2-Meredith Allen (say 1768 - 1829 HenryCoVA)&nbsp;&nbsp;m. 1788, Nancy COOPER</p>
<p>|--2-Gray Allen (abt 1770 -)&nbsp;&nbsp;m. 1791, Molly NANCE (Son: Gray)</p>
<p>|--m2. say 1775, Ann</p>
<p>|--2-Robert Allen (abt 1776 - [HenryCoVA?])&nbsp;&nbsp;m. Celia MULLINS</p>
<p>|--2-Joseph Smith Allen (1779 MecklenburgCoVA - StCharlesCoMO)</p>
<p>|&nbsp;&nbsp;&nbsp;|--m1. 1807, Sarah WADE (Son William)</p>
<p>|&nbsp;&nbsp;&nbsp;|--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>|&nbsp;&nbsp;&nbsp;|--m1. 1807 HenryCoVA, Charlotte BAILEY (Sons: Robert B., Joseph J., John Parks, Charles C.</p>
<p>|&nbsp;&nbsp;&nbsp;|--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>:&nbsp; <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>|&nbsp;&nbsp;&nbsp;|--m. say 1779 Phebe PULLEN</p>
<p>|&nbsp;&nbsp;&nbsp;|--3-James Akin Allen (abt 1782 WakeCoNC - 1862 WakeCoNC)</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--m1. Mary WYNNE</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--4-William Gaston Allen (1810 NC - 1858)&nbsp;&nbsp; m. 1839 Martha B. SHIPP, WakeCoNC</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--4-Henry Young Allen (1824 NC -)&nbsp;&nbsp;1850 Susan Ann OVERBY, GranvilleCoNC</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--4-Solomon J. Allen (abt 1831 - abt 1901)&mdash;no known issue</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--m2. 1849 Priscilla JACKSON</p>
<p>|&nbsp;&nbsp;&nbsp;|--3-John Allen (abt 1784 NC - [aft 1860 CarrollCoTN??])&nbsp;&nbsp;m. 1808 Sarah HARRISON WakeCoNC</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--4-Moses Harrison Allen (1808-1886 NC)&nbsp;&nbsp; m. 1827 Lucy Williams Rhodes, WakeCoNC</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--4-Henry Anderson Allen (1814 - aft 1880 [WakeCoNC?]).</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--m. 1837, Sarah Elizabeth ROGERS, WakeCoNC</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--4-Wyatt Marion Allen (1824 WakeCoNC - 1863 WakeCoNC)</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--m. 1855 Martha Ann BAILEY, WakeCoNC</p>
<p>|&nbsp;&nbsp;&nbsp;|--3-Henry Allen (- abt 1841 WakeCoNC)&nbsp;&nbsp;m. 1831 Aley Sharpe Allen</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--4-James H. Allen (1815 NC -)&nbsp;&nbsp;m. 1838, Elizabeth C. SPAIN</p>
<p>|&nbsp;&nbsp;&nbsp;|--3-Miles Allen (- bef 1839 GibsonCoTN)</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--m. 1810 Jinsey ("Jane") BLEDSOE</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--4-Reynold Allen (1791 NC - abt 1879 WakeCoNC)</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--m1. 1824 Betsy Ann HARRISON</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--5-William Anderson Allen (1825 NC - 1884)&nbsp;&nbsp;m. 1849 Maria G. HICKS</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--m2. 1836 Jane H. CANNON</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--5-Charles Nickolas Allen (abt 1837 -)&nbsp;&nbsp;m. 1862 Caroline V. JOHNS WakeCoNC</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--5-James Bascumb Allen (abt 1851 -)</p>
<p>|&nbsp;&nbsp;&nbsp;|--3-Young W. Allen (abt 1796 NC - aft 1880 [CarrollCoTN?]&nbsp;&nbsp; m. Ann ROGERS</p>
<p>|--2-Reynold Allen (say 1758 - abt 1812 IredellCoNC)</p>
<p>|&nbsp;&nbsp;&nbsp;|--3-William Moore Allen (abt 1784 NC - abt 1851 IredellCoNC)</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--4-Hinchea Allen&nbsp;&nbsp;m. 1835 Catherine LITTLE, LincolnCoNC</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--4-David Allen</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--4-Burrell Allen&nbsp;&nbsp;m. 1832 Rhoda L. HOKE, LincolnCoNC</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--4-John Allen</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--4-William Lee Allen</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--4-Augustus Allen</p>
<p>|&nbsp;&nbsp;&nbsp;|--3-David Allen (say 1786 -)</p>
<p>|&nbsp;&nbsp;&nbsp;|--3-Darling Allen (1788 IredellCoNC - 1867 WilkesCoNC)&nbsp;&nbsp;m. 1809 Susan WALLIS, WilkesCoNC</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--4-(1841 - 1843 IredellCoNC)&mdash;no known issue</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--4-William Wallace Allen (1827 IredellCoNC - abt 1863)&nbsp;&nbsp;m. Agnes MOORE</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--4-John Allen</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--4-Benton Carlton Allen (abt 1828 IredellCoNC -)</p>
<p>|&nbsp;&nbsp;&nbsp;|--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>:&nbsp;<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>|&nbsp;&nbsp;&nbsp;|--m. Martha ARCHER</p>
<p>|--m2. 1720 Mary (HUNT) MINGE</p>
<p>|--2-William Hunt Allen (1724 -1806 BuckinghamCoVA)&nbsp;&nbsp;m. Elizabeth</p>
<p id="A-03">
|--2-John Allen (1726 - 1754 AlbemarleCoVA)</p>
<p>|&nbsp;&nbsp;&nbsp;|--m. abt 1748 Betheniah Thomas NEVIL</p>
<p>|&nbsp;&nbsp;&nbsp;|--3-Samuel Allen (1747 - 1800 AmherstCoVA)</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--m. 1771 Hannah JOPLING</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--4-George Allen (1773 [AmherstCoVA?] - 1835 WhiteCo, later DekalbCoTN)</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--m. 1798 Phebe WALKER, VA</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--5-John W[alker?] Allen (abt 1800 [AmherstCoVA?] - aft 1870 [DeKalbCoTN?])</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--m. abt 1823 Lucy W. FLOWERS</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--6-George Allen (abt 1832 TN -)</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--6-William Allen (abt 1834 TN -)</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--6-John M. Allen (1843 SmithCoTN - 1902 WiseCoTN)</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--m. 1876 Sarah Ann PELTON TarrantCoTX</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--7-O'Guster ("Gus") Allen (1877 TarrantCoTN - 1959 OklahomaCityOK)</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--m. 1895 Frances Rosine JACKSON JackCoTX</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--8-John Elmer Allen (1907 OklahomaTerr - 1989 OklahomaCityOK)</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--9-Donald Lee Allen &nbsp;&nbsp;&nbsp;
<span class="clr-Descendant">*** Donald-05 ***</span> </p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--5-John W. had possible brothers Jesse, Samuel, William D, and George H</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--4-Jesse Allen (1777 [AmherstCoVA?] - 1857 DekalbCoTN)</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--m. Nancy WALKER va</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--4-Samuel Hunt Allen (abt 1785 AmherstCoVA? - abt 1831)</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--m. by 1810 Polly WALKER VA</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--4-John Allen (abt 1786 AmherstCoVA? - 1854)</p>
<p>|&nbsp;&nbsp;&nbsp;|--3-Jesse Allen (abt 1748 - abt 1781 BuckinghamCoVA)</p>
<p>|--2-Valentine Allen (1730 - 1797 RockinghamCoNC)&nbsp;&nbsp;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>|&nbsp;&nbsp;&nbsp;|--m. 1753 Nancy Ann ARNOLD CumberlandCoVA</p>
<p>|&nbsp;&nbsp;&nbsp;|--3-William Hunt Allen (by 1755 - abt 1822 BedfordCoTN)</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--m. 1777 Agatha SCALES RockinghamCoNC</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--4-George Hunt Allen (1780 RockinghamCoNC - 1874 MarshallCoTN)</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--m. 1804 Mary OGILVIE DavidsonCoTN</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--5-Grant Iverson Allen (1805 WilliamsonCoTN - 1891 MarshallCoTN)</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--m. 1830 Nancy Elizabeth ALLEN WilliamsonCoTN</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|
--6-Thomas Alexander Allen (1837 MarshallCoTN - 1917 MarshallCoTN)</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
---m. 1867 Mary Fredonia Jane Ewing WilliamsonCoTN</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|
--7-William Harris Allen (1876 MarshallCoTN - 1942 MarshallCoTN)</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
---m. 1909 Ruth Hunter WilliamsonCoTN</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|
--8-Thomas Hunter Allen (1912 MarshallCoTN - 1972 MarshallCoTN)</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|
--9-William Alfred Allen &nbsp;&nbsp;&nbsp;<span class="clr-Descendant">*** Bill-A-03 ***</span>
&nbsp;&nbsp;&nbsp;<span class="clr-Mutation_sentence">(has the DYS449+ mutation)</span></p>
<p>|&nbsp;&nbsp;&nbsp;|--3-George Allen (abt 1774 - 1854 MarshallCoTN)&nbsp;&nbsp;m. Annie Eliza PATRICK</p>
<p>|--2-George Hunt Allen (1734 - 1778)&nbsp;&nbsp;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>:&nbsp;<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>|&nbsp;&nbsp;&nbsp;|--m1. abt 1878 Edna Eliza TIMMONS</p>
<p>|&nbsp;&nbsp;&nbsp;|--3-William Louis Allen (1879 WiseCoTX - 1966 MercerCoIL)</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--m. abt 1910 Maude SWARTOUT</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--4-James Elwood Allen (1927 MercerCoIL - 2008 RockIslandCoIL)</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--m. Violet Irene GEORGE</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--5-William Bernard Allen (1949 -)</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|
--6-William Bernard Allen (1971) &nbsp;&nbsp;&nbsp;<span class="clr-Descendant">*** Bill-B-01 ***</span>
&nbsp;&nbsp;&nbsp;<span class="clr-Mutation_sentence">(has the DYS449+ mutation)</span></p>
<p>|&nbsp;&nbsp;&nbsp;|--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>|&nbsp;&nbsp;&nbsp;|--3-Tincy boy Kenneth Allen (1912 CottleCoTX - 1992 WiseCoTX)</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--m. Dovie Elizabeth BARTON</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--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>:&nbsp;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>|&nbsp;&nbsp;&nbsp;|--m. abt 1884 Martha Lou CHISENHALL</p>
<p>|&nbsp;&nbsp;&nbsp;|--3-James Lawrence Allen (1891 LamarCoTX -)</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--m. Essie Velma RATLIFF</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--4-Winston Allen &nbsp;&nbsp;&nbsp;
<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>:&nbsp;<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- &amp; 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>|&nbsp;&nbsp;&nbsp;|--m. 1837 Mary A. HAYNES, ElbertCoGA</p>
<p>|&nbsp;&nbsp;&nbsp;|--3-James Monroe Allen (1846 ElbertCoGA - 1921 AndersonCoSC)</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--m. 1867 Mary Elizabeth Frances SANDERS, HartCoGA</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--4-James Henry Edward Allen (1869 HartCoGA - 1943 HartCoGA)</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--m. 1910 Mary Lula OWENS, HartCoGA </p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--5-Ira Wilson Allen 1914 HartCoGA - 1976 HartCoGA)</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--6-Ira Wilson Allen, Jr &nbsp;&nbsp;&nbsp;
<span class="clr-Descendant">*** LouDean-07 ***</span> &nbsp;&nbsp;&nbsp;
<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>:&nbsp;<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>|&nbsp;&nbsp;&nbsp;|--m. abt 1880, Savannah</p>
<p>|&nbsp;&nbsp;&nbsp;|--3-Morrison Allen (1881 AL - 1976)</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--m. Lula Elizabeth WHITE</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--4-Owen Tillman Allen (1909 ColbertCoAL - 1958)</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--5-Owen Allen &nbsp;&nbsp;&nbsp;<span class="clr-Descendant">*** Owen-10 ***</span>
&nbsp;&nbsp;&nbsp;<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>:&nbsp;<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)&mdash;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>|&nbsp;&nbsp;&nbsp;|--m. 1898 Lillie Louisa BEACH, ElPasoTX</p>
<p>|&nbsp;&nbsp;&nbsp;|--3-Marion Thomas Allen (1905 DimmitCoTX - 1986)</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--4-William Douglas Allen &nbsp;&nbsp;&nbsp;<span class="clr-Descendant">*** Camilla-06 ***</span>
&nbsp;&nbsp;&nbsp;<span class="clr-Mutation_sentence">(no mutations&mdash;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>:&nbsp;<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>|&nbsp;&nbsp;&nbsp;|--m. 1862 Caddie VANNERSON, HopkinsCoTX</p>
<p>|&nbsp;&nbsp;&nbsp;|--3-Robert Allen Nesbitt (1889 TX - 1934)</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--m. Robbie RIKE</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--4-Robert Allen Nesbitt, Jr. (1914 AdaOK - 1988 GalvestonTX)</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--5-Geoffrey Robert Nesbitt
&nbsp;&nbsp;&nbsp;<span class="clr-Descendant">*** Geoff-11 ***</span>
&nbsp;&nbsp;&nbsp;<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>:&nbsp;<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>|&nbsp;&nbsp;&nbsp;|--m1. abt 1903 Neety PALMER</p>
<p>|&nbsp;&nbsp;&nbsp;|--3-Willie Dalton Harris (abt 1904 MarionCoAL - 1992)</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--4-Hugh E. Harris
&nbsp;&nbsp;&nbsp;<span class="clr-Descendant">*** Sandra-13 ***</span>
&nbsp;&nbsp;&nbsp;<span class="clr-Mutation_sentence">(has the CDYb+ mutation)</span></p>
<p>|&nbsp;&nbsp;&nbsp;|--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>:&nbsp;<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>|&nbsp;&nbsp;&nbsp;|--m. 1854 Emily L. SPURLIN, BossierParLA</p>
<p>|&nbsp;&nbsp;&nbsp;|--3-John Claud Allen (1869 BossierParLA - 1927 BossierParLA)</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--m. 1896 Mary Louwellen ALLEN</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--4-Claud Tarkington Allen (1900 BossierParLA - 1990 GreenvilleCoSC)</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--m. 1921 Iona Olive ARNOLD, CaddoParLA</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--5-John Clyde Allen (1931 BossierParLA - 2003)</p>
<p>|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;|--6-Cary Neal Allen
&nbsp;&nbsp;&nbsp;<span class="clr-Descendant">*** Cary-02 ***</span>
&nbsp;&nbsp;&nbsp;<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 />&nbsp;&nbsp;&nbsp; GA, Cherokee Co AL
<br />&nbsp;&nbsp;&nbsp; m. Francis [TOWERS?]
<br />&nbsp;&nbsp;&nbsp;<strong>Descendants</strong>:<a href="JBR-ALLEN.htm#A-14">Winston</a>&mdash;<a href="#A-14">A-14</a></p>
<p class="multiline-entry"> <a href="#A-02">Gideon (1804 - 1875)</a>
<br />&nbsp;&nbsp;&nbsp; NC, Twiggs Co GA, &amp; Bossier Parish LA
<br />&nbsp;&nbsp;&nbsp; m. Mary Ann HORN
<br />&nbsp;&nbsp;&nbsp;<strong>Descendants</strong>:<a href="JBR-ALLEN.htm#A-02">Cary</a>&mdash;<a href="#A-02">A-02</a></p>
<p class="multiline-entry"> <a href="#A-06">James (1814 - 1868)</a>
<br />&nbsp;&nbsp;&nbsp; Montgomery Co NC, Gonzales Co TX
<br />&nbsp;&nbsp;&nbsp; m1. Camilla Catherine Tores Lilly
<br />&nbsp;&nbsp;&nbsp; m2. Mary Ann KEY
<br />&nbsp;&nbsp;&nbsp;<strong>Descendants</strong>:<a href="JBR-ALLEN.htm#A-06">Camilla</a>&mdash;<a href="#A-06">A-06</a></p>
<p class="multiline-entry"> <a href="#A-01">James T (abt 1832 - 1900)</a>
<br />&nbsp;&nbsp;&nbsp; Wise Co TX
<br />&nbsp;&nbsp;&nbsp; m. Sarah ("Sallie") C. Miller
<br />&nbsp;&nbsp;&nbsp;<strong>Descendants</strong>:
<a href="JBR-ALLEN.htm#A-01">Bill-B</a>&mdash;<a href="#A-01">A-01</a>,
<a href="JBR-ALLEN.htm#A-12">Fletcher</a>&mdash;<a href="#A-01">A-12</a></p>
<p class="multiline-entry"> <a href="#A-07">Joseph (say 1760 - 1833)</a>
<br />&nbsp;&nbsp;&nbsp;ElbertCoGA
<br />&nbsp;&nbsp;&nbsp; m. Agnes PATTERSON
<br />&nbsp;&nbsp;&nbsp;<strong>Descendants</strong>:<a href="JBR-ALLEN.htm#A-07">LouDean</a>&mdash;<a href="#A-07">A-07</a></p>
<p class="multiline-entry"> <a href="#Reynold1728">Reynold (say 1728 - abt 1808)</a>
<br />&nbsp;&nbsp;&nbsp;Granville, Johnston, Wake, and Iredell Cos NC
<br />&nbsp;&nbsp;&nbsp; m. Mary</p>
<p class="multiline-entry"> <a href="#Robert1680">Robert (say 1680 - abt 1756)</a>
<br />&nbsp;&nbsp;&nbsp;NewKent, Goochland, ;&amp; Henrico Cos VA
<br />&nbsp;&nbsp;&nbsp; m1. Elizabeth [WALKER?]
<br />&nbsp;&nbsp;&nbsp; m2. Sarah [Winston??]
<br />&nbsp;&nbsp;&nbsp;<strong>Descendants</strong>:<a href="JBR-ALLEN.htm#A-08">Donna</a>&mdash;<a href="#A-08">A-08</a></p>
<p class="multiline-entry"> <a href="#A-10">Russell (abt 1828 - bef 1880)</a>
<br />&nbsp;&nbsp;&nbsp; Forsyth Co GA, &amp; Franklin Co AL
<br />&nbsp;&nbsp;&nbsp; m. Millie
<br />&nbsp;&nbsp;&nbsp;<strong>Descendants</strong>:<a href="JBR-ALLEN.htm#A-10">Owen</a>&mdash;<a href="#A-10">A-10</a></p>
<p class="multiline-entry"> <a href="#William1691">William (say 1691 - 1752)</a>
<br />&nbsp;&nbsp;&nbsp;NewKent, Goochland, &amp; Albemarle Cos VA
<br />&nbsp;&nbsp;&nbsp; m1. Hannah [Watson?]
<br />&nbsp;&nbsp;&nbsp; m2. Mary (Hunt) Minge
<br />&nbsp;&nbsp;&nbsp;<strong>Descendants</strong>:
<a href="JBR-ALLEN.htm#A-03">Bill-A</a>&mdash;<a href="#A-03">A-03</a>,
<a href="JBR-ALLEN.htm#A-05">Donald</a>&mdash;<a href="#William1691">A-05</a></p>
<p class="marginBot1">
<a href="#William1725">William (say 1725 - 1789)</a>
<br />&nbsp;&nbsp;&nbsp; Mecklenburg Co VA
<br />&nbsp;&nbsp;&nbsp; m. _?_ Wray
<br />&nbsp;&nbsp;&nbsp;<strong>Descendants</strong>:
<a href="JBR-ALLEN.htm#A-04">Dr.Bob</a>&mdash;<a href="#A-04">A-04</a>,
<a href="JBR-ALLEN.htm#A-09">Lynda</a>&mdash;<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 />&nbsp;&nbsp;&nbsp; Marion Co AL
<br />&nbsp;&nbsp;&nbsp; m1. Lucy M. [PATE?]
<br />&nbsp;&nbsp;&nbsp;<strong>Descendants</strong>:<a href="JBR-ALLEN.htm#A-13">Sandra</a>&mdash;<a href="#A-13">A-13</a></p>
<p class="multiline-entry"> <a href="#A-11">Robert N. NESBITT (1831 - aft 1910)</a>
<br />&nbsp;&nbsp;&nbsp; TN, then Upshur, Hopkins, &amp; Hunt Cos TX
<br />&nbsp;&nbsp;&nbsp; m. Martha E. Shepard
<br />&nbsp;&nbsp;&nbsp;<strong>Descendants</strong>:<a href="JBR-ALLEN.htm#A-11">Geoff</a>&mdash;<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 />&copy; 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>

View File

@ -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&#39; Ó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 &amp; 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/">&lt;font color=&quot;#000000&quot; &gt;&lt;p&gt;&lt;Img align=&quot;left&quot; border=&quot;0&quot; height=&quot;1&quot; width=&quot;1&quot; style=&quot;border:0;float:left;margin:0;&quot; vspace=&quot;0&quot; hspace=&quot;0&quot; src=&quot;http://feeds.feedblitz.com/~/i/15124587/1ir2jk/thedieline&quot;&gt;&lt;div xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;&lt;p&gt;&lt;a href=&quot;http://feeds.feedblitz.com/~/t/0/1ir2jk/thedieline/~http://www.thedieline.com/.a/6a00d8345250f069e20133f1a97caa970b-popup&quot; onclick=&quot;window.open( this.href, &amp;#39;_blank&amp;#39;, &amp;#39;width=640,height=480,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0&amp;#39; ); return false&quot; style=&quot;display: inline;&quot;&gt;&lt;img alt=&quot;1&quot; class=&quot;asset asset-image at-xid-6a00d8345250f069e20133f1a97caa970b &quot; src=&quot;http://www.thedieline.com/.a/6a00d8345250f069e20133f1a97caa970b-550wi&quot; style=&quot;width: 540px; &quot; &gt;&lt;/a&gt; &lt;br&gt;Lisbon based &lt;a href=&quot;http://feeds.feedblitz.com/~/t/0/1ir2jk/thedieline/~http://&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://feeds.feedblitz.com/~/t/0/1ir2jk/thedieline/~http://www.ntgj.org/&quot; target=&quot;_blank&quot;&gt;NT.GJ&lt;/a&gt; designed this cherry liqueur concept which features actual cherries within...&lt;/div&gt;&lt;p&gt;&lt;a href=&quot;http://feeds.feedblitz.com/~/15124587/1ir2jk/thedieline&quot;&gt;CLICK HERE to read the rest of the post...&lt;/a&gt; &lt;!-- _!fbztxtlnk!_ http://feeds.feedblitz.com/~/15124587/1ir2jk/thedieline --&gt;&amp;raquo;&lt;/p&gt;&lt;/font&gt;&lt;p&gt;&lt;div style=&quot;clear:both;&quot;&gt;&lt;em&gt;(Want to see more packaging? Visit &lt;a href=&quot;http://www.TheDieline.com&quot;&gt;TheDieline.com&lt;/a&gt;!)&lt;/em&gt;&lt;p&gt;&lt;/div&gt;&lt;/p&gt;
&lt;div style=&quot;clear:both;&quot;&gt;&lt;a title=&quot;Tweet with Bit.ly&quot; href=&quot;http://bit.ly/?v=3&amp;ref=feedblitz&amp;u=http%3a%2f%2fwww.thedieline.com%2fblog%2f2010%2f06%2fginja-d-%25c3%25b3bidos.html&amp;t=Ginja+d%26%2339%3b+Ã&ldquo;bidos&quot;&gt;&lt;img height=&quot;16&quot; border=&quot;0&quot; src=&quot;http://assets.feedblitz.com/images/icons/bitly.jpg&quot;&gt;&lt;/a&gt; &lt;a title=&quot;Add to Delicious&quot; href=&quot;http://delicious.com/post?url=http%3a%2f%2fwww.thedieline.com%2fblog%2f2010%2f06%2fginja-d-%25c3%25b3bidos.html&amp;title=Ginja+d%26%2339%3b+Ã&ldquo;bidos&quot;&gt;&lt;img height=&quot;16&quot; border=&quot;0&quot; src=&quot;http://assets.feedblitz.com/images/icons/delicious.jpg&quot;&gt;&lt;/a&gt; &lt;a title=&quot;Digg This&quot; href=&quot;http://digg.com/submit?phase=2&amp;url=http%3a%2f%2fwww.thedieline.com%2fblog%2f2010%2f06%2fginja-d-%25c3%25b3bidos.html&amp;title=Ginja+d%26%2339%3b+Ã&ldquo;bidos&quot;&gt;&lt;img height=&quot;16&quot; border=&quot;0&quot; src=&quot;http://assets.feedblitz.com/images/icons/digg.jpg&quot;&gt;&lt;/a&gt; &lt;a title=&quot;Add to FaceBook&quot; href=&quot;http://facebook.com/share.php?u=http%3a%2f%2fwww.thedieline.com%2fblog%2f2010%2f06%2fginja-d-%25c3%25b3bidos.html&amp;t=Ginja+d%26%2339%3b+Ã&ldquo;bidos&quot;&gt;&lt;img height=&quot;16&quot; border=&quot;0&quot; src=&quot;http://assets.feedblitz.com/images/icons/facebook.jpg&quot;&gt;&lt;/a&gt; &lt;a title=&quot;Add to Google Bookmarks&quot; href=&quot;http://google.com/bookmarks/mark?op=edit&amp;bkmk=http%3a%2f%2fwww.thedieline.com%2fblog%2f2010%2f06%2fginja-d-%25c3%25b3bidos.html&amp;title=Ginja+d%26%2339%3b+Ã&ldquo;bidos&quot;&gt;&lt;img height=&quot;16&quot; border=&quot;0&quot; src=&quot;http://assets.feedblitz.com/images/icons/google.jpg&quot;&gt;&lt;/a&gt; &lt;a title=&quot;Stumble This&quot; href=&quot;http://stumbleupon.com/submit?url=http%3a%2f%2fwww.thedieline.com%2fblog%2f2010%2f06%2fginja-d-%25c3%25b3bidos.html&amp;title=Ginja+d%26%2339%3b+Ã&ldquo;bidos&quot;&gt;&lt;img height=&quot;16&quot; border=&quot;0&quot; src=&quot;http://assets.feedblitz.com/images/icons/stumble.jpg&quot;&gt;&lt;/a&gt; &lt;a title=&quot;Tweet This&quot; href=&quot;http://twitter.com/home?status=Ginja+d%26%2339%3b+Ã&ldquo;bidos+http%3a%2f%2fwww.thedieline.com%2fblog%2f2010%2f06%2fginja-d-%25c3%25b3bidos.html&quot;&gt;&lt;img height=&quot;16&quot; border=&quot;0&quot; src=&quot;http://assets.feedblitz.com/images/icons/twitter.jpg&quot;&gt;&lt;/a&gt; &lt;a title=&quot;Subscribe by RSS&quot; href=&quot;http://feeds.feedblitz.com/thedieline&quot;&gt;&lt;img height=&quot;16&quot; border=&quot;0&quot; src=&quot;http://assets.feedblitz.com/images/rss.gif&quot;&gt;&lt;/a&gt; &lt;a title=&quot;View Comments&quot; href=&quot;http://www.thedieline.com/blog/2010/06/ginja-d-%C3%B3bidos.html&quot;&gt;&lt;img height=16 border=0 src=&quot;http://assets.feedblitz.com/images/comment.png&quot;&gt;&lt;/a&gt; &lt;/div&gt;</content></entry></feed>

File diff suppressed because one or more lines are too long

493
inc/Devel/CheckLib.pm Normal file
View File

@ -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;

View File

@ -121,7 +121,7 @@ Petr Pajas
=head1 VERSION =head1 VERSION
2.0207 2.0134
=head1 COPYRIGHT =head1 COPYRIGHT

View File

@ -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
{ {

View File

@ -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,

View File

@ -45,7 +45,7 @@ Petr Pajas
=head1 VERSION =head1 VERSION
2.0207 2.0134
=head1 COPYRIGHT =head1 COPYRIGHT

View File

@ -46,7 +46,7 @@ Petr Pajas
=head1 VERSION =head1 VERSION
2.0207 2.0134
=head1 COPYRIGHT =head1 COPYRIGHT

View File

@ -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);

View File

@ -116,7 +116,7 @@ Petr Pajas
=head1 VERSION =head1 VERSION
2.0207 2.0134
=head1 COPYRIGHT =head1 COPYRIGHT

View File

@ -129,7 +129,7 @@ Petr Pajas
=head1 VERSION =head1 VERSION
2.0207 2.0134
=head1 COPYRIGHT =head1 COPYRIGHT

View File

@ -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;

View File

@ -683,7 +683,7 @@ Petr Pajas
=head1 VERSION =head1 VERSION
2.0207 2.0134
=head1 COPYRIGHT =head1 COPYRIGHT

View File

@ -27,7 +27,7 @@ Petr Pajas
=head1 VERSION =head1 VERSION
2.0207 2.0134
=head1 COPYRIGHT =head1 COPYRIGHT

View File

@ -89,7 +89,7 @@ Petr Pajas
=head1 VERSION =head1 VERSION
2.0207 2.0134
=head1 COPYRIGHT =head1 COPYRIGHT

View File

@ -382,7 +382,7 @@ Petr Pajas
=head1 VERSION =head1 VERSION
2.0207 2.0134
=head1 COPYRIGHT =head1 COPYRIGHT

View File

@ -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;

View File

@ -17,7 +17,7 @@ Petr Pajas
=head1 VERSION =head1 VERSION
2.0207 2.0134
=head1 COPYRIGHT =head1 COPYRIGHT

View File

@ -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;
} }

View File

@ -244,7 +244,7 @@ Petr Pajas
=head1 VERSION =head1 VERSION
2.0207 2.0134
=head1 COPYRIGHT =head1 COPYRIGHT

View File

@ -280,7 +280,7 @@ Petr Pajas
=head1 VERSION =head1 VERSION
2.0207 2.0134
=head1 COPYRIGHT =head1 COPYRIGHT

View File

@ -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,

View File

@ -141,7 +141,7 @@ Petr Pajas
=head1 VERSION =head1 VERSION
2.0207 2.0134
=head1 COPYRIGHT =head1 COPYRIGHT

View File

@ -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

View File

@ -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,

View File

@ -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,

View File

@ -74,7 +74,7 @@ Petr Pajas
=head1 VERSION =head1 VERSION
2.0207 2.0134
=head1 COPYRIGHT =head1 COPYRIGHT

View File

@ -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

View File

@ -94,7 +94,7 @@ Petr Pajas
=head1 VERSION =head1 VERSION
2.0207 2.0134
=head1 COPYRIGHT =head1 COPYRIGHT

View File

@ -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;

View File

@ -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

View File

@ -58,7 +58,7 @@ Petr Pajas
=head1 VERSION =head1 VERSION
2.0207 2.0134
=head1 COPYRIGHT =head1 COPYRIGHT

View File

@ -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

View File

@ -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;

View File

@ -47,7 +47,7 @@ Petr Pajas
=head1 VERSION =head1 VERSION
2.0207 2.0134
=head1 COPYRIGHT =head1 COPYRIGHT

View File

@ -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;

View File

@ -38,7 +38,7 @@ Petr Pajas
=head1 VERSION =head1 VERSION
2.0207 2.0134
=head1 COPYRIGHT =head1 COPYRIGHT

View File

@ -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;

View File

@ -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 {

View File

@ -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

View File

@ -170,7 +170,7 @@ Petr Pajas
=head1 VERSION =head1 VERSION
2.0207 2.0134
=head1 COPYRIGHT =head1 COPYRIGHT

View File

@ -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)

View File

@ -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

View File

@ -52,7 +52,7 @@ Petr Pajas
=head1 VERSION =head1 VERSION
2.0207 2.0134
=head1 COPYRIGHT =head1 COPYRIGHT

View File

@ -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;

View File

@ -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);
} }
} }

View File

@ -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);

View File

@ -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:

View File

@ -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 ); };

View File

@ -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)

View File

@ -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');

View File

@ -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"');

View File

@ -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

View File

@ -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.' );
}

View File

@ -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;

View File

@ -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});

View File

@ -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' );
} }
{ {

View File

@ -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,
[], [],

View File

@ -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");

View File

@ -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');

View File

@ -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.');
} }

View File

@ -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, '!=';

View File

@ -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;

View File

@ -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
} }
} }
} }

View File

@ -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>

View File

@ -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>