验证C#字符串是否为有效的XML Schema anyURI

3

除了以下方法,是否有更好的验证C#字符串是否为有效的xs:anyURI的方法?

public bool VerifyAnyURI(string anyUriValue)
{ 
    bool result = false;
    try
    {
        SoapAnyUri anyUri = new SoapAnyUri(anyUriValue);
        result = true;
    }
    catch (Exception)
    {
    }
    return result;
}

这个构造函数似乎不会抛出任何异常。任何有效的字符串在技术上都是有效的 anyURI 吗?

1个回答

7
查看使用Reflector的SoapAnyUri构造函数,它根本不执行任何验证。 anyURI数据类型定义如下
[定义:] anyURI表示统一资源标识符引用(URI)。 anyURI值可以是绝对或相对的,并且可能具有可选的片段标识符(即,它可能是URI引用)。应使用此类型来指定该值履行[RFC 2396]和[RFC 2732]定义的URI角色的意图。
因此,您只需使用UriKind.RelativeOrAbsolute使用Uri.TryCreate验证字符串是否表示有效值即可。
Uri uri;
bool valid = Uri.TryCreate(anyUriValue, UriKind.RelativeOrAbsolute, out uri);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接