VB.NETでもXMLを扱いたい(その3)
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>
タグなのでその旨のエラーが出ているわけですね。
おわり