2009-09-16 3 views
3

C# 문자열이 다음보다 유효한 xs : anyURI인지 확인하는 더 좋은 방법이 있습니까?C# 문자열을 유효한 XML 스키마로 확인 anyURI

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

이 생성자는 어떤 종류의 예외도 발생시키지 않습니다. 어떤 유효한 문자열이 기술적으로 유효한 anyURI입니까?

답변

7

Reflector를 사용하여 SoapAnyUri 생성자를 보면 아무런 유효성 검사도 수행하지 않습니다.

anyURI 데이터 유형 is defined as follows :

[정의 :] 된 anyURI는 균일 자원 식별자 참조 (URI)를 나타낸다. anyURI 값은 절대적이거나 상대적 일 수 있으며 선택적 프래그먼트 식별자 (즉, URI 참조 일 수 있음)를 가질 수 있습니다. 이 유형은 [RFC 2732]에 의해 수정 된 [RFC 2396]에 정의 된 URI의 역할을 값이 수행한다는 의도를 지정하는 데 사용해야합니다.

Uri uri; 
bool valid = Uri.TryCreate(anyUriValue, UriKind.RelativeOrAbsolute, out uri); 
:

그래서 당신은 단순히 문자열이 유효한 값을 나타낸다는 것을 확인 UriKind.RelativeOrAbsoluteUri.TryCreate을 사용할 수 있습니다

관련 문제