def METHOD_NAME(cls, tag, value):
    """validate the given tag / value based on the specs in the documentation"""
    if len(tag) == 0:
        raise Exception('Tag may not be empty')
    if len(value) == 0:
        raise Exception('Value for tag "{tag}" may not be empty'.format(tag=tag))
    for char in cls.prohibitedTagChars:
        if char in tag:
            raise Exception('Character "{}" is not allowed in tag "{}"'.format(char, tag))
    if ';' in value:
        raise Exception('Character ";" is not allowed in value "{}" of tag {}'.format(value, tag))
    if value[0] == '~':
        raise Exception('Tag values are not allowed to start with "~" in tag "{tag}"'.format(tag=tag))