def _strToBool(v):
    """The built-in conversion to boolean is way too lax. The xsd specification requires that only true, false, 1 or 0 should be used...
    @param v: the literal string defined as boolean
    @return corresponding boolean value
    @raise ValueError: invalid boolean values
    """
    if v.lower() == 'true' or v.lower() == '1':
        return True
    elif v.lower() == 'false' or v.lower() == '0':
        return False
    else:
        raise ValueError('Invalid boolean literal value %s' % v)
