Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.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
Vb.net 当两者都是字符串时,针对XSD的XML验证_Vb.net_Visual Studio 2010_Xsd_Xml Validation_Xsd Validation - Fatal编程技术网

Vb.net 当两者都是字符串时,针对XSD的XML验证

Vb.net 当两者都是字符串时,针对XSD的XML验证,vb.net,visual-studio-2010,xsd,xml-validation,xsd-validation,Vb.net,Visual Studio 2010,Xsd,Xml Validation,Xsd Validation,我一直在寻找简单的XML验证代码,但XML和XSD都是字符串,而且非常混乱。把我所发现的一些事情放在一起,希望这能帮助其他人!请随时发表评论,并指出我可能在哪里找到这个,告诉我在哪里可以改进这个,或者提高效率。如果验证失败,这将直接写入我的错误字符串 干杯 导入系统 Imports System Imports System.IO Imports System.Text Imports System.Xml Imports System.Xml.Schema Module Module1

我一直在寻找简单的XML验证代码,但XML和XSD都是字符串,而且非常混乱。把我所发现的一些事情放在一起,希望这能帮助其他人!请随时发表评论,并指出我可能在哪里找到这个,告诉我在哪里可以改进这个,或者提高效率。如果验证失败,这将直接写入我的错误字符串

干杯

导入系统
Imports System
Imports System.IO
Imports System.Text
Imports System.Xml
Imports System.Xml.Schema

Module Module1

    Public validationErrors As String = Nothing
    Sub main()
        ' The Following is not a valid Xml Document according to its XSD with multiple errors.
        'Dim strXml As String = "<?xml version=""1.0"" encoding=""UTF-8""?><Address xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance""><City>SuperCaliFragilisticExpiAllidocious</City><State>Confusion</State><Zipcode>16801</Zipcode></Address>"
        ' The following is a Valid XML document
        Dim strXml As String = "<?xml version=""1.0"" encoding=""UTF-8""?><Address xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance""><City>Hollywood</City><State>CA</State></Address>"
        Dim strXsd As String = "<?xml version=""1.0"" encoding=""UTF-8""?><xs:schema xmlns:xs=""http://www.w3.org/2001/XMLSchema"" elementFormDefault=""qualified"" attributeFormDefault=""unqualified""><xs:element name=""Address""><xs:annotation><xs:documentation /></xs:annotation><xs:complexType><xs:sequence><xs:element name=""City""><xs:simpleType><xs:restriction base=""xs:string""><xs:maxLength value=""25""/></xs:restriction></xs:simpleType></xs:element><xs:element name=""State""><xs:simpleType><xs:restriction base=""xs:string""><xs:maxLength value=""2""/></xs:restriction></xs:simpleType></xs:element></xs:sequence></xs:complexType></xs:element></xs:schema>"
        validationErrors = xsdValidateXml(strXml, strXsd)
        MsgBox(IIf(validationErrors = Nothing, "Passed XML Validation!", validationErrors))

    End Sub
    Friend Function xsdValidateXml(ByVal strXml As String, ByVal strXsd As String)
        ' Create an XML document
        Dim xmlDocument As New XmlDocument
        xmlDocument.LoadXml(strXml)
        Dim schema As XmlReader = XmlReader.Create(New StringReader(strXsd))
        xmlDocument.Schemas.Add("", schema)
        xmlDocument.Validate(AddressOf ValidationEventHandler)
        xsdValidateXml = validationErrors
    End Function
    Sub ValidationEventHandler(ByVal sender As Object, ByVal e As ValidationEventArgs)
        validationErrors += e.Message & vbCrLf & vbCrLf
    End Sub

End Module
导入System.IO 导入系统文本 导入System.Xml 导入System.Xml.Schema 模块1 公共验证错误为字符串=无 副标题() '根据其XSD,以下文档不是有效的Xml文档,存在多个错误。 'Dim strXml As String=“supercalifragilisticexpiallidocousconfusion16801” '以下是有效的XML文档 Dim strXml为String=“HollywoodCA” Dim strXsd As String=“” validationErrors=xsdValidateXml(strXml,strXsd) MsgBox(IIf(validationErrors=Nothing,“通过XML验证!”,validationErrors)) 端接头 友元函数xsdValidateXml(ByVal strXml作为字符串,ByVal strXsd作为字符串) '创建XML文档 将xmlDocument设置为新的xmlDocument LoadXml(strXml) Dim模式为XmlReader=XmlReader.Create(新StringReader(strXsd)) xmlDocument.Schemas.Add(“,schema) Validate(ValidationEventHandler的地址) xsdValidateXml=validationErrors 端函数 子ValidationEventHandler(ByVal发送方作为对象,ByVal e作为ValidationEventTargs) validationErrors+=e.消息&vbCrLf&vbCrLf 端接头 端模块
如果遇到多个错误,它们将全部列出!