XmlTextReader.Normalization Özellik

Tanım

Boşluk ve öznitelik değerlerini normalleştirip normalleştirmeyeceğini belirten bir değer alır veya ayarlar.

public:
 property bool Normalization { bool get(); void set(bool value); };
public bool Normalization { get; set; }
member this.Normalization : bool with get, set
Public Property Normalization As Boolean

Özellik Değeri

true normalleştirmek için; aksi takdirde , false. Varsayılan değer: false.

Özel durumlar

Okuyucu kapatıldığında bu özelliği ayarlama (ReadState is ReadState.Closed).

Örnekler

Aşağıdaki örnekte, normalleştirmenin açık ve kapalı olduğu okuyucu davranışı gösterilmektedir.

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

public class Sample{

  public static void Main(){

    // Create the XML fragment to be parsed.
    string xmlFrag  =
    @"<item attr1='  test A B C
        1 2 3'/>
      <item attr2=''/>";

    // Create the XmlNamespaceManager.
    XmlNamespaceManager nsmgr = new XmlNamespaceManager(new NameTable());

    // Create the XmlParserContext.
    XmlParserContext context = new XmlParserContext(null, nsmgr, null, XmlSpace.Preserve);

    // Create the reader.
    XmlTextReader reader = new XmlTextReader(xmlFrag, XmlNodeType.Element, context);

    // Show attribute value normalization.
    reader.Read();
    reader.Normalization = false;
    Console.WriteLine("Attribute value:{0}", reader.GetAttribute("attr1"));
    reader.Normalization = true;
    Console.WriteLine("Attribute value:{0}", reader.GetAttribute("attr1"));

    // Set Normalization back to false.  This allows the reader to accept
    // character entities in the � to  range.  If Normalization had
    // been set to true, character entities in this range throw an exception.
    reader.Normalization = false;
    reader.Read();
    reader.MoveToContent();
    Console.WriteLine("Attribute value:{0}", reader.GetAttribute("attr2"));

    // Close the reader.
    reader.Close();
  }
}
Imports System.IO
Imports System.Xml

public class Sample

  public shared sub Main()

    ' Create the XML fragment to be parsed.
    Dim xmlFrag as string = "<item attr1='  test A B C " + Chr(10) & _
                            "   1 2 3'/>" + Chr(10) & _
                            "<item attr2=''/>"
                    

    ' Create the XmlNamespaceManager.
    Dim nsmgr as XmlNamespaceManager = new XmlNamespaceManager(new NameTable())

    ' Create the XmlParserContext.
    Dim context as XmlParserContext = new XmlParserContext(nothing, nsmgr, nothing, XmlSpace.Preserve)

    ' Create the reader.
    Dim reader as XmlTextReader = new XmlTextReader(xmlFrag, XmlNodeType.Element, context)

    ' Show attribute value normalization.
    reader.Read()
    reader.Normalization = false
    Console.WriteLine("Attribute value:{0}", reader.GetAttribute("attr1"))
    reader.Normalization = true
    Console.WriteLine("Attribute value:{0}", reader.GetAttribute("attr1"))

    ' Set Normalization back to false.  This allows the reader to accept
    ' character entities in the � to  range.  If Normalization had
    ' been set to true, character entities in this range throw an exception.
    reader.Normalization = false
    reader.Read()
    reader.MoveToContent()
    Console.WriteLine("Attribute value:{0}", reader.GetAttribute("attr2"))
  
    ' Close the reader.
    reader.Close()     
  
  end sub
end class

Açıklamalar

Note

XmlReader öneririz. Yeni işlevlerden yararlanmak için XmlReader.Create yöntemini kullanarak örnekler oluşturmanız.

Bu özellik herhangi bir zamanda değiştirilebilir ve bir sonraki okuma işlemi üzerinde etkili olur.

Note

XmlTextReader öznitelik değerlerini normalleştirmek için bir XmlValidatingReaderoluşturmak için kullanılıyorsa, Normalization olarak ayarlanmalıdırtrue.

olarak ayarlanırsa Normalizationfalse, bu, sayısal varlıklar için karakter aralığı denetimini de devre dışı bırakır. Sonuç olarak, gibi &#0;karakter varlıklarına izin verilir.

Aşağıda öznitelik değeri normalleştirmesi açıklanmaktadır:

  • Karakter başvurusu için, başvuruda bulunan karakteri öznitelik değerine ekleyin.

  • Varlık başvurusu için varlığın değiştirme metnini yinelemeli olarak işleyin.

  • Boşluk karakteri (#x20, #xD, #xA, #x9) için #x20 normalleştirilmiş değere ekleyin. (Dış ayrıştırılmış varlığın parçası olan "#xD#xA" dizisi veya iç ayrıştırılmış varlığın değişmez varlık değeri için yalnızca tek bir #x20 eklenir.)

  • Diğer karakterleri normalleştirilmiş değere ekleyerek işleyin.

  • Bildirilen değer CDATA değilse, baştaki ve sondaki boşlukları (#x20) atın ve boşluk (#x20) karakter dizilerini tek bir boşluk (#x20) karakteriyle değiştirin.

yalnızca XmlTextReader özniteliğini veya CDATA normalleştirmesini gerçekleştirir. içinde sarmalanmadığı XmlValidatingReadersürece DTD'ye özgü normalleştirme yapmaz.

Normalleştirme hakkında daha fazla bilgi için W3C XML 1.0 önerisine bakın.

Şunlara uygulanır

Ayrıca bkz.