NAME

XML::DOM2 - DOM controlled, strict XML module for extentable xml objects.

VERSION

Version 0.06 - 2007-11-28

SYNOPSIS

my $xml = XML::DOM2->new( file => 'filename.xml' );
my $xml = XML::DOM2->new( data => '<xml>data</xml>' );
my $xml = XML::DOM2->new( fh   => $file_handle );

$xml->getChildren();

DESCRIPTION

  XML::DOM2 is yet _another_ perl XML module.

  Features:

  * DOM Level2 Compilence in both document, elements and attributes
  * NameSpace control for elements and attributes
  * XPath (it's just one small method once you have a good DOM)
  * Extendability:
   * Document, Element or Attribute classes can be used as base class for other
	 kinds of document, element or attribute.
   * Element and Attribute Handler allows element specific child elements and attribute objects.
   * Element and Attribute serialisation overiding.
  * Parsing with SAX (use XML::SAX::PurePerl for low dependancy installs)
  * Internal serialisation

METHODS

$class->new( file|data|fh )

Create a new xml object, it will parse a file, data or a file handle if required or will await creation of nodes.

$object->parseDocument( %p )

Parse existing xml data into a document, inputs taken from ->new;

$object->xmlify( %options ) =head2 $object->render( %options ) =head2 $object->to_xml( %options ) =head2 $object->serialise( %options ) =head2 $object->serialize( %options )

  Returns xml representation of xml document.

  Options:
	seperator - default is carage return

$class->adaptation( $name, $structure )

  Convert a perl structure and create a new xml document of it:

	$class->adaptation('xml', { foo => [ 'A', 'B', 'C' ], bar => 'D', kou => { 'A' => 1, 'B' => 2 } });

  Will convert to:

	"<xml><foo>A</foo><foo>B</foo><foo>C</foo><bar>D</bar><kou><A>1</A><B>2</B></xml>"

	$class->adaptation('xml', { 'foo' => [ { '+' => 'A', '_Letter' => '1' }, { '+' => 'B', '_Letter' => 2 } ] });

	Will convert to:

	"<xml><foo Letter="1">A</foo><foo Letter="2">B</foo></xml>"

$object->extension()

$extention = $xml->extention();

Does not work, legacy option maybe enabled in later versions.

OPTIONS

$object->namespace( $set )

Default document name space

$object->name( $set )

Document localName

$object->doctype()

Document Type object

$object->version()

XML Version

$object->encoding()

XML Encoding

$object->standalone()

XML Standalone

INTERNAL METHODS

_serialise_doctype

$xml->_serialise_doctype( seperator => "\n" );

Returns the document type in an xml header form.

_serialise_extention

$xml->_serialise_extention( seperator => "\n" );

Returns the document extentions.

_serialise_header

$xml->_serialise_header( );

The XML header, with version, encoding and standalone options.

_element_handle

$xml->_element_handle( $type, %element-options );

Returns an XML element based on $type, use to extentd element capabilties.

$object->_option( $name[, $data] )

Set or get the required option.

$object->_can_contain_element()

Does this node support element children.

$object->_document_name()

Returns the doctype name or 'xml' as default, can be extended.

$object->_credit_comment()

Returns the comment credit used in the output

COPYRIGHT

Martin Owens, doctormo@cpan.org

CREDITS

Based on SVG.pm by Ronan Oger, ronan@roasp.com

SEE ALSO

perl(1),XML::DOM2,XML::DOM2::Parser