Extensions Klas
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Deze klasse bevat de LINQ naar XML-extensiemethoden voor XSD-validatie.
public ref class Extensions abstract sealed
public static class Extensions
type Extensions = class
Public Module Extensions
- Overname
-
Extensions
Voorbeelden
Het XSD in het XSD-voorbeeldbestand: Klanten en orders bevatten een schema dat kan worden gebruikt voor het valideren van het XML-document in het XML-voorbeeldbestand: Klanten en orders. In het volgende voorbeeld worden het schema en het document geladen, het document gevalideerd, het document gewijzigd, zodat de xs:key relatie xs:keyref ongeldig is en vervolgens opnieuw probeert te valideren.
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 dit voorbeeld wordt de volgende uitvoer gegenereerd:
Validating custOrd
custOrd validated
Validating custOrd
The key sequence 'AAAAA' in Keyref fails to refer to some key.
custOrd did not validate
Opmerkingen
Deze klasse bevat ook methoden om de post-schemavalidatie-infoset (PSVI) van een gevalideerd XML-knooppunt op te halen.
Wanneer u een XDocument, XElementof XAttribute, valideert, kunt u de XML-structuur ook vullen met de infoset voor validatie na schema. PSVI-informatie wordt toegevoegd als een aantekening van het type System.Xml.Schema.XmlSchemaInfo.
Methoden
| Name | Description |
|---|---|
| GetSchemaInfo(XAttribute) |
Hiermee haalt u de post-schemavalidatie-infoset (PSVI) van een gevalideerd kenmerk op. |
| GetSchemaInfo(XElement) |
Hiermee haalt u de post-schemavalidatie-infoset (PSVI) van een gevalideerd element op. |
| Validate(XAttribute, XmlSchemaObject, XmlSchemaSet, ValidationEventHandler, Boolean) |
Valideert dat een XAttribute bestand voldoet aan een opgegeven XmlSchemaObject en een XmlSchemaSet, eventueel vullen van de XML-structuur met de post-schemavalidatie-infoset (PSVI). |
| Validate(XAttribute, XmlSchemaObject, XmlSchemaSet, ValidationEventHandler) |
Deze methode valideert dat een XAttribute voldoet aan een opgegeven XmlSchemaObject en een XmlSchemaSet. |
| Validate(XDocument, XmlSchemaSet, ValidationEventHandler, Boolean) |
Hiermee wordt gevalideerd of een XDocument XSD in een XmlSchemaSetXSD voldoet, eventueel de XML-structuur vullen met de post-schemavalidatie-infoset (PSVI). |
| Validate(XDocument, XmlSchemaSet, ValidationEventHandler) |
Met deze methode wordt gevalideerd of een XDocument XSD in een XmlSchemaSet. |
| Validate(XElement, XmlSchemaObject, XmlSchemaSet, ValidationEventHandler, Boolean) |
Valideert dat een XElement substructuur voldoet aan een opgegeven XmlSchemaObject en een XmlSchemaSet, eventueel een XML-structuur vullen met de post-schemavalidatie-infoset (PSVI). |
| Validate(XElement, XmlSchemaObject, XmlSchemaSet, ValidationEventHandler) |
Met deze methode wordt gevalideerd of een XElement substructuur voldoet aan een opgegeven XmlSchemaObject en een XmlSchemaSet. |