Extensions Classe

Definição

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.

Aplica-se a