[Fwd: NodeList (Re: CSS::SAC)]

>In all respects, a conforming Perl DOM lite implementation, via an OMG
>IDL wrapper, should be a conforming DOM implementation.  Mostly it's a
>difference in presentation.

Has this point of view been taken into consideration?

Thx,

-Stanley

Forwarded message 1

  • From: Ken MacLeod <ken@bitsko.slc.ut.us>
  • Date: 20 Mar 2001 19:14:14 -0600
  • Subject: Re: NodeList (Re: CSS::SAC)
  • To: Philippe Le Hegaret <plh@w3.org>
  • Cc: Robin Berjon <robin@knowscape.com>, Bjoern Hoehrmann <derhoermi@gmx.net>, www-dom@w3.org
  • Message-ID: <x5y9tz6hzt.fsf@bitsko.slc.ut.us>
Philippe Le Hegaret <plh@w3.org> writes:

> (moved from www-style@w3.org to www-dom@w3.org)
> 
> Robin Berjon wrote:
> > 
> > At 05:51 04/03/2001 +0100, Bjoern Hoehrmann wrote:
> > >| There is no SelectorList class (for now at
> > >| least). SelectorLists are passed as simple Perl array
> > >| refs. Likewise for the SACMediaList. This may change at some
> > >| point if I realize that there is value in making those into
> > >| objects, but for now it seems useless. If I change it, they
> > >| will still be accessible as array refs.
> > >
> > >It would be consistent with the DOM if those lists are objects
> > >with item() and getLength() methods.
> > 
> > In the new Perl DOMs, NodeLists aren't objects either, just plain
> > and simple arrayrefs.
> 
> That seems inconsistent with the DOM spec. How does it implement the
> live aspects of NodeLists if it is an array?

For a fully conformant DOM "lite", is because it doesn't use a "plain"
Perl array but instead uses a tied array as an interface to a
conformant implementation.

Having said that, and like the Python folks' Minidom, the general
populace seems to prefer a "faster" non-conformant implementation over
a fully conformant one.

For reference, I posted a draft of the proposed Perl DOM "lite" to the
perl-xml list and have a copy here:
  <http://Casbah.org/~kmacleod/orchard/perlish-dom-draft>
Note that this draft does not cover every information item right now,
but the pattern should be apparent.

In summary, Perl DOM lite differs from DOM in these ways:

  * does not have navigation or node manipulation methods (depends on
    Perl-style navigation and manipulation)
  
  * NodeList and NamedNodeMap are replaced by native Perl array and
    hash syntax (note: does not imply native implementation in
    conforming implementations)
  
  * uses a (URI,LocalName) pair to the non-NS methods in places where
    *NS() methods would be used
  
  * uses hash syntax for Element.Attributes (also supporting
    (URI,LocalName) indexes)

  * uses native String syntax (noting !~ implementation again)

  * node types are symbols, not constants (tentatively)

  * exceptions have yet to be mapped to Perl exceptions, so no further
    detail is available yet

In all respects, a conforming Perl DOM lite implementation, via an OMG
IDL wrapper, should be a conforming DOM implementation.  Mostly it's a
difference in presentation.

  -- Ken

Received on Wednesday, 21 March 2001 13:03:12 UTC