Проверьте xml как поток памяти против xsd как строку - PullRequest
0 голосов
/ 07 октября 2011

Я хочу проверить xml по XSD (VB.NET) . Моя функция выглядит так:

Private Function ValidateXML(ByVal xml As MemoryStream, ByVal xsd As String) As    ArrayList
End Function

Как я могу выполнить проверку, когда мой xml является потоком памяти / потоком (я использую stream, потому что мне не нужно хранить xml), а мой xsd является строкой (я получаю xsd из веб-службы в виде строки , а мне не нужно хранить его в файле)?

Большое спасибо за помощь!

1 Ответ

1 голос
/ 07 октября 2011

Нечто подобное возможно.

Imports System.Xml
Imports System.IO
Imports System.Xml.Schema

Module Module1

    Private isvalid As Boolean

    Sub Main()
        Dim xml As MemoryStream
        Dim xsd As String
        Dim settings As New XmlReaderSettings()
        settings.ValidationType = ValidationType.Schema
        settings.Schemas.Add("Schema:name", xsd)
        AddHandler settings.ValidationEventHandler, AddressOf MyValidationEventHandler

        Dim v = XmlReader.Create(xml, settings)

        While (v.Read())

        End While

        If isValid Then
            Console.WriteLine("Document is valid")
        Else
            Console.WriteLine("Document is invalid")
        End If
    End Sub



    Public Sub MyValidationEventHandler(ByVal sender As Object, ByVal args As ValidationEventArgs)
        isValid = False
        Console.WriteLine("Validation event\n" + args.Message)
    End Sub
End Module
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...