Implementando gerador recursivo para estrutura de árvore simples no Swift

Eu tenho uma estrutura de árvore simples na memória com base em um documento XML e estou tentando escrever um gerador recursivo para dar suporteSequenceType, mas estou preso em como realmente fazer isso.

Aqui foi minha primeira tentativa:

@objc public class XMLNode: NSObject, SequenceType {
    public weak var parentNode: XMLNode?
    public var nodeName: String
    public var attributes: [String: String]
    public var childNodes = [XMLNode]()

    public func generate() -> AnyGenerator<XMLNode> {
        var childGenerator = childNodes.generate()
        var returnedSelf = false

        return anyGenerator {
            let child = childGenerator.next()

            if child != nil {
                // I need to somehow recurse on child here

                return child
            } else if !returnedSelf {
                returnedSelf = true
                return self
            } else {
                return nil
            }
        }
    }
}

Desde achildNodes é uma matriz, estou chamando de seu própriogenerate() para criar um gerador nos nós filhos e iterá-lo e, em seguida, retornarself no fim. O problema é que ele não se repete em cada criança, por isso só chega a um nível de profundidade. Não consigo descobrir como combinar dois geradores dessa maneira.

Estou tendo dificuldade para entender como fazer isso! O que preciso fazer para criar um gerador recursivo?

questionAnswers(3)

yourAnswerToTheQuestion