Extensions Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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 |