Extensions Clase

Definición

Esta clase contiene LINQ a métodos de extensión XML para la validación XSD.

public ref class Extensions abstract sealed
public static class Extensions
type Extensions = class
Public Module Extensions
Herencia
Extensions

Ejemplos

El XSD del archivo XSD de ejemplo: Customers and orders contiene un esquema que se puede usar para validar el documento XML en el archivo XML de ejemplo: Clientes y pedidos. En el ejemplo siguiente se carga el esquema y el documento, se valida el documento, se cambia el documento para que la xs:key relación y xs:keyref no sea válida y, a continuación, se intenta validar de nuevo.

                XmlSchemaSet schemas = new XmlSchemaSet();  
schemas.Add("", "CustomersOrders.xsd");  

XDocument custOrd = XDocument.Load("CustomersOrders.xml");  

Console.WriteLine("Validating custOrd");  
bool errors = false;  
custOrd.Validate(schemas, (o, e) =>  
                     {  
                         Console.WriteLine("{0}", e.Message);  
                         errors = true;  
                     });  
Console.WriteLine("custOrd {0}", errors ? "did not validate" : "validated");  

// Modify the custOrd tree so that it is no longer valid.  
custOrd.Root.Element("Orders").Element("Order").Element("CustomerID").Value = "AAAAA";  

Console.WriteLine();  
Console.WriteLine("Validating custOrd");  
errors = false;  
custOrd.Validate(schemas, (o, e) =>  
                     {  
                         Console.WriteLine("{0}", e.Message);  
                         errors = true;  
                     });  
Console.WriteLine("custOrd {0}", errors ? "did not validate" : "validated");  
                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  

Este ejemplo produce el siguiente resultado:

Validating custOrd  
custOrd validated  

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

Comentarios

Esta clase también contiene métodos para obtener el conjunto de información posterior a la validación del esquema (PSVI) de un nodo XML validado.

Al validar , XDocumentXElemento XAttribute, también puede rellenar opcionalmente el árbol XML con el conjunto de información posterior a la validación del esquema. La información de PSVI se agrega como una anotación de tipo System.Xml.Schema.XmlSchemaInfo.

Métodos

GetSchemaInfo(XAttribute)

Obtiene el conjunto de información posterior a la validación del esquema (PSVI) de un atributo validado.

GetSchemaInfo(XElement)

Obtiene el conjunto de información posterior a la validación del esquema (PSVI) de un elemento validado.

Validate(XAttribute, XmlSchemaObject, XmlSchemaSet, ValidationEventHandler)

Este método valida que un XAttribute se ajusta a un XmlSchemaObject especificado y un XmlSchemaSet.

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

Valida que XAttribute se ajusta a un XmlSchemaObject especificado y a un XmlSchemaSet y, de manera opcional, rellena el árbol XML con el conjunto de información posterior a la validación del esquema (PSVI).

Validate(XDocument, XmlSchemaSet, ValidationEventHandler)

Este método valida que un XDocument se ajusta a un XSD en un XmlSchemaSet.

Validate(XDocument, XmlSchemaSet, ValidationEventHandler, Boolean)

Valida que XDocument se ajusta a XSD en XmlSchemaSet y, de manera opcional, rellena el árbol XML con el conjunto de información posterior a la validación del esquema (PSVI).

Validate(XElement, XmlSchemaObject, XmlSchemaSet, ValidationEventHandler)

Este método valida que un subárbol XElement se ajusta a un XmlSchemaObject especificado y a un XmlSchemaSet.

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

Valida que un subárbol XElement se ajusta a un XmlSchemaObject especificado y a un XmlSchemaSet y, de manera opcional, rellena el árbol XML con el conjunto de información posterior a la validación del esquema (PSVI).

Se aplica a