# XML::DOM-ecmascript - phpMan

## NAME
    DOM-ecmascript - [XML::Grove] and ECMA Script Language Binding

[XML::Grove] and DOM Level One
    [XML::Grove] is similar in concept to the ECMA Script Language Binding to
    DOM Level 1 Core (Appendix E of the DOM Recommendation).

    <http://www.w3.org/TR/REC-DOM-Level-1/> ecma-script-language-binding.html
    <<http://www.w3.org/TR/REC-DOM-Level-1/ecma-script-language-binding.html>>

    The ECMA Script Language Binding presents DOM properties as ECMA Script
    object properties. The same is true for [XML::Grove], [XML::Grove] presents
    DOM properties as Perl blessed hashes.

    The biggest difference between the ECMA Script Language Binding and
    [XML::Grove] is that [XML::Grove] uses a Perl hash for nodes, Perl arrays
    for NodeLists, Perl hashes for NamedNodeLists so those object classes
    don't exist in [XML::Grove]. Because those classes don't exist, you use
    ordinary Perl syntax for manipulating the DOM properties (lists and
    named node lists) instead of methods like `"nextSibling()"' or
    `"replaceChild()"'. Element attributes in [XML::Grove] are stored in Perl
    hashes; attribute types are available through the document object.

    Another difference is that [XML::Grove] attempts to marry the PerlSAX and
    DOM naming so that less (no?) name-changing occurs between using PerlSAX
    interfaces and filters and DOM modules. Where conflicts occur, the
    PerlSAX naming is used.

    [XML::Grove] uses a blessed hash for nodes, so the node type is available
    using Perl's `"ref()"' instead of using a `"nodeType()"' method and all
    class names are prefixed with `"[XML::Grove]::"'.

    The following object descriptions are the most basic and common provided
    by many PerlSAX parsers. PerlSAX parsers often provide additional
    properties or objects, refer to your PerlSAX parser documentation for
    details.

Document Object Model Level 1 Core
  Object [XML::Grove::Document]
    Contents    The children of this object. This property is an array.

    Entities    The entities declared in this document. This property is a
                hash of [XML::Grove::Entity] objects keyed by entity name.

    Notations   The notations declared in this document. This property is a
                hash of [XML::Grove::Notation] objects keyed by notation name.

  Object [XML::Grove::Element]
    Name        The tag type name for this element. This property is a
                string.

    Attributes  The attributes for this element. This property is a hash and
                it's hash values are strings (or arrays with some grove
                builders).

    Contents    The children of this object. This property is an array of
                [XML::Grove] objects.

  Object [XML::Grove::Characters]
    Data        The text of the character data. This property is a string.

  Object [XML::Grove::Comment]
    Data        The text of the character data. This property is a string.

  Object [XML::Grove::CData]
    The "CData" object is called a "CDATASection" in DOM.

    Data        The text of the character data. This property is a string.

  Object [XML::Grove::Notation]
    Name        The name of this notation. This property is a string.

    SystemId    The system identifier of this notation. This property is a
                string.

    PublicId    The public identifier of this notation. This property is a
                string.

  Object [XML::Grove::Entity]
    Name        The name of this entity. This property is a string.

    SystemId    The system identifier of this notation. This property is a
                string.

    PublicId    The public identifier of this notation. This property is a
                string.

    Notation    The notation declared for this entity. This property is
                either the name of the notation as a string or an
                "[XML::Grove::Notation]" object.

  Object [XML::Grove::PI]
    The "PI" object is called a "ProcessingInstruction" in DOM.

    Target      The target of the processing instruction. This property is a
                string.

    Data        The text of the processing instruction. This property is a
                string.

