Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Convalida con uno schema XDR inline

È possibile utilizzare XmlValidatingReader per convalidare un documento XML rispetto a uno schema XDR (XML-Data Reduced) inline.

Nota Nota

La classe XmlValidatingReader è obsoleta in .NET Framework 2.0. È possibile creare un'istanza di convalida XmlReader utilizzando la classe XmlReaderSettings e il metodo Create. Per ulteriori informazioni, vedere Convalida di dati XML con XmlReader.

Nell'esempio di codice seguente viene creato un XmlValidatingReader che accetta un XmlTextReader. Il file di input, HeadCount.xml, viene convalidato rispetto allo schema XDR inline.

using System;
using System.IO;
using System.Xml;
using System.Xml.Schema;

namespace ValidationSample
{
   class Sample
   {
      public static void Main()
      {
         XmlTextReader tr = new XmlTextReader("HeadCount.xml");
         XmlValidatingReader vr = new XmlValidatingReader(tr);

         vr.ValidationType = ValidationType.XDR;
         vr.ValidationEventHandler += new ValidationEventHandler (ValidationHandler);

         while(vr.Read());
         Console.WriteLine("Validation finished");
      }

      public static void ValidationHandler(object sender, ValidationEventArgs args)
      {
         Console.WriteLine("***Validation error");
         Console.WriteLine("\tSeverity:{0}", args.Severity);
         Console.WriteLine("\tMessage  :{0}", args.Message);
      }
   }
}

Di seguito viene indicato il contenuto del file di input, HeadCount.xml, da convalidare.

<root>
   <Schema name='xdrHeadCount' xmlns="urn:schemas-microsoft-com:xml-data" xmlns:dt="urn:schemas-microsoft-com:datatypes">
      <ElementType name="Name" content="textOnly"/>
      <ElementType name="HeadCount" content="eltOnly">
         <element type="Name"/>
      </ElementType>
   </Schema>
   <HeadCount xmlns='x-schema:#xdrHeadCount'>
      <Name>Waldo Pepper</Name>
      <Name>Red Pepper</Name>
   </HeadCount>
</root>

Nell'esempio di codice seguente viene creato un XmlValidatingReader che accetta un XmlTextReader.Il file di input, sample3.xml, viene convalidato rispetto allo schema XDR inline.Dal momento che non è disponibile un attributo xmlns, lo schema inline viene specificato come schema predefinito.In questo caso, la dichiarazione dello spazio dei nomi, xmlns="x-schema", non è obbligatoria.

XmlTextReader tr = new XmlTextReader("sample3.xml");
XmlValidatingReader vr = new XmlValidatingReader(tr);
vr.ValidationType = ValidationType.XDR;
vr.ValidationEventHandler += new ValidationEventHandler(ValidationCallBack);
while(vr.Read()) {
    Console.WriteLine("NodeType: {0} NodeName: {1}", vr.NodeType, vr.Name);
    }

Di seguito viene indicato il contenuto del file di input, sample3.xml, da convalidare.

<root>
    <Schema 
      xmlns="urn:schemas-microsoft-com:xml-data" 
      xmlns:dt="urn:schemas-microsoft-com:datatypes">
        
      <ElementType name='row'>
      </ElementType>

      <ElementType name='data'>
        <element type='row' minOccurs='0' maxOccurs='*'/>
      </ElementType>
    </Schema>
    <data>
      <row/>
      <row/>
    </data>
</root>
Mostra: