Extensions Class

 

This class contains the LINQ to XML extension methods for XSD validation.

Namespace:   System.Xml.Schema
Assembly:  System.Xml.Linq (in System.Xml.Linq.dll)

System.Object
  System.Xml.Schema.Extensions

<ExtensionAttribute>
Public NotInheritable Class Extensions

NameDescription
System_CAPS_pubmethodSystem_CAPS_staticGetSchemaInfo(XAttribute)

Gets the post-schema-validation infoset (PSVI) of a validated attribute.

System_CAPS_pubmethodSystem_CAPS_staticGetSchemaInfo(XElement)

Gets the post-schema-validation infoset (PSVI) of a validated element.

System_CAPS_pubmethodSystem_CAPS_staticValidate(XAttribute, XmlSchemaObject, XmlSchemaSet, ValidationEventHandler)

This method validates that an XAttribute conforms to a specified XmlSchemaObject and an XmlSchemaSet.

System_CAPS_pubmethodSystem_CAPS_staticValidate(XAttribute, XmlSchemaObject, XmlSchemaSet, ValidationEventHandler, Boolean)

Validates that an XAttribute conforms to a specified XmlSchemaObject and an XmlSchemaSet, optionally populating the XML tree with the post-schema-validation infoset (PSVI).

System_CAPS_pubmethodSystem_CAPS_staticValidate(XDocument, XmlSchemaSet, ValidationEventHandler)

This method validates that an XDocument conforms to an XSD in an XmlSchemaSet.

System_CAPS_pubmethodSystem_CAPS_staticValidate(XDocument, XmlSchemaSet, ValidationEventHandler, Boolean)

Validates that an XDocument conforms to an XSD in an XmlSchemaSet, optionally populating the XML tree with the post-schema-validation infoset (PSVI).

System_CAPS_pubmethodSystem_CAPS_staticValidate(XElement, XmlSchemaObject, XmlSchemaSet, ValidationEventHandler)

This method validates that an XElement sub-tree conforms to a specified XmlSchemaObject and an XmlSchemaSet.

System_CAPS_pubmethodSystem_CAPS_staticValidate(XElement, XmlSchemaObject, XmlSchemaSet, ValidationEventHandler, Boolean)

Validates that an XElement sub-tree conforms to a specified XmlSchemaObject and an XmlSchemaSet, optionally populating the XML tree with the post-schema-validation infoset (PSVI).

This class also contains methods to get the post-schema-validation infoset (PSVI) of a validated XML node.

When you validate an XDocument, XElement, or XAttribute, you can also optionally populate the XML tree with the post-schema-validation infoset. PSVI information is added as an annotation of type System.Xml.Schema.XmlSchemaInfo.

The XSD in Sample XSD File: Customers and Orders3 contains a schema that can be used to validate the XML document in Sample XML File: Customers and Orders (LINQ to XML)3. The following example loads the schema and the document, validates the document, changes the document so that the xs:key and xs:keyref relationship is not valid, and then attempts to validate again.


                Dim errors As Boolean = False

Private Sub XSDErrors(ByVal o As Object, ByVal e As ValidationEventArgs)
    Console.WriteLine("{0}", e.Message)
    errors = True
End Sub

Sub Main()
    Dim schemas As XmlSchemaSet = New XmlSchemaSet()
    schemas.Add("", "CustomersOrders.xsd")

    Console.WriteLine("Validating custOrd")
    Dim custOrd As XDocument = XDocument.Load("CustomersOrders.xml")
    errors = False
    custOrd.Validate(schemas, AddressOf XSDErrors)
    Console.WriteLine("custOrd {0}", IIf(errors, "did not validate", "validated"))

    Console.WriteLine()
    Console.WriteLine("Validating custOrd")
    ' Modify the source document so that it will not validate.
    custOrd.Root.Element("Orders").Element("Order").Element("CustomerID").Value = "AAAAA"
    errors = False
    custOrd.Validate(schemas, AddressOf XSDErrors)
    Console.WriteLine("custOrd {0}", IIf(errors, "did not validate", "validated"))
End Sub

This example produces the following output:

Validating custOrd
custOrd validated

Validating custOrd
The key sequence 'AAAAA' in Keyref fails to refer to some key.
custOrd did not validate

.NET Framework
Available since 3.5

Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Return to top
Show: