'Get the table structure as XML tree
@param prefix: the application prefix
@param name: the tablename (without prefix)
@param parent: the parent element to append the tree to
@param options: include option lists in option fields
@param references: include option lists even in reference fields
@raise AttributeError: in case the table doesn\'t exist'

def get_struct(self, prefix, name, alias=None, parent=None, meta=False, options=True, references=False):

    db = current.db
    tablename = ('%s_%s' % (prefix, name))
    table = db.get(tablename, None)
    if (table is not None):
        if (parent is not None):
            e = etree.SubElement(parent, self.TAG.resource)
        else:
            e = etree.Element(self.TAG.resource)
        e.set(self.ATTRIBUTE.name, tablename)
        if (alias and (alias != name)):
            e.set(self.ATTRIBUTE.alias, alias)
        self.get_fields(prefix, name, parent=e, meta=meta, options=options, references=references, labels=True)
        return e
    else:
        raise AttributeError(('No    table    like    %s' % tablename))
