def METHOD_NAME(self, name):
    """ build a an object for the specified typename as defined in the schema """
    if isinstance(name, basestring):
        type = self.resolver.find(name)
        if type is None:
            raise TypeNotFound(name)
    else:
        type = name
    cls = type.name
    if type.mixed():
        data = Factory.property(cls)
    else:
        data = Factory.object(cls)
    resolved = type.resolve()
    md = data.__metadata__
    md.sxtype = resolved
    md.ordering = self.ordering(resolved)
    history = []
    self.add_attributes(data, resolved)
    for child, ancestry in type.children():
        if self.skip_child(child, ancestry):
            continue
        self.process(data, child, history[:])
    return data