def __init__(self, typ=None, data=[], title=None, node=None):
        Node.__init__(self,'x',node=node)
        if node:
            newkids=[]
            for n in self.getChildren():
                if   n.getName()=='field': newkids.append(DataField(node=n))
                elif n.getName()=='item': newkids.append(DataItem(node=n))
                elif n.getName()=='reported': newkids.append(DataReported(node=n))
                else: newkids.append(n)
            self.kids=newkids
        if typ: self.setType(typ)
        self.setNamespace(NS_DATA)
        if title: self.setTitle(title)
        if type(data)==type({}):
            newdata=[]
            for name in data.keys(): newdata.append(DataField(name,data[name]))
            data=newdata
        for child in data:
            if type(child) in [type(''),type(u'')]: self.addInstructions(child)
            elif child.__class__.__name__=='DataField': self.kids.append(child)
            elif child.__class__.__name__=='DataItem': self.kids.append(child)
            elif child.__class__.__name__=='DataReported': self.kids.append(child)
            else: self.kids.append(DataField(node=child))
Returns a file iterator for this BlobReader.
dataset/ETHPy150Open CouchPotato/CouchPotatoServer/libs/xmpp/protocol.py/DataForm.__init__--crossover with--dataset/ETHPy150Open AppScale/appscale/AppServer/google/appengine/ext/blobstore/blobstore.py/BlobReader.__iter__