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