Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用.NET中的相对路径使用多个XSD验证XML_.net_Xml_Xsd_Relative Path - Fatal编程技术网

使用.NET中的相对路径使用多个XSD验证XML

使用.NET中的相对路径使用多个XSD验证XML,.net,xml,xsd,relative-path,.net,Xml,Xsd,Relative Path,我正在尝试编写一个通用的VB.NET(VS2005)函数,以根据XSD验证XML文档。在我使用具有相对路径的XSD之前,这一切都很正常,包括: <xs:include schemaLocation="test.02.xsd" /> 我通过创建如下自定义XmlUrlResolver解决了此问题: Class CustomResolver Inherits XmlUrlResolver Private _CustomBaseUri As Uri Public

我正在尝试编写一个通用的VB.NET(VS2005)函数,以根据XSD验证XML文档。在我使用具有相对路径的XSD之前,这一切都很正常,包括:

<xs:include schemaLocation="test.02.xsd" />

我通过创建如下自定义XmlUrlResolver解决了此问题:

Class CustomResolver
    Inherits XmlUrlResolver

    Private _CustomBaseUri As Uri

    Public Sub New(ByVal baseUri As Uri)
        If baseUri.IsFile Then
            _CustomBaseUri = New Uri(Path.GetDirectoryName(baseUri.LocalPath.ToString()) & "\")
        Else
        End If
        Me._CustomBaseUri = baseUri
    End Sub

    Public Overloads Overrides Function ResolveUri(ByVal baseUri As Uri, ByVal relativeUri As String) As Uri
        If baseUri IsNot Nothing Then
            Return MyBase.ResolveUri(baseUri, relativeUri)
        Else
            Return MyBase.ResolveUri(_CustomBaseUri, relativeUri)
        End If
    End Function
End Class
Class CustomResolver
    Inherits XmlUrlResolver

    Private _CustomBaseUri As Uri

    Public Sub New(ByVal baseUri As Uri)
        If baseUri.IsFile Then
            _CustomBaseUri = New Uri(Path.GetDirectoryName(baseUri.LocalPath.ToString()) & "\")
        Else
        End If
        Me._CustomBaseUri = baseUri
    End Sub

    Public Overloads Overrides Function ResolveUri(ByVal baseUri As Uri, ByVal relativeUri As String) As Uri
        If baseUri IsNot Nothing Then
            Return MyBase.ResolveUri(baseUri, relativeUri)
        Else
            Return MyBase.ResolveUri(_CustomBaseUri, relativeUri)
        End If
    End Function
End Class