XMLの検証
Module Module1
Sub Main()
Section2()
End Sub
Function ReadSchema() As XmlSchema
Dim xs As XmlSchema
Using r = New StreamReader("mailbox.xsd")
xs = XmlSchema.Read(r, Sub(sender, e) Console.WriteLine("{0}:{1}", e.Severity, e.Message))
End Using
Return xs
End Function
Sub Section2()
Dim xss = New XmlSchemaSet()
xss.Add(ReadSchema)
Dim xdoc = New XmlDocument()
Using r = New StreamReader("mailbox.xml")
xdoc.Load(r)
End Using
xdoc.Schemas = xss
xdoc.Validate(Sub(sender, e) Console.WriteLine("{0}:{1}", e.Severity, e.Message))
End Sub
End Module
スキーマ違反のもの、たとえば以下のコードをmailbox.xmlに混ぜ込むと以下のエラーが返ります。
<mail></mail>
Error:要素 名前空間 'http://jyuch.com/mailbox' の 'mail' には不完全な内容が含ま れています。必要とされる要素は 名前空間 'http://jyuch.com/mailbox' の 'from' で す。
スキーマに反した<mail>タグなのでその旨のエラーが出ているわけですね。
おわり