Extensions Clase

Definición

Esta clase contiene los métodos de extensión LINQ to 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: Clientes y pedidos 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

Nombre Description
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, Boolean)

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

Validate(XAttribute, XmlSchemaObject, XmlSchemaSet, ValidationEventHandler)

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

Validate(XDocument, XmlSchemaSet, ValidationEventHandler, Boolean)

Valida que se XDocument ajusta a un XSD en un XmlSchemaSet, rellenando opcionalmente 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 objeto se ajusta a un XSD en un XmlSchemaSet.

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

Valida que un XElement subárbol se ajusta a un especificado XmlSchemaObject y , XmlSchemaSetrellenando opcionalmente 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 XElement subárbol se ajusta a un especificado XmlSchemaObject y a .XmlSchemaSet

Se aplica a