Ler em inglês

Partilhar via


XmlReaderSettings.ValidationType Propriedade

Definição

Obtém ou define um valor que indica se o XmlReader executará a validação ou digitará a atribuição durante a leitura.

C#
public System.Xml.ValidationType ValidationType { get; set; }

Valor da propriedade

ValidationType

Um dos valores ValidationType que indica se o XmlReader executará a validação ou digitará atribuição durante a leitura. O padrão é ValidationType.None.

Exemplos

O exemplo a XmlSchemaSetseguir valida o uso de um esquema armazenado no .

C#
using System;
using System.Xml;
using System.Xml.Schema;
using System.IO;

public class Sample
{
  public static void Main() {

    // Create the XmlSchemaSet class.
    XmlSchemaSet sc = new XmlSchemaSet();

    // Add the schema to the collection.
    sc.Add("urn:bookstore-schema", "books.xsd");

    // Set the validation settings.
    XmlReaderSettings settings = new XmlReaderSettings();
    settings.ValidationType = ValidationType.Schema;
    settings.Schemas = sc;
    settings.ValidationEventHandler += ValidationCallBack;

    // Create the XmlReader object.
    XmlReader reader = XmlReader.Create("booksSchemaFail.xml", settings);

    // Parse the file.
    while (reader.Read());
  }

  // Display any validation errors.
  private static void ValidationCallBack(object sender, ValidationEventArgs e) {
    Console.WriteLine($"Validation Error:\n   {e.Message}\n");
  }
}
// The example displays output like the following:
//   Validation Error:
//        The element 'book' in namespace 'urn:bookstore-schema' has invalid child element 'author'
//        in namespace 'urn:bookstore-schema'. List of possible elements expected: 'title' in
//        namespace 'urn:bookstore-schema'.
//
//    Validation Error:
//       The element 'author' in namespace 'urn:bookstore-schema' has invalid child element 'name'
//       in namespace 'urn:bookstore-schema'. List of possible elements expected: 'first-name' in
//       namespace 'urn:bookstore-schema'.

O exemplo usa os seguintes arquivos de entrada:

booksSchemaFail.xml

XML
<?xml version='1.0'?>
<bookstore xmlns="urn:bookstore-schema">
  <book>
    <author>
      <first-name>Benjamin</first-name>
      <last-name>Franklin</last-name>
    </author>
  </book>
  <book genre="novel">
    <title>The Confidence Man</title>
    <author>
      <first-name>Herman</first-name>
      <last-name>Melville</last-name>
    </author>
    <price>11.99</price>
  </book>
  <book genre="philosophy">
    <title>The Gorgias</title>
    <author>
      <name>Plato</name>
    </author>
    <price>9.99</price>
  </book>
</bookstore>

books.xsd

XML
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns="urn:bookstore-schema"
    elementFormDefault="qualified"
    targetNamespace="urn:bookstore-schema">

 <xsd:element name="bookstore" type="bookstoreType"/>

 <xsd:complexType name="bookstoreType">
  <xsd:sequence maxOccurs="unbounded">
   <xsd:element name="book"  type="bookType"/>
  </xsd:sequence>
 </xsd:complexType>

 <xsd:complexType name="bookType">
  <xsd:sequence>
   <xsd:element name="title" type="xsd:string"/>
   <xsd:element name="author" type="authorName"/>
   <xsd:element name="price"  type="xsd:decimal"/>
  </xsd:sequence>
  <xsd:attribute name="genre" type="xsd:string"/>
 </xsd:complexType>

 <xsd:complexType name="authorName">
  <xsd:sequence>
   <xsd:element name="first-name"  type="xsd:string"/>
   <xsd:element name="last-name" type="xsd:string"/>
  </xsd:sequence>
 </xsd:complexType>

</xsd:schema>

Comentários

A tabela a seguir descreve os ValidationType valores.

Nota

Os Auto valores e enumeração XDR são obsoletos no .NET Framework versão 2.0.

ValidationType Descrição
DTD A validação é executada usando uma definição de tipo de documento (DTD). Nota: A DtdProcessing propriedade também deve ser definida como Parse.
None Os XmlReader dados não validam nem executam qualquer atribuição de tipo.
Schema A validação e a atribuição de tipo são executadas usando um esquema XSD (linguagem de definição de esquema XML). O leitor acessa o esquema XML usando o seguinte:

- Usa a Schemas propriedade para acessar o XmlSchemaSet objeto associado a este leitor.
- Usa o esquema em linha contido no documento da instância XML. (A ProcessInlineSchema opção deve ser habilitada.)
- Usa o esquema XML especificado por dicas de localização de esquema (xsi:schemaLocation ou xsi:noNamespaceSchemaLocation atributo) encontradas no documento da instância XML. (A ProcessSchemaLocation opção deve ser habilitada.)

Aplica-se a

Produto Versões
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
.NET Standard 2.0, 2.1

Confira também