In XML-Parser-Nodes we have:

XMLNodeWithElements
  XMLDocument
  XMLElement

A document is composed of elements that can hold recursively other elements

XMLNodeWithElements implements (in protocol enumerating)
allElementsDo: aBlock
    "Descend depth-first visiting each element with aBlock."

    self hasElements
        ifTrue: [self elementsDo: [:each | each allElementsDo: aBlock]]

Looks perfectly normal to me
But then:

XMLElement implements (in protocol searching !)
allElementsDo: aBlock
    "See superclass version."

    aBlock value: self.

    super allElementsDo: aBlock.

which means that
  anXMLElement allElementsDo: [...]
runs first on itself and then on its elements ?!?
Seems counter intuitive to me.

Should I remove this?

nicolas

nicolas