summaryrefslogtreecommitdiff
path: root/Master/tlpkg/tlperl/lib/PPM/XML
diff options
context:
space:
mode:
authorSiep Kroonenberg <siepo@cybercomm.nl>2011-02-17 12:20:49 +0000
committerSiep Kroonenberg <siepo@cybercomm.nl>2011-02-17 12:20:49 +0000
commit316ee97c621496b0fe3267f57cce81bee44ca1e6 (patch)
treecb2cab1192b4f58a7971af19b213e980bceda4b4 /Master/tlpkg/tlperl/lib/PPM/XML
parentcd0f87b5d39480d85ad9bd4ee37f520f75bed560 (diff)
Moving old tlperl prior to committing new one
git-svn-id: svn://tug.org/texlive/trunk@21422 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/tlpkg/tlperl/lib/PPM/XML')
-rwxr-xr-xMaster/tlpkg/tlperl/lib/PPM/XML/Element.pm238
-rwxr-xr-xMaster/tlpkg/tlperl/lib/PPM/XML/PPD.pm622
-rwxr-xr-xMaster/tlpkg/tlperl/lib/PPM/XML/PPMConfig.pm425
-rwxr-xr-xMaster/tlpkg/tlperl/lib/PPM/XML/RepositorySummary.pm31
-rwxr-xr-xMaster/tlpkg/tlperl/lib/PPM/XML/ValidatingElement.pm330
5 files changed, 0 insertions, 1646 deletions
diff --git a/Master/tlpkg/tlperl/lib/PPM/XML/Element.pm b/Master/tlpkg/tlperl/lib/PPM/XML/Element.pm
deleted file mode 100755
index 055d9b15b82..00000000000
--- a/Master/tlpkg/tlperl/lib/PPM/XML/Element.pm
+++ /dev/null
@@ -1,238 +0,0 @@
-package PPM::XML::Element;
-use vars qw( $VERSION );
-$VERSION = '0.01_01';
-
-#
-# PPM::XML::Element
-#
-# Base class for XML Elements. Provides the ability to output the XML document
-# once it's been parsed using the XML::Parser module.
-#
-###############################################################################
-
-###############################################################################
-# Required inclusions.
-###############################################################################
-use HTML::Entities; # Needed for escaping char entities
-
-###############################################################################
-# Allow for creation via 'new'.
-###############################################################################
-sub new
-{
- my ($class, %args) = @_;
- bless \%args, $class;
-}
-
-###############################################################################
-# Subroutine: output
-###############################################################################
-# Outputs the entire XML document on the currently selected filehandle.
-###############################################################################
-sub output
-{
- my $self = shift;
- print $self->as_text();
-}
-
-###############################################################################
-# Subroutine: content
-###############################################################################
-# Returns a string containing all of the content of this element.
-###############################################################################
-sub content
-{
- my $self = shift;
- my $kids = $self->{'Kids'};
- return unless (defined $kids and ref($kids) eq 'ARRAY');
- my @kids = @{ $kids };
- my $text;
-
- if (@kids > 0)
- {
- foreach (@kids)
- {
- # Allow for outputting of char data
- if ((ref $_) =~ /::Characters$/o)
- { $text .= encode_entities( $_->{'Text'} ); }
- else
- { $text .= $_->as_text(); }
- }
- }
-
- return $text;
-}
-
-###############################################################################
-# Subroutine: add_child ($elemref)
-###############################################################################
-# Adds a new child element to ourselves.
-###############################################################################
-sub add_child (\$)
-{
- my $self = shift;
- my $elemref = shift;
- push( @{$self->{'Kids'}}, $elemref );
-}
-
-###############################################################################
-# Subroutine: remove_child ($elemref)
-###############################################################################
-# Removes a child element from ourselves. Returns non-zero if it was able to
-# remove the child element, and zero if it was unable to do so.
-###############################################################################
-sub remove_child
-{
- my $self = shift;
- my $elemref = shift;
-
- foreach my $idx (0 .. @{$self->{'Kids'}})
- {
- if ($self->{'Kids'}[$idx] == $elemref)
- {
- splice( @{$self->{'Kids'}}, $idx, 1 );
- return 1;
- }
- }
-
- return 0;
-}
-
-###############################################################################
-# Subroutine: add_text ($text)
-###############################################################################
-# Adds character data to the given element. Returns undef if unable to add the
-# text to this element, and returns a reference to the character data element
-# if successful.
-###############################################################################
-sub add_text
-{
- my $self = shift;
- my $text = shift;
-
- return if (!defined $text);
-
- my $type = ref $self; # Do package name magic
- $type =~ s/::[^:]+?$/::Characters/o;
-
- my $elem = new $type;
- $elem->{'Text'} = $text;
- $self->add_child( $elem );
- return $elem;
-}
-
-###############################################################################
-# Subroutine: as_text
-###############################################################################
-# Returns a string containing the entire XML document.
-###############################################################################
-sub as_text
-{
- my $self = shift;
- my $text;
-
- my $type = ref $self;
- $type =~ s/.*:://;
-
- $text = "\n<" . $type;
- foreach (sort keys %{$self})
- {
- if ($_ !~ /Text|Kids/) {
- if (defined $self->{$_} ) {
- $text .= " $_=\"" . $self->{$_} . '"'; }
- }
- }
-
- my $cont = $self->content();
- if (defined $cont)
- { $text .= '>' . $cont . '</' . $type . '>'; }
- else
- { $text .= ' />'; }
-
- $text =~ s/\n\n/\n/g;
- return $text;
-}
-
-__END__
-
-###############################################################################
-# PPD Documentation
-###############################################################################
-
-=head1 NAME
-
-PPM::XML::Element - Base element class for XML elements
-
-=head1 SYNOPSIS
-
- use PPM::XML::Element;
- @ISA = qw( PPM::XML::Element );
-
-=head1 DESCRIPTION
-
-Base element class for XML elements. To be derived from to create your own
-elements for use with the XML::Parser module. Supports output of empty
-elements using <.... />.
-
-It is recommended that you use a version of the XML::Parser module which
-includes support for Styles; by deriving your own elements from
-PPM::XML::Element and using the 'Objects' style it becomes B<much> easier
-to create your own parser.
-
-=head1 METHODS
-
-=over 4
-
-=item add_text ($text)
-
-Adds character data to the end of the element. The element created is placed
-within the same package space as the element it was created under (e.g. adding
-text to a XML::Foobar::Stuff element would put the character data into an
-XML::Foobar::Characters element). If successful, this method returns a
-reference to the newly created element.
-
-=item as_text
-
-Returns a string value containing the entire XML document from this element on
-down.
-
-=item content
-
-Returns a string value containing the entire content of this XML element. Note
-that this is quite similar to the C<as_text()> method except that it does not
-include any information about this element in particular.
-
-=item output
-
-Recursively outputs the structure of the XML document from this element on
-down.
-
-=item add_child ($elemref)
-
-Adds the child element to the list of children for this element. Note that
-the element given must be a reference to an object derived from
-C<PPM::XML::Element>.
-
-=item remove_child ($elemref)
-
-Removes the given child element from the list of children for this element.
-This method returns non-zero if it is able to locate and remove the child
-element, returning zero if it is unable to do so.
-
-=back
-
-=head1 LIMITATIONS
-
-The C<PPM::XML::Element> module has no provisions for outputting processor
-directives or external entities. It only outputs child elements and any
-character data which the elements may contain.
-
-=head1 AUTHORS
-
-Graham TerMarsch <gtermars@activestate.com>
-
-=head1 SEE ALSO
-
-L<XML::Parser>
-
-=cut
diff --git a/Master/tlpkg/tlperl/lib/PPM/XML/PPD.pm b/Master/tlpkg/tlperl/lib/PPM/XML/PPD.pm
deleted file mode 100755
index 044124fad8c..00000000000
--- a/Master/tlpkg/tlperl/lib/PPM/XML/PPD.pm
+++ /dev/null
@@ -1,622 +0,0 @@
-#
-# PPM::XML::PPD
-#
-# Definition of the PPD file format.
-#
-###############################################################################
-
-use PPM::XML::ValidatingElement;
-use Exporter;
-
-###############################################################################
-# Set up PPM::XML::PPD to export its sub-packages so that we can use them in
-# other XML documents without too much effort.
-###############################################################################
-package PPM::XML::PPD;
-use vars qw( $VERSION );
-$VERSION = '0.01_01';
-@ISA = qw( Exporter );
-%EXPORT_TAGS = ( 'elements' =>
- [ '%SOFTPKG::', '%IMPLEMENTATION::', '%DEPENDENCY::',
- '%TITLE::', '%ABSTRACT::', '%AUTHOR::',
- '%LANGUAGE::', '%LICENSE::', '%OS::',
- '%OSVERSION::', '%PERLCORE::', '%PROCESSOR::',
- '%CODEBASE::', '%INSTALL::', '%UNINSTALL::',
- '%ARCHITECTURE::', '%PROVIDE::', '%REQUIRE::',
- ] );
-Exporter::export_ok_tags( 'elements' );
-
-###############################################################################
-# PPD Element: SOFTPKG
-###############################################################################
-package PPM::XML::PPD::SOFTPKG;
-@ISA = qw( PPM::XML::ValidatingElement );
-@oattrs = qw( VERSION );
-@rattrs = qw( NAME );
-@okids = qw( ABSTRACT AUTHOR IMPLEMENTATION LICENSE
- TITLE INSTALL UNINSTALL PROVIDE REQUIRE);
-
-###############################################################################
-# PPD Element: TITLE
-###############################################################################
-package PPM::XML::PPD::TITLE;
-@ISA = qw( PPM::XML::ValidatingElement );
-
-###############################################################################
-# PPD Element: ABSTRACT
-###############################################################################
-package PPM::XML::PPD::ABSTRACT;
-@ISA = qw( PPM::XML::ValidatingElement );
-
-###############################################################################
-# PPD Element: AUTHOR
-###############################################################################
-package PPM::XML::PPD::AUTHOR;
-@ISA = qw( PPM::XML::ValidatingElement );
-
-###############################################################################
-# PPD Element: PROVIDE
-###############################################################################
-package PPM::XML::PPD::PROVIDE;
-@ISA = qw( PPM::XML::ValidatingElement );
-@oattrs = qw( VERSION );
-@rattrs = qw( NAME );
-
-###############################################################################
-# PPD Element: REQUIRE
-###############################################################################
-package PPM::XML::PPD::REQUIRE;
-@ISA = qw( PPM::XML::ValidatingElement );
-@oattrs = qw( VERSION );
-@rattrs = qw( NAME );
-
-###############################################################################
-# PPD Element: LICENSE
-###############################################################################
-package PPM::XML::PPD::LICENSE;
-@ISA = qw( PPM::XML::ValidatingElement );
-@rattrs = qw( HREF );
-
-###############################################################################
-# PPD Element: IMPLEMENTATION
-###############################################################################
-package PPM::XML::PPD::IMPLEMENTATION;
-@ISA = qw( PPM::XML::ValidatingElement );
-@okids = qw( DEPENDENCY INSTALL LANGUAGE OS OSVERSION PERLCORE PROCESSOR
- UNINSTALL ARCHITECTURE PROVIDE REQUIRE);
-@rkids = qw( CODEBASE );
-
-###############################################################################
-# PPD Element: OS
-###############################################################################
-package PPM::XML::PPD::OS;
-@ISA = qw( PPM::XML::ValidatingElement );
-@rattrs = qw( VALUE );
-sub validate_possible_attrs
-{
- my $self = shift;
- $self->compatibility_check();
- $self->SUPER::validate_possible_attrs( @_ );
-}
-
-sub validate_required_attrs
-{
- my $self = shift;
- $self->compatibility_check();
- $self->SUPER::validate_required_attrs( @_ );
-}
-
-sub compatibility_check
-{
- my $self = shift;
- if (exists $self->{NAME})
- {
- $self->{VALUE} = $self->{NAME};
- delete $self->{NAME};
- }
-}
-
-###############################################################################
-# PPD Element: OSVERSION
-###############################################################################
-package PPM::XML::PPD::OSVERSION;
-@ISA = qw( PPM::XML::ValidatingElement );
-@rattrs = qw( VALUE );
-sub validate_possible_attrs
-{
- my $self = shift;
- $self->compatibility_check();
- $self->SUPER::validate_possible_attrs( @_ );
-}
-
-sub validate_required_attrs
-{
- my $self = shift;
- $self->compatibility_check();
- $self->SUPER::validate_required_attrs( @_ );
-}
-
-sub compatibility_check
-{
- my $self = shift;
- if (exists $self->{NAME})
- {
- $self->{VALUE} = $self->{NAME};
- delete $self->{NAME};
- }
-}
-
-###############################################################################
-# PPD Element: PROCESSOR
-###############################################################################
-package PPM::XML::PPD::PROCESSOR;
-@ISA = qw( PPM::XML::ValidatingElement );
-@rattrs = qw( VALUE );
-sub validate_possible_attrs
-{
- my $self = shift;
- $self->compatibility_check();
- $self->SUPER::validate_possible_attrs( @_ );
-}
-
-sub validate_required_attrs
-{
- my $self = shift;
- $self->compatibility_check();
- $self->SUPER::validate_required_attrs( @_ );
-}
-
-sub compatibility_check
-{
- my $self = shift;
- if (exists $self->{NAME})
- {
- $self->{VALUE} = $self->{NAME};
- delete $self->{NAME};
- }
-}
-
-###############################################################################
-# PPD Element: ARCHITECTURE
-###############################################################################
-package PPM::XML::PPD::ARCHITECTURE;
-@ISA = qw( PPM::XML::ValidatingElement );
-@rattrs = qw( VALUE );
-sub validate_possible_attrs
-{
- my $self = shift;
- $self->compatibility_check();
- $self->SUPER::validate_possible_attrs( @_ );
-}
-
-sub validate_required_attrs
-{
- my $self = shift;
- $self->compatibility_check();
- $self->SUPER::validate_required_attrs( @_ );
-}
-
-sub compatibility_check
-{
- my $self = shift;
- if (exists $self->{NAME})
- {
- $self->{VALUE} = $self->{NAME};
- delete $self->{NAME};
- }
-}
-
-###############################################################################
-# PPD Element: CODEBASE
-###############################################################################
-package PPM::XML::PPD::CODEBASE;
-@ISA = qw( PPM::XML::ValidatingElement );
-@oattrs = qw( FILENAME );
-@rattrs = qw( HREF );
-
-###############################################################################
-# PPD Element: DEPENDENCY
-###############################################################################
-package PPM::XML::PPD::DEPENDENCY;
-@ISA = qw( PPM::XML::ValidatingElement );
-@rattrs = qw( NAME );
-@oattrs = qw( VERSION );
-
-###############################################################################
-# PPD Element: LANGUAGE
-###############################################################################
-package PPM::XML::PPD::LANGUAGE;
-@ISA = qw( PPM::XML::ValidatingElement );
-@rattrs = qw( VALUE );
-
-###############################################################################
-# PPD Element: PERLCORE
-###############################################################################
-package PPM::XML::PPD::PERLCORE;
-@ISA = qw( PPM::XML::ValidatingElement );
-@rattrs = qw( VERSION );
-
-###############################################################################
-# PPD Element: INSTALL
-###############################################################################
-package PPM::XML::PPD::INSTALL;
-@ISA = qw( PPM::XML::ValidatingElement );
-@oattrs = qw( HREF EXEC );
-
-###############################################################################
-# PPD Element: UNINSTALL
-###############################################################################
-package PPM::XML::PPD::UNINSTALL;
-@ISA = qw( PPM::XML::ValidatingElement );
-@oattrs = qw( HREF EXEC );
-
-__END__
-
-###############################################################################
-# POD
-###############################################################################
-
-=head1 NAME
-
-PPM::XML::PPD - PPD file format and XML parsing elements
-
-=head1 SYNOPSIS
-
- use XML::Parser;
- use PPM::XML::PPD;
-
- $p = new PPM::XML::Parser( Style => 'Objects', Pkg => 'PPM::XML::PPD' );
- ...
-
-=head1 DESCRIPTION
-
-This module provides a set of classes for parsing PPD files using the
-C<XML::Parser> module. Each of the classes is derived from
-C<PPM::XML::ValidatingElement>, with optional/required attributes/children
-enforced.
-
-=head1 MAJOR ELEMENTS
-
-=head2 SOFTPKG
-
-Defines a Perl Package. The root of a PPD document is B<always> a SOFTPKG
-element. The SOFTPKG element allows for the following attributes:
-
-=over 4
-
-=item NAME
-
-Required attribute. Name of the package (e.g. "Foobar").
-
-=item VERSION
-
-Version number of the package, in comma-delimited format (e.g. "1,0,0,0").
-
-=back
-
-=head2 IMPLEMENTATION
-
-Child of SOFTPKG, used to describe a particular implementation of the Perl
-Package. Multiple instances are valid, and should be used to describe
-different implementations/ports for different operating systems or
-architectures.
-
-=head2 DEPENDENCY
-
-Child of SOFTPKG or IMPLEMENTATION, used to indicate a dependency this Perl
-Package has on another Perl Package. Multiple instances are valid. The
-DEPENDENCY element allows for the following attributes:
-
-=over 4
-
-=item NAME
-
-Name of the package that this implementation is dependant upon.
-
-=item VERSION
-
-Version number of the dependency, in comma-delimited format (e.g. "1,0,0,0").
-
-=back
-
-=head1 MINOR ELEMENTS
-
-=head2 TITLE
-
-Child of SOFTPKG, used to state the title of the Perl Package. Only one
-instance should be present.
-
-=head2 ABSTRACT
-
-Child of SOFTPKG, used to provide a short description outlining the nature and
-purpose of the Perl Package. Only one instance should be present.
-
-=head2 AUTHOR
-
-Child of SOFTPKG, used to provide information about the author(s) of the Perl
-Package. Multiple instances are valid.
-
-=head2 LANGUAGE
-
-Child of IMPLEMENTATION, used to specify the language used within the given
-implementation of the Perl Package. Only one instance should be present.
-
-=head2 LICENSE
-
-Child of SOFTPKG, indicating the location of the appropriate license agreement
-or copyright notice for the Perl Package. Only one instance should be
-present. The LICENSE element allows for the following attributes:
-
-=over 4
-
-=item HREF
-
-Required attribute. A reference to the location of the license agreement or
-copyright notice for this package.
-
-=back
-
-=head2 OS
-
-Child of IMPLEMENTATION, used to outline the operating system required for this
-implementation of the Perl Package. Multiple instances are valid. Valid
-values can be taken from the OSD Specification and it's OS element. The OS
-element allows for the following attributes:
-
-=over 4
-
-=item VALUE
-
-The name of the operating system required for this implementation of the Perl
-Package. This value should be obtained from Config.pm as 'osname'.
-
-=back
-
-Note that previous versions of the PPD format used a 'NAME' attribute. It's
-use has been deprecated in preference of the 'VALUE' attribute. Also note that
-during validation, this element will automatically convert any existing 'NAME'
-attribute to be a 'VALUE' attribute.
-
-=head2 OSVERSION
-
-Child of IMPLEMENTATION, used to outline the required version of the operating
-system required for this implementation of the Perl Package. Only one instance
-should be present. The OSVERSION element allows for the following attributes:
-
-=over 4
-
-=item VALUE
-
-The version of the operating system required for installation of this
-implementation of the package, in a comma-delimited format (e.g. "3,1,0,0").
-
-=back
-
-Note that previous versions of the PPD format used a 'NAME' attribute. It's
-use has been deprecated in preference of the 'VALUE' attribute. Also note that
-during validation, this element will automatically convert any existing 'NAME'
-attribute to be a 'VALUE' attribute.
-
-=head2 PERLCORE
-
-Child of IMPLEMENTATION, used to specify the minimum version of the Perl core
-distribution that this Perl Package is to be used with. Only one instance
-should be present. The PERLCORE element allows for the following attributes:
-
-=over 4
-
-=item VERSION
-
-Version of the Perl core that is required for this implementation of the Perl
-Package.
-
-=back
-
-=head2 PROCESSOR
-
-Child of IMPLEMENTATION, outlining the cpu required for this implementation
-of the Perl Package. Only one instance should be present. The PROCESSOR
-element allows for the following attributes:
-
-=over 4
-
-=item VALUE
-
-CPU required for the installation of this implementation of the Perl Package.
-The following values are all valid according to the OSD Specification:
-
- x86 alpha mips sparc 680x0
-
-=back
-
-Note that previous versions of the PPD format used a 'NAME' attribute. It's
-use has been deprecated in preference of the 'VALUE' attribute. Also note that
-during validation, this element will automatically convert any existing 'NAME'
-attribute to be a 'VALUE' attribute.
-
-=head2 CODEBASE
-
-Child of IMPLEMENTATION, indicating a location where an archive of the Perl
-Package can be retrieved. Multiple instances are valid, and can be used to
-indicate multiple possible locations where the same version of the Perl Package
-can be retrieved. The CODEBASE element allows for the following attributes:
-
-=over 4
-
-=item FILENAME
-
-???
-
-=item HREF
-
-Required attribute. A reference to the location of the Perl Package
-distribution.
-
-=back
-
-=head2 INSTALL
-
-Child of IMPLEMENTATION, used to provide either a reference to an
-installation script or a series of commands which can be used to install
-the Perl Package once it has been retrieved. If the EXEC attribute is not
-specified, the value is assumed to be one or more commands, separated by
-`;;'. Each such command will be executed by the Perl `system()' function.
-Only one instance should be present. The INSTALL element allows for
-the following attributes:
-
-=over 4
-
-=item HREF
-
-Reference to an external script which should be retrieved and run as part
-of the installation process. Both filenames and URLs should be considered
-valid.
-
-=item EXEC
-
-Name of interpreter/shell used to execute the installation script.
-If the value of EXEC is `PPM_PERL', the copy of Perl that is executing
-PPM itself ($^X) is used to execute the install script.
-
-=back
-
-=head2 UNINSTALL
-
-Child of IMPLEMENTATION, used to provide either a reference to an
-uninstallation script or a raw Perl script which can be used to uninstall the
-Perl Package at a later point. Only one instance should be present. The
-UNINSTALL element allows for the following attributs:
-
-=over 4
-
-=item HREF
-
-Reference to an external script which should be retrieved and run as part of
-the removal process. Both filenames and URLs should be considered valid.
-
-=item EXEC
-
-Name of interpreter/shell used to execute the uninstallation script.
-If the value of EXEC is `PPM_PERL', the copy of Perl that is executing
-PPM itself ($^X) is used to execute the install script.
-
-=back
-
-=head1 DOCUMENT TYPE DEFINITION
-
-The DTD for PPD documents is available from the ActiveState website and the
-latest version can be found at http://www.ActiveState.com/PPM/DTD/ppd.dtd
-
-This revision of the C<PPM::XML::PPD> module implements the following DTD:
-
- <!ELEMENT SOFTPKG (ABSTRACT | AUTHOR | IMPLEMENTATION | LICENSE | TITLE)*>
- <!ATTLIST SOFTPKG NAME CDATA #REQUIRED
- VERSION CDATA #IMPLIED>
-
- <!ELEMENT TITLE (#PCDATA)>
-
- <!ELEMENT ABSTRACT (#PCDATA)>
-
- <!ELEMENT AUTHOR (#PCDATA)>
-
- <!ELEMENT LICENSE EMPTY>
- <!ATTLIST LICENSE HREF CDATA #REQUIRED>
-
- <!ELEMENT IMPLEMENTATION (CODEBASE | DEPENDENCY | LANGUAGE | OS |
- OSVERSION | PERLCORE | PROCESSOR | INSTALL |
- UNINSTALL) *>
-
- <!ELEMENT CODEBASE EMPTY>
- <!ATTLIST CODEBASE FILENAME CDATA #IMPLIED
- HREF CDATA #REQUIRED>
-
- <!ELEMENT DEPENDENCY EMPTY>
- <!ATTLIST DEPENDENCY VERSION CDATA #IMPLIED
- NAME CDATA #REQUIRED>
-
- <!ELEMENT LANGUAGE EMPTY>
- <!ATTLIST LANGUAGE VALUE CDATA #REQUIRED>
-
- <!ELEMENT OS EMPTY>
- <!ATTLIST OS VALUE CDATA #REQUIRED>
-
- <!ELEMENT OSVERSION EMPTY>
- <!ATTLIST OSVERSION VALUE CDATA #REQUIRED>
-
- <!ELEMENT PERLCORE EMPTY>
- <!ATTLIST PERLCORE VERSION CDATA #REQUIRED>
-
- <!ELEMENT PROCESSOR EMPTY>
- <!ATTLIST PROCESSOR VALUE CDATA #REQUIRED>
-
- <!ELEMENT INSTALL (#PCDATA)>
- <!ATTLIST INSTALL HREF CDATA #IMPLIED
- EXEC CDATA #IMPLIED>
-
- <!ELEMENT UNINSTALL (#PCDATA)>
- <!ATTLIST UNINSTALL HREF CDATA #IMPLIED
- EXEC CDATA #IMPLIED>
-
-=head1 SAMPLE PPD FILE
-
-The following is a sample PPD file describing the C<Math-MatrixBool> module.
-Note that this may B<not> be a current/proper description of this module and is
-for sample purposes only.
-
- <SOFTPKG NAME="Math-MatrixBool" VERSION="4,2,0,0">
- <TITLE>Math-MatrixBool</TITLE>
- <ABSTRACT>Easy manipulation of matrices of booleans (Boolean Algebra)</ABSTRACT>
- <AUTHOR>Steffen Beyer (sb@sdm.de)</AUTHOR>
- <LICENSE HREF="http://www.ActiveState.com/packages/Math-MatrixBool/license.html" />
- <IMPLEMENTATION>
- <OS VALUE="WinNT" />
- <OS VALUE="Win95" />
- <PROCESSOR VALUE="x86" />
- <CODEBASE HREF="http://www.ActiveState.com/packages/Math-MatrixBool/Math-MatrixBool-4.2-bin-1-Win32.tar.gz" />
- <DEPENDENCY NAME="Bit-Vector" />
- <INSTALL>
- </INSTALL>
- <UNINSTALL>
- </UNINSTALL>
- </IMPLEMENTATION>
-
- <IMPLEMENTATION>
- <DEPENDENCY NAME="Bit-Vector" />
- <CODEBASE HREF="&CPAN;/CPAN/modules/by-module/Math/Math-MatrixBool-4.2.tar.gz" />
- <INSTALL>
- system("make"); ;;
- system("make test"); ;;
- system("make install"); ;;
- </INSTALL>
- </IMPLEMENTATION>
- </SOFTPKG>
-
-=head1 KNOWN BUGS/ISSUES
-
-Elements which are required to be empty (e.g. LICENSE) are not enforced as
-such.
-
-Notations above about elements for which "only one instance" or "multiple
-instances" are valid are not enforced; this primarily a guideline for
-generating your own PPD files.
-
-=head1 AUTHORS
-
-Graham TerMarsch <grahamt@ActiveState.com>
-
-Murray Nesbitt <murrayn@ActiveState.com>
-
-Dick Hardt <dick_hardt@ActiveState.com>
-
-=head1 HISTORY
-
-v0.1 - Initial release
-
-=head1 SEE ALSO
-
-L<PPM::XML::ValidatingElement>,
-L<PPM::XML::Element>,
-L<XML::Parser>,
-OSD Specification (http://www.microsoft.com/standards/osd/)
-
-=cut
diff --git a/Master/tlpkg/tlperl/lib/PPM/XML/PPMConfig.pm b/Master/tlpkg/tlperl/lib/PPM/XML/PPMConfig.pm
deleted file mode 100755
index 66ac7167b61..00000000000
--- a/Master/tlpkg/tlperl/lib/PPM/XML/PPMConfig.pm
+++ /dev/null
@@ -1,425 +0,0 @@
-#
-# PPM::XML::PPMConfig
-#
-# Definition of the PPMConfig file format; configuration options for the Perl
-# Package Manager.
-#
-###############################################################################
-
-###############################################################################
-# Import everything from PPM::XML::PPD into our own namespace.
-###############################################################################
-package PPM::XML::PPMConfig;
-use vars qw( $VERSION );
-$VERSION = '0.01_01';
-
-use PPM::XML::PPD ':elements';
-
-###############################################################################
-# PPMConfig Element: Characters
-###############################################################################
-package PPM::XML::PPMConfig::Characters;
-@ISA = qw( PPM::XML::Element );
-
-###############################################################################
-# PPMConfig Element: PPMCONFIG
-###############################################################################
-package PPM::XML::PPMConfig::PPMCONFIG;
-@ISA = qw( PPM::XML::ValidatingElement );
-@okids = qw( PPMVER PLATFORM REPOSITORY OPTIONS PPMPRECIOUS PACKAGE );
-
-###############################################################################
-# PPMConfig Element: PPMVER
-###############################################################################
-package PPM::XML::PPMConfig::PPMVER;
-@ISA = qw( PPM::XML::ValidatingElement );
-
-###############################################################################
-# PPMConfig Element: PLATFORM
-###############################################################################
-package PPM::XML::PPMConfig::PLATFORM;
-@ISA = qw( PPM::XML::ValidatingElement );
-@oattrs = qw( LANGUAGE );
-@rattrs = qw( OSVALUE OSVERSION CPU );
-
-###############################################################################
-# PPMConfig Element: REPOSITORY
-###############################################################################
-package PPM::XML::PPMConfig::REPOSITORY;
-@ISA = qw( PPM::XML::ValidatingElement );
-@oattrs = qw( USERNAME PASSWORD SUMMARYFILE);
-@rattrs = qw( NAME LOCATION );
-
-###############################################################################
-# PPMConfig Element: OPTIONS
-###############################################################################
-package PPM::XML::PPMConfig::OPTIONS;
-@ISA = qw( PPM::XML::ValidatingElement );
-@rattrs = qw( IGNORECASE CLEAN CONFIRM FORCEINSTALL ROOT BUILDDIR MORE );
-@oattrs = qw( TRACE TRACEFILE VERBOSE DOWNLOADSTATUS );
-
-###############################################################################
-# PPMConfig Element: PPMPRECIOUS
-###############################################################################
-package PPM::XML::PPMConfig::PPMPRECIOUS;
-@ISA = qw( PPM::XML::ValidatingElement );
-
-###############################################################################
-# PPMConfig Element: PACKAGE
-###############################################################################
-package PPM::XML::PPMConfig::PACKAGE;
-@ISA = qw( PPM::XML::ValidatingElement );
-@okids = qw( LOCATION INSTDATE INSTROOT INSTPACKLIST INSTPPD );
-@rattrs = qw( NAME );
-
-###############################################################################
-# PPMConfig Element: LOCATION
-###############################################################################
-package PPM::XML::PPMConfig::LOCATION;
-@ISA = qw( PPM::XML::ValidatingElement );
-
-###############################################################################
-# PPMConfig Element: INSTDATE
-###############################################################################
-package PPM::XML::PPMConfig::INSTDATE;
-@ISA = qw( PPM::XML::ValidatingElement );
-
-###############################################################################
-# PPMConfig Element: INSTROOT
-###############################################################################
-package PPM::XML::PPMConfig::INSTROOT;
-@ISA = qw( PPM::XML::ValidatingElement );
-
-###############################################################################
-# PPMConfig Element: INSTPACKLIST
-###############################################################################
-package PPM::XML::PPMConfig::INSTPACKLIST;
-@ISA = qw( PPM::XML::ValidatingElement );
-
-###############################################################################
-# PPMConfig Element: INSTPPD
-###############################################################################
-package PPM::XML::PPMConfig::INSTPPD;
-@ISA = qw( PPM::XML::ValidatingElement );
-@okids = qw( SOFTPKG ); # Allow for an PPM::XML::PPD::SOFTPKG
-
-__END__
-
-###############################################################################
-# POD
-###############################################################################
-
-=head1 NAME
-
-PPM::XML::PPMConfig - PPMConfig file format and XML parsing elements
-
-=head1 SYNOPSIS
-
- use XML::Parser;
- use PPM::XML::PPMConfig;
-
- $p = new PPM::XML::Parser( Style => 'Objects', Pkg => 'PPM::XML::PPMConfig' );
- ...
-
-=head1 DESCRIPTION
-
-This module provides a set of classes for parsing PPM configuration files
-using the C<XML::Parser> module. All of the elements unique to a PPM
-configuration file are derived from C<PPM::XML::ValidatingElement>.
-There are also several classes rebuilt here which are derived from
-elements in C<PPM::XML::PPD> as we can include a PPD file within our own
-INSTPPD element.
-
-=head1 MAJOR ELEMENTS
-
-=head2 PPMCONFIG
-
-Defines a PPM configuration file. The root of a PPMConfig document is
-B<always> a PPMCONFIG element.
-
-=head2 PACKAGE
-
-Child of PPMCONFIG, used to describe a Perl Package which has already been
-installed. Multiple instances are valid. The PACKAGE element allows for the
-following attributes:
-
-=over 4
-
-=item NAME
-
-Name of the package as given in it's PPD
-
-=back
-
-=head1 MINOR ELEMENTS
-
-
-=head2 PPMVER
-
-Child of PPMCONFIG, used to state the version of PPM for which this
-configuration file is valid. A single instance should be present.
-
-=head2 PLATFORM
-
-Child of PPMCONFIG, used to specify the platform of the target machine. A
-single instance should be present. The PLATFORM element allows for the
-following attributes:
-
-=over 4
-
-=item OSVALUE
-
-Description of the local operating system as defined in the Config.pm file
-under 'osname'.
-
-=item OSVERSION
-
-Version of the local operating system.
-
-=item CPU
-
-Description of the CPU in the local system. The following list of possible
-values was taken from the OSD Specification:
-
- x86 mips alpha ppc sparc 680x0
-
-=item LANGUAGE
-
-Description of the language used on the local system as specified by the
-language codes in ISO 639.
-
-=back
-
-=head2 REPOSITORY
-
-Child of PPMCONFIG, used to specify a repository where Perl Packages can be
-found. Multiple instances are valid. The REPOSITORY element allows for the
-following attributes:
-
-=over 4
-
-=item NAME
-
-Name by which the repository will be known (e.g. "ActiveState").
-
-=item LOCATION
-
-An URL or directory where the repository can be found.
-
-=item USERNAME
-
-Optional username for a repository requiring authenticated connection.
-
-=item PASSWORD
-
-Optional password for a repository requiring authenticated connection.
-
-=item SUMMARYFILE
-
-Optional package summary filename.
-
-If this file exists on the repository, its contents can be retrieved
-using PPM::RepositorySummary(). The contents are not strictly enforced
-by PPM.pm, however ppm.pl expects this to be a file with the following
-format (for display with the 'summary' command):
-
-Agent [2.91]: supplies agentspace methods for perl5.
-Apache-OutputChain [0.06]: chain stacked Perl handlers
-[etc.]
-
-=back
-
-=head2 OPTIONS
-
-Child of PPMCONFIG, used to specify the current configuration options for PPM.
-A single instance should be present. The OPTIONS element allows for the
-following attributes:
-
-=over 4
-
-=item IGNORECASE
-
-Sets case-sensitive searching. Can be either '1' or '0'.
-
-=item CLEAN
-
-Sets removal of temporarily files. Can be either '1' or '0'.
-
-=item CONFIRM
-
-Sets confirmation of all installs/removals/upgrades. Can be either '1' or
-'0'.
-
-=item BUILDDIR
-
-Directory in which packages will be unpacked before their installation.
-
-=item ROOT
-
-Directory under which packages should be installed on the local system.
-
-=item TRACE
-
-Level of tracing (0 is no tracing, 4 is max tracing).
-
-=item TRACEFILE
-
-File to which trace information will be written.
-
-=item VERBOSE
-
-Controls whether query and search results are verbose (1 == verbose, 0 == no).
-
-=back
-
-=head2 PPMPRECIOUS
-
-Child of PPMCONFIG, used to specify the modules which PPM itself is dependant
-upon. A single instance should be present.
-
-=head2 LOCATION
-
-Child of PACKAGE, used to specify locations at which to search for updated
-versions of the PPD file for this package. Its value can be either a
-directory or an Internet address. A single instance should be present.
-
-=head2 INSTDATE
-
-Child of PACKAGE, used to specify the date on which the Perl Package was
-installed. A single instance should be present.
-
-=head2 INSTROOT
-
-Child of PACKAGE, used to specify the root directory that the Perl Package was
-installed into. A single instance should be present.
-
-=head2 INSTPACKLIST
-
-Child of PACKAGE, used to specify a reference to the packlist for this Perl
-Package; a file containing a list of all of the files which were installed. A
-single instance should be present.
-
-=head2 INSTPPD
-
-Child of PACKAGE, used to hold a copy of the PPD from which Perl Packages
-were installed. Multiple instances are valid.
-
-=head1 DOCUMENT TYPE DEFINITION
-
-The DTD for PPMConfig documents is available from the ActiveState website and
-the latest version can be found at:
- http://www.ActiveState.com/PPM/DTD/ppmconfig.dtd
-
-This revision of the C<PPM::XML::PPMConfig> module implements the following DTD:
-
- <!ELEMENT PPMCONFIG (PPMVER | PLATFORM | REPOSITORY | OPTIONS |
- PPMPRECIOUS | PACKAGE)*>
-
- <!ELEMENT PPMVER (#PCDATA)>
-
- <!ELEMENT PLATFORM EMPTY>
- <!ATTLIST PLATFORM OSVALUE CDATA #REQUIRED
- OSVERSION CDATA #REQUIRED
- CPU CDATA #REQUIRED
- LANGUAGE CDATA #IMPLIED>
-
- <!ELEMENT REPOSITORY EMPTY>
- <!ATTLIST REPOSITORY NAME CDATA #REQUIRED
- LOCATION CDATA #REQUIRED
- USERNAME CDATA #IMPLIED
- PASSWORD CDATA #IMPLIED
- SUMMARYFILE CDATA #IMPLIED>
-
- <!ELEMENT OPTIONS EMPTY>
- <!ATTLIST OPTIONS IGNORECASE CDATA #REQUIRED
- CLEAN CDATA #REQUIRED
- CONFIRM CDATA #REQUIRED
- FORCEINSTALL CDATA #REQUIRED
- ROOT CDATA #REQUIRED
- BUILDDIR CDATA #REQUIRED
- MORE CDATA #REQUIRED
- DOWNLOADSTATUS CDATA #IMPLIED
- TRACE CDATA #IMPLIED
- TRACEFILE CDATA #IMPLIED>
-
- <!ELEMENT PPMPRECIOUS (#PCDATA)>
-
- <!ELEMENT PACKAGE (LOCATION | INSTDATE | INSTROOT | INSTPACKLIST |
- INSTPPD)*>
- <!ATTLIST PACKAGE NAME CDATA #REQUIRED>
-
- <!ELEMENT LOCATION (#PCDATA)>
-
- <!ELEMENT INSTDATE (#PCDATA)>
-
- <!ELEMENT INSTROOT (#PCDATA)>
-
- <!ELEMENT INSTPACKLIST (#PCDATA)>
-
- <!ELEMENT INSTPPD (#PCDATA)>
-
-=head1 SAMPLE PPMConfig FILE
-
-The following is a sample PPMConfig file. Note that this may B<not> be a
-current description of this module and is for sample purposes only.
-
- <PPMCONFIG>
- <PPMVER>1,0,0,0</PPMVER>
- <PLATFORM CPU="x86" OSVALUE="MSWin32" OSVERSION="4,0,0,0" />
- <OPTIONS BUILDDIR="/tmp" CLEAN="1" CONFIRM="1" FORCEINSTALL="1"
- IGNORECASE="0" MORE="0" ROOT="/usr/local" TRACE="0" TRACEFILE="" DOWNLOADSTATUS="16384" />
- <REPOSITORY LOCATION="http://www.ActiveState.com/packages"
- NAME="ActiveState Package Repository" SUMMARYFILE="package.lst" />
- <PPMPRECIOUS>PPM;libnet;Archive-Tar;Compress-Zlib;libwww-perl</PPMPRECIOUS>
- <PACKAGE NAME="AtExit">
- <LOCATION>g:/packages</LOCATION>
- <INSTPACKLIST>c:/perllib/lib/site/MSWin32-x86/auto/AtExit/.packlist</INSTPACKLIST>
- <INSTROOT>c:/perllib</INSTROOT>
- <INSTDATE>Sun Mar 8 02:56:31 1998</INSTDATE>
- <INSTPPD>
- <SOFTPKG NAME="AtExit" VERSION="1,02,0,0">
- <TITLE>AtExit</TITLE>
- <ABSTRACT>Register a subroutine to be invoked at program -exit time.</ABSTRACT>
- <AUTHOR>Brad Appleton (Brad_Appleton-GBDA001@email.mot.com)</AUTHOR>
- <IMPLEMENTATION>
- <CODEBASE HREF="x86/AtExit.tar.gz" />
- </IMPLEMENTATION>
- </SOFTPKG>
- </INSTPPD>
- </PACKAGE>
- </PPMCONFIG>
-
-=head1 KNOWN BUGS/ISSUES
-
-Elements which are required to be empty (e.g. REPOSITORY) are not enforced as
-such.
-
-Notations above about elements for which "only one instance" or "multiple
-instances" are valid are not enforced; this primarily a guideline for
-generating your own PPD files.
-
-Currently, this module creates new classes within it's own namespace for all of
-the PPD elements which can be contained within the INSTPPD element. A suitable
-method for importing the entire PPM::XML::PPD:: namespace should be found
-in order to make this cleaner.
-
-=head1 AUTHORS
-
-Graham TerMarsch <grahamt@ActiveState.com>
-
-Murray Nesbitt <murrayn@ActiveState.com>
-
-Dick Hardt <dick_hardt@ActiveState.com>
-
-=head1 HISTORY
-
-v0.1 - Initial release
-
-=head1 SEE ALSO
-
-L<PPM::XML::ValidatingElement>,
-L<XML::Parser>,
-L<PPM::XML::PPD>
-.
-
-=cut
diff --git a/Master/tlpkg/tlperl/lib/PPM/XML/RepositorySummary.pm b/Master/tlpkg/tlperl/lib/PPM/XML/RepositorySummary.pm
deleted file mode 100755
index e2c4f2f4094..00000000000
--- a/Master/tlpkg/tlperl/lib/PPM/XML/RepositorySummary.pm
+++ /dev/null
@@ -1,31 +0,0 @@
-#
-# PPM::XML::PPMConfig
-#
-# Definition of the PPMConfig file format; configuration options for the Perl
-# Package Manager.
-#
-###############################################################################
-
-###############################################################################
-# Import everything from PPM::XML::PPD into our own namespace.
-###############################################################################
-package PPM::XML::RepositorySummary;
-use vars qw( $VERSION );
-$VERSION = '0.01_01';
-
-use PPM::XML::PPD ':elements';
-
-###############################################################################
-# RepositorySummary Element: Characters
-###############################################################################
-package PPM::XML::RepositorySummary::Characters;
-@ISA = qw( PPM::XML::Element );
-
-###############################################################################
-# RepositorySummary Element: REPOSITORYSUMMARY
-###############################################################################
-package PPM::XML::RepositorySummary::REPOSITORYSUMMARY;
-@ISA = qw( PPM::XML::ValidatingElement );
-@okids = qw( SOFTPKG );
-
-__END__
diff --git a/Master/tlpkg/tlperl/lib/PPM/XML/ValidatingElement.pm b/Master/tlpkg/tlperl/lib/PPM/XML/ValidatingElement.pm
deleted file mode 100755
index b9808a2d2b2..00000000000
--- a/Master/tlpkg/tlperl/lib/PPM/XML/ValidatingElement.pm
+++ /dev/null
@@ -1,330 +0,0 @@
-package PPM::XML::ValidatingElement;
-use PPM::XML::Element;
-use vars qw( $VERSION @ISA );
-$VERSION = '0.01_01';
-
-###############################################################################
-#
-# PPM::XML::ValidatingElement
-#
-# Base class for validating elements. Allows for applying DTD type
-# restrictions to elements parsed using the XML::Parser module.
-#
-###############################################################################
-
-###############################################################################
-# Define the validating element class.
-###############################################################################
-@ISA = qw( PPM::XML::Element );
-
-###############################################################################
-# Recursively validate myself and all child elements with all four types of
-# validation. Returns non-zero on success and zero on any errors.
-###############################################################################
-sub rvalidate
-{
- my $self = shift;
- my $func = shift;
- my $success = 1;
-
- $success &= $self->validate_possible_attrs( $func );
- $success &= $self->validate_required_attrs( $func );
- $success &= $self->validate_possible_kids( $func );
- $success &= $self->validate_required_kids( $func );
-
- foreach (@{$self->{Kids}})
- {
- if ((ref $_) !~ /::Characters$/o)
- { $success &= $_->rvalidate( $func ); }
- }
-
- return $success;
-}
-
-###############################################################################
-# Validate the element with all four types of validation. Returns non-zero on
-# success any zero if any errors occurred.
-###############################################################################
-sub validate
-{
- my $self = shift;
- my $func = shift;
- my $success = 1;
-
- $success &= $self->validate_possible_attrs( $func );
- $success &= $self->validate_required_attrs( $func );
- $success &= $self->validate_possible_kids( $func );
- $success &= $self->validate_required_kids( $func );
-
- return $success;
-}
-
-###############################################################################
-# Validate possible attributes. Returns non-zero on sucess, and zero if any
-# errors occurred.
-###############################################################################
-sub validate_possible_attrs
-{
- my $self = shift;
- my $func = shift;
- my $attr;
- my $type = ref $self;
- my $success = 1;
-
- my $elem = $type;
- $elem =~ s/.*:://;
-
- my @allattrs;
- push( @allattrs, @{"$type\::oattrs"}, @{"$type\::rattrs"} );
-
- # Check our list of attributes against the list of possible attributes we
- # can have.
- foreach $attr (keys %{$self})
- {
- if ( ($attr ne 'Kids') and ($attr ne 'Text') )
- {
- if (!grep( /^$attr$/, @allattrs ))
- {
- &$func( "Element '$elem' doesn't allow the '$attr' attribute." );
- $success = 0;
- }
- }
- }
-
- return $success;
-}
-
-###############################################################################
-# Validate required attributes. Returns non-zero on success and zero if any
-# errors occurred.
-###############################################################################
-sub validate_required_attrs
-{
- my $self = shift;
- my $func = shift;
- my $attr;
- my $type = ref $self;
- my $success = 1;
-
- my $elem = $type;
- $elem =~ s/.*:://;
-
- # Check the list of required attributes against the list of attributes
- # which were parsed.
- foreach $attr (@{"$type\::rattrs"})
- {
- if (!grep( /^$attr$/, (keys %{$self}) ))
- {
- &$func( "Element '$elem' must have a '$attr' attribute." );
- $success = 0;
- }
- }
-
- return $success;
-}
-
-###############################################################################
-# Validate possible child elements. Returns non-zero on success and zero if
-# any errors occurred.
-###############################################################################
-sub validate_possible_kids
-{
- my $self = shift;
- my $func = shift;
- my $kid;
- my $type = ref $self;
- my $success = 1;
-
- my $elem = $type;
- $elem =~ s/.*:://;
-
- my $base = $type;
- $base =~ s/::[^:]*?$//;
-
- my @allkids;
- push( @allkids, @{"$type\::okids"}, @{"$type\::rkids"} );
-
- foreach $kid (@{ $self->{Kids} })
- {
- my $kid_type = ref $kid;
- $kid_type =~ s/.*:://;
- next if ($kid_type eq 'Characters'); # Don't validate character data
-
- if (!grep( /^$kid_type$/, @allkids ))
- {
- &$func( "Element '$elem' cannot contain a child element '$kid_type'" );
- $success = 0;
- }
- }
-
- return $success;
-}
-
-###############################################################################
-# Validate required child elements. Returns non-zero on success and zero if
-# any errors occurred.
-###############################################################################
-sub validate_required_kids
-{
- my $self = shift;
- my $func = shift;
- my $kid;
- my $type = ref $self;
- my $success = 1;
-
- my $elem = $type;
- $elem =~ s/.*:://;
-
- my $base = $type;
- $base =~ s/::[^:]*?$//;
-
- foreach $kid (@{"$type\::rkids"})
- {
- my @kidlist = map( ref, @{$self->{Kids}} );
-
- if (!grep( /^$base\::$kid$/, @kidlist ))
- {
- &$func( "Element '$elem' must contain a '$kid' element." );
- $success = 0;
- }
- }
-
- return $success;
-}
-
-__END__
-
-###############################################################################
-# POD
-###############################################################################
-
-=head1 NAME
-
-PPM::XML::ValidatingElement - XML Element with DTD-like validation rules
-
-=head1 SYNOPSIS
-
- use PPM::XML::ValidatingElement;
-
- package PPM::XML::MyElement;
- @ISA = qw( PPM::XML::ValidatingElement );
- @oattrs = qw( BAR ); # Allow for both FOO and BAR attributes
- @rattrs = qw( FOO );
- @okids = qw( BLEARGH ); # Allow for both BLEARGH and FOOBAR children
- @rkids = qw( FOOBAR );
-
-=head1 DESCRIPTION
-
-PPM::XML::ValidatingElement inherits from PPM::XML::Element. It extends
-this class to support methods for validation to allow for DTD-like
-restrictions to be places on documents read in with the XML::Parser module.
-
-=head1 VALIDATION RULES
-
-In order to set up rules for validation of elements, each element should
-define four list values in it's own package namespace. When validating, this
-module will check to ensure that any parsed attributes or child elements are
-actually ones that are possible for this element, as well as checking to see
-that any required attributes/child elements are present.
-
-Note that an attribute/child element only has to be present in either the
-optional or required list; when checking for possible attributes/children,
-these lists will be combined.
-
-Validation lists:
-
-=over 4
-
-=item @oattrs
-
-List of optional attributes.
-
-=item @rattrs
-
-List of required attributes.
-
-=item @opkids
-
-List of optional child elements.
-
-=item @rkids
-
-List of required child elements.
-
-=back
-
-=head1 METHODS
-
-=over 4
-
-=item validate( err_handler )
-
-Validates the current element. This method calls four other methods to
-validate all of requirements for the element. Returns non-zero on success and
-zero if any errors occurred.
-
-=item rvalidate( err_handler )
-
-Validates the current element, and recursively validates all child elements.
-This method calls four other methods to validate all of the requirements for
-the element. Returns non-zero on success and zero if any errors occurred.
-
-=item validate_possible_attrs( err_handler )
-
-Checks against the list of attributes possible for this element (taken from
-@oattr and @rattr) to ensure that all of the parsed attributes are valid. If
-any parsed attributes are not in the list of possible attributes for this
-element, err_handler will be called with a message stating the error. Returns
-non-zero on success and zero if any errors occurred.
-
-=item validate_required_attrs( err_handler )
-
-Checks against the list of required attributes (taken from @rattr) to ensure
-that all of the required attributes are present and have been parsed. If any
-required attributes are missing, err_handler will be called with a message
-stating the error. Returns non-zero on success and zero if any errors
-occurred.
-
-=item validate_possible_kids( err_handler )
-
-Checks against the list of child elements this element can contain (taken from
-@okids and @rkids) to ensure that any child elements that have been read in are
-valid. If any child elements have been parsed which are not in the list of
-possible children, err_handler will be called with a message stating the
-error. Returns non-zero on success and zero if any errors occurred.
-
-=item validate_required_kids( err_handler )
-
-Checks against the lsit of required child elements (taken from @rkids) to
-ensure that all of the required child elements are present and have been
-parsed. If any of the required child elements are missing, err_handler will be
-called with a message stating the error. Returns non-zero on success and zero
-if any errors occurred.
-
-=back
-
-=head1 LIMITATIONS
-
-The PPM::XML::ValidatingElement module only provides checks for determining
-whether or not the possible/required attributes/children are present. This
-module currently has no support for determining whether or not the values
-provided are actually valid (although I imagine it wouldn't be too hard to
-add this in somewhere). This also includes elements which have been declared
-in a DTD as being 'EMPTY' elements.
-
-=head1 AUTHORS
-
-Graham TerMarsch <grahamt@activestate.com>
-
-=head1 HISTORY
-
-v0.2 - Added failure return values to each of the methods.
-
-v0.1 - Initial version
-
-=head1 SEE ALSO
-
-L<PPM::XML::Element>,
-L<XML::Parser>
-
-=cut