Extensions Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Questa classe contiene i metodi di estensione LINQ to XML per la convalida XSD.
public ref class Extensions abstract sealed
public static class Extensions
type Extensions = class
Public Module Extensions
- Ereditarietà
-
Extensions
Esempio
XsD nel file XSD di esempio: clienti e ordini contiene uno schema che può essere usato per convalidare il documento XML nel file XML di esempio: Clienti e ordini. L'esempio seguente carica lo schema e il documento, convalida il documento, modifica il documento in modo che la xs:key relazione e xs:keyref non sia valida e quindi tenti di convalidare di nuovo.
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
In questo esempio viene generato l'output seguente:
Validating custOrd
custOrd validated
Validating custOrd
The key sequence 'AAAAA' in Keyref fails to refer to some key.
custOrd did not validate
Commenti
Questa classe contiene anche metodi per ottenere l'infoset di convalida post-schema (PSVI) di un nodo XML convalidato.
Quando si convalida un XDocumentoggetto , XElemento XAttribute, è anche possibile popolare facoltativamente l'albero XML con l'infoset di post-schema-convalida. Le informazioni PSVI vengono aggiunte come annotazione di tipo System.Xml.Schema.XmlSchemaInfo.
Metodi
| Nome | Descrizione |
|---|---|
| GetSchemaInfo(XAttribute) |
Ottiene l'infoset post-schema-validation (PSVI) di un attributo convalidato. |
| GetSchemaInfo(XElement) |
Ottiene l'infoset post-schema-validation (PSVI) di un elemento convalidato. |
| Validate(XAttribute, XmlSchemaObject, XmlSchemaSet, ValidationEventHandler, Boolean) |
Convalida che un oggetto XAttribute sia conforme a un oggetto specificato XmlSchemaObject e a XmlSchemaSet, popolando facoltativamente l'albero XML con l'infoset di post-schema-convalida (PSVI). |
| Validate(XAttribute, XmlSchemaObject, XmlSchemaSet, ValidationEventHandler) |
Questo metodo convalida che un oggetto XAttribute è conforme a un oggetto specificato XmlSchemaObject e a un oggetto XmlSchemaSet. |
| Validate(XDocument, XmlSchemaSet, ValidationEventHandler, Boolean) |
Verifica che un oggetto XDocument sia conforme a un XSD in un XmlSchemaSetoggetto , se necessario popolamento dell'albero XML con l'infoset di post-schema-convalida (PSVI). |
| Validate(XDocument, XmlSchemaSet, ValidationEventHandler) |
Questo metodo convalida che un oggetto XDocument è conforme a un XSD in un oggetto XmlSchemaSet. |
| Validate(XElement, XmlSchemaObject, XmlSchemaSet, ValidationEventHandler, Boolean) |
Verifica che un XElement sottoalbero sia conforme a un oggetto specificato XmlSchemaObject e a , XmlSchemaSetpopolando facoltativamente l'albero XML con l'infoset di convalida post-schema (PSVI). |
| Validate(XElement, XmlSchemaObject, XmlSchemaSet, ValidationEventHandler) |
Questo metodo convalida che un XElement sottoalbero sia conforme a un oggetto specificato XmlSchemaObject e a un oggetto XmlSchemaSet. |