def METHOD_NAME(self, tb: str, column_property: ColumnProperty) -> None:
    from c2cgeoportal_commons.models import DBSession  # pylint: disable=import-outside-toplevel
    column = column_property.columns[0]
    proxy = column.info["association_proxy"]
    attribute = column_property.class_attribute
    cls = attribute.parent.entity
    association_proxy = getattr(cls, proxy)
    relationship_property = class_mapper(cls).get_property(association_proxy.target)
    target_cls = relationship_property.argument
    query = DBSession.query(getattr(target_cls, association_proxy.value_attr))
    if association_proxy.order_by is not None:
        query = query.order_by(getattr(target_cls, association_proxy.order_by))
    attrs = {}
    if association_proxy.nullable:
        attrs["minOccurs"] = "0"
        attrs["nillable"] = "true"
    attrs["name"] = proxy
    with tag(tb, "xsd:element", attrs) as tb2:
        with tag(tb2, "xsd:simpleType") as tb3:
            with tag(tb3, "xsd:restriction", {"base": "xsd:string"}) as tb4:
                for (value,) in query:
                    with tag(tb4, "xsd:enumeration", {"value": value}):
                        pass
        self.element_callback(tb4, column)