Mega Code Archive

 
Categories / VB.Net / XML
 

Validates that an XElement sub-tree conforms to a specified XmlSchemaObject and an XmlSchemaSet

Imports System Imports System.Xml Imports System.Xml.XPath Imports System.Xml.Schema Public Class MainClass         Shared errors As Boolean = False                  Private Shared Sub XSDErrors(ByVal o As Object, ByVal e As ValidationEventArgs)             Console.WriteLine("{0}", e.Message)             errors = True         End Sub                  Public Shared Sub Main()                      Dim xsdMarkup As XDocument = _                 <?xml version='1.0'?>                 <xsd:schema xmlns:xsd='http://www.w3.org/2001/XMLSchema'>                     <xsd:element name='Root'>                         <xsd:complexType>                             <xsd:sequence>                                 <xsd:element name='Child1' minOccurs='1' maxOccurs='1'>                                     <xsd:complexType>                                         <xsd:sequence>                                             <xsd:element name='GrandChild1' minOccurs='1' maxOccurs='1'/>                                             <xsd:element name='GrandChild2' minOccurs='1' maxOccurs='2'/>                                         </xsd:sequence>                                     </xsd:complexType>                                 </xsd:element>                             </xsd:sequence>                         </xsd:complexType>                     </xsd:element>                 </xsd:schema>                      Dim schemas As XmlSchemaSet = New XmlSchemaSet()             schemas.Add("", xsdMarkup.CreateReader)                      Dim doc1 As XDocument = _                 <?xml version='1.0'?>                 <Root>                     <Child1>                         <GrandChild1>gc</GrandChild1>                         <GrandChild2>gc</GrandChild2>                     </Child1>                 </Root>                      Console.WriteLine("Validating doc1 ...")             errors = False             doc1.Validate(schemas, AddressOf XSDErrors, True)             Console.WriteLine("doc1 {0}", IIf(errors, "did not validate", "validated"))                  End Sub End Class