Often, XML messages and schemas are created by automatic tools. These
tools may provide very nice user interfaces, but tend to produce
horrible XML. If you have to read these ugly products, you are in for
pain. The purpose of this module (and the script "xmlrewrite" which is
part of this distribution) is to be able to rewrite XML messages and
Schema's into something maintainable.
The main difference between this module and other beautifiers is that
the clean-up is based on schema rules. For instance, it is permitted
to remove blanks around and inside integers, but not in strings.
Beautifiers which do not look into the schema have only limited
possibilities for cleanup, or may accidentally change the message
content.
Parse XML and specify what and how to keep/process for individual
tags.
This module is a minimalist parser for the useful bits of XML.
XML::SAX consists of several framework classes for using and building
Perl SAX2 XML parsers, filters, and drivers. It is designed around the
need to be able to "plug in" different SAX parsers to an application
without requiring programmer intervention. Those of you familiar with
the DBI will be right at home. Some of the designs come from the Java
JAXP specification (SAX part), only without the javaness.
XML::Schematron - Perl implementation of the Schematron.
Seamus Venasse <svenasse@polaris.ca>
XML::SematicDiff provides a way to compare the contents and structure
of two XML documents. By default, it returns a list of hashrefs
where each hashref describes a single difference between the two
docs.
XML::Writer is a simple Perl module for writing XML documents: it
takes care of constructing markup and escaping data correctly, and by
default, it also performs a significant amount of well-formedness
checking on the output, to make certain (for example) that start and
end tags match, that there is exactly one document element, and that
there are not duplicate attribute names.
This is a small and simple package that takes the output of XML::Parser as
a tree, and gives simple methods for accessing the structure of an XML
document. It is very lightweight, but provides the simplest access to an XML
document possible. It does not subclass XML::Parser; rather, it is meant to
serve purely as an object struct for an outgoing tree.
This module provides an XPath engine, that can be re-used by other
module/classes that implement trees.
In order to use the XPath engine, nodes in the user module need to
mimick DOM nodes. The degree of similitude between the user tree and a
DOM dictates how much of the XPath features can be used. A module
implementing all of the DOM should be able to use this module very
easily (you might need to add the cmp method on nodes in order to get
ordered result sets).
This code is a more or less direct copy of the XML::XPath module by
Matt Sergeant. I only removed the XML processing part to remove the
dependency on XML::Parser, applied a couple of patches, renamed a
whole lot of methods to make Pod::Coverage happy, and changed the docs.
This module has an easy way to access/create XML data. It's based on the HASH
tree that is made of the XML data, and enable a dynamic access to it with the
Perl syntax for Hashe and Array, without needing to care if you have a Hashe or
an Array in the tree. In other words, each point in the tree work as a Hash and
an Array at the same time!
The module alson handle automatically binary data (encoding/decoding to/from
base64), CDATA (like contents with <tags>) and Unicode. It can be used to
create XML files, load XML from the Web (just pasting an URL as a file path)
and it has an easy way to send XML data through socket, just adding the length
of the data in the <?xml?> header.
You can use XML::Smart with XML::Parser, or with the 2 standart parsers of
XML::Smart: