Extensions Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Essa classe contém os métodos de extensão LINQ to XML para validação XSD.
public ref class Extensions abstract sealed
public static class Extensions
type Extensions = class
Public Module Extensions
- Herança
-
Extensions
Exemplos
O XSD no arquivo XSD de exemplo: clientes e pedidos contêm um esquema que pode ser usado para validar o documento XML no arquivo XML de exemplo: clientes e pedidos. O exemplo a seguir carrega o esquema e o documento, valida o documento, altera o documento para que a relação e o xs:key relacionamento xs:keyref não sejam válidos e tente validar novamente.
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 exemplo produz a seguinte saída:
Validating custOrd
custOrd validated
Validating custOrd
The key sequence 'AAAAA' in Keyref fails to refer to some key.
custOrd did not validate
Comentários
Essa classe também contém métodos para obter o conjunto de informações pós-validação de esquema (SNIPI) de um nó XML validado.
Ao validar um XDocument, XElementou XAttribute, você também pode preencher opcionalmente a árvore XML com o conjunto de informações pós-validação de esquema. As informações do PSVI são adicionadas como uma anotação do tipo System.Xml.Schema.XmlSchemaInfo.
Métodos
| Nome | Description |
|---|---|
| GetSchemaInfo(XAttribute) |
Obtém o CONJUNTO de informações pós-validação de esquema (PSVI) de um atributo validado. |
| GetSchemaInfo(XElement) |
Obtém o CONJUNTO de informações pós-validação de esquema (PSVI) de um elemento validado. |
| Validate(XAttribute, XmlSchemaObject, XmlSchemaSet, ValidationEventHandler, Boolean) |
Valida se um está XAttribute em conformidade com um especificado XmlSchemaObject e um XmlSchemaSet, opcionalmente, preenchendo a árvore XML com o conjunto de informações pós-validação de esquema (PSVI). |
| Validate(XAttribute, XmlSchemaObject, XmlSchemaSet, ValidationEventHandler) |
Esse método valida que um XAttribute está em conformidade com um especificado XmlSchemaObject e um XmlSchemaSet. |
| Validate(XDocument, XmlSchemaSet, ValidationEventHandler, Boolean) |
Valida se um XDocument XSD está em conformidade com um XSD em uma XmlSchemaSetárvore XML, opcionalmente populando a árvore XML com o conjunto de informações pós-validação de esquema (PSVI). |
| Validate(XDocument, XmlSchemaSet, ValidationEventHandler) |
Esse método valida que um XDocument XSD está em XmlSchemaSetconformidade com um . |
| Validate(XElement, XmlSchemaObject, XmlSchemaSet, ValidationEventHandler, Boolean) |
Valida se uma XElement subárvore está em conformidade com um especificado XmlSchemaObject e um XmlSchemaSet, opcionalmente, populando a árvore XML com o conjunto de informações pós-validação de esquema (PSVI). |
| Validate(XElement, XmlSchemaObject, XmlSchemaSet, ValidationEventHandler) |
Esse método valida que uma XElement subárvore está em conformidade com uma especificada XmlSchemaObject e uma XmlSchemaSet. |