Extensions Klass
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Den här klassen innehåller LINQ-till XML-tilläggsmetoderna för XSD-validering.
public ref class Extensions abstract sealed
public static class Extensions
type Extensions = class
Public Module Extensions
- Arv
-
Extensions
Exempel
XSD i XSD-exempelfilen: Kunder och beställningar innehåller ett schema som kan användas för att verifiera XML-dokumentet i XML-exempelfilen: Kunder och beställningar. I följande exempel läses schemat och dokumentet in, dokumentet verifieras, dokumentet ändras så att xs:key relationen och xs:keyref inte är giltig och sedan försöker verifiera igen.
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
Det här exemplet genererar följande utdata:
Validating custOrd
custOrd validated
Validating custOrd
The key sequence 'AAAAA' in Keyref fails to refer to some key.
custOrd did not validate
Kommentarer
Den här klassen innehåller också metoder för att hämta PSVI (post-schema-validation infoset) för en validerad XML-nod.
När du verifierar en XDocument, XElement, eller XAttribute, kan du också fylla i XML-trädet med infouppsättningen post-schema-validation. PSVI-information läggs till som en anteckning av typen System.Xml.Schema.XmlSchemaInfo.
Metoder
| Name | Description |
|---|---|
| GetSchemaInfo(XAttribute) |
Hämtar psvi-informationsuppsättningen (post-schema-validation) för ett validerat attribut. |
| GetSchemaInfo(XElement) |
Hämtar psvi-informationsuppsättningen (post-schema-validation) för ett verifierat element. |
| Validate(XAttribute, XmlSchemaObject, XmlSchemaSet, ValidationEventHandler, Boolean) |
Verifierar att en XAttribute överensstämmer med en angiven XmlSchemaObject och , XmlSchemaSetom du vill fylla i XML-trädet med infouppsättningen efter schemavalidering (PSVI). |
| Validate(XAttribute, XmlSchemaObject, XmlSchemaSet, ValidationEventHandler) |
Den här metoden verifierar att en XAttribute överensstämmer med en angiven XmlSchemaObject och en XmlSchemaSet. |
| Validate(XDocument, XmlSchemaSet, ValidationEventHandler, Boolean) |
Verifierar att en XDocument överensstämmer med en XSD i ett XmlSchemaSet, om du vill fylla i XML-trädet med post-schema-validation infoset (PSVI). |
| Validate(XDocument, XmlSchemaSet, ValidationEventHandler) |
Den här metoden verifierar att en XDocument överensstämmer med en XSD i en XmlSchemaSet. |
| Validate(XElement, XmlSchemaObject, XmlSchemaSet, ValidationEventHandler, Boolean) |
Verifierar att ett XElement underträd överensstämmer med en angiven XmlSchemaObject och , XmlSchemaSetom du vill fylla i XML-trädet med infouppsättningen efter schemavalidering (PSVI). |
| Validate(XElement, XmlSchemaObject, XmlSchemaSet, ValidationEventHandler) |
Den här metoden verifierar att ett XElement underträd överensstämmer med en angiven XmlSchemaObject och en XmlSchemaSet. |