DOM Level 3 Loading -- node filtering

The use of the DOMBuilderFilter is not specified as fully as an
implementor needs in order to assure an interoperable implementation.
Specific questions which need to be answered include:

1.  Is an implementor allowed to change the value of the whatToShow
    attribute once parsing has begun (such as within the startNode()
    or endNode() implementation?  While it is not difficult to support
    changes to this attribute, it does have an effect on what sort of
    optimizations are available to the parser and which are available
    to the filter provider.

2.  The constants ACCEPT, REJECT, and SKIP do not appear to be
    defined.  The corresponding NodeFilter constants have different
    names.  The constants on the NodeFilter interface should probably
    not be re-used here since the load feature is not otherwise
    dependent on the traversal feature.

3.  The specification states that the endNode() method may remove the
    node being examined from the result document, but do not comment
    on the interaction of doing so and returning REJECT.  If the node
    has already been removed and the method returns REJECT, should the
    implementation raise NOT_FOUND_ERR or should it simply continue?

4.  Similarly, removing or moving the node passed to startNode() and
    returning REJECT or SKIP needs to be described in excruciating
    detail.

5.  It is not explicitly stated that when a filter is set, nodes which
    are not passed to the startNode()/endNode() methods are implicitly
    accepted.  This should be made explicit in the specification.

6.  If whitespace-in-element-content is set to false, and a filter
    returns SKIP for a mixed-content element in element content
    (assume the content of the inner element includes whitespace-only
    Text nodes in an unfiltered DOM), should whitespace from the inner
    & outer elements be merged, or should only whitespace from the
    outer element be removed?  If whitespace should be merged and
    whitespace-in-element-content is true, what should happen with the
    whitespaceInElementContent Text attribute?

I'm sure some of these questions seem to reflect contrived examples,
but these issues can be reasonably expected in the world-as-deployed.

I appreciate the consideration of such concerns by the working group
and look forward to open discussion of these issues.


  -Fred

-- 
Fred L. Drake, Jr.  <fdrake at acm.org>
PythonLabs at Zope Corporation

Received on Monday, 25 February 2002 19:58:51 UTC