def ASFValue(value, kind, **kwargs):
    """Create a tag value of a specific kind.

    ::

        ASFValue(u"My Value", UNICODE)

    :rtype: ASFBaseAttribute
    :raises TypeError: in case a wrong type was passed
    :raises ValueError: in case the value can't be be represented as ASFValue.
    """

    try:
        attr_type = ASFBaseAttribute._get_type(kind)
    except KeyError:
        raise ValueError("Unknown value type %r" % kind)
    else:
        return attr_type(value=value, **kwargs)
Create a tag value of a specific kind.

    ::

        ASFValue(u"My Value", UNICODE)

    :rtype: ASFBaseAttribute
    :raises TypeError: in case a wrong type was passed
    :raises ValueError: in case the value can't be be represented as ASFValue.