Extensions Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Этот класс содержит методы расширения LINQ to XML для проверки XSD.
public ref class Extensions abstract sealed
public static class Extensions
type Extensions = class
Public Module Extensions
- Наследование
-
Extensions
Примеры
XSD в примере XSD-файла: клиенты и заказы содержит схему, которую можно использовать для проверки XML-документа в примере XML-файла: Клиенты и заказы. В следующем примере загружается схема и документ, проверяется документ, изменяется документ таким образом, что xs:key
связь и xs:keyref
является недопустимой, а затем предпринимается попытка повторной проверки.
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
В этом примере выводятся следующие данные:
Validating custOrd
custOrd validated
Validating custOrd
The key sequence 'AAAAA' in Keyref fails to refer to some key.
custOrd did not validate
Комментарии
Этот класс также содержит методы для получения набора сведений после проверки схемы (PSVI) проверенного XML-узла.
При проверке XDocument, XElementили XAttributeпри необходимости можно заполнить XML-дерево набором сведений после проверки схемы. Сведения о PSVI добавляются в виде заметки типа System.Xml.Schema.XmlSchemaInfo.
Методы
GetSchemaInfo(XAttribute) |
Получает набор сведений после проверки схемы (PSVI) для проверенного атрибута. |
GetSchemaInfo(XElement) |
Получает набор сведений после проверки схемы (PSVI) для проверенного элемента. |
Validate(XAttribute, XmlSchemaObject, XmlSchemaSet, ValidationEventHandler) |
Этот метод проверяет XAttribute на соответствие указанным XmlSchemaObject и XmlSchemaSet. |
Validate(XAttribute, XmlSchemaObject, XmlSchemaSet, ValidationEventHandler, Boolean) |
Проверяет XAttribute на соответствие указанным XmlSchemaObject и XmlSchemaSet, с возможностью заполнения дерева XML набором сведений после проверки схемы (PSVI). |
Validate(XDocument, XmlSchemaSet, ValidationEventHandler) |
Этот метод проверяет соответствие XDocument спецификации XSD в XmlSchemaSet. |
Validate(XDocument, XmlSchemaSet, ValidationEventHandler, Boolean) |
Проверяет XDocument на соответствие XSD в XmlSchemaSet с возможностью заполнения дерева XML набором сведений после проверки схемы (PSVI). |
Validate(XElement, XmlSchemaObject, XmlSchemaSet, ValidationEventHandler) |
Этот метод проверяет поддерево XElement на соответствие указанным XmlSchemaObject и XmlSchemaSet. |
Validate(XElement, XmlSchemaObject, XmlSchemaSet, ValidationEventHandler, Boolean) |
Проверяет поддерево XElement на соответствие указанным XmlSchemaObject и XmlSchemaSet, с возможностью заполнения дерева XML набором сведений после проверки схемы (PSVI). |