XmlTextReader.Normalization Özellik
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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 kapalıyken bu özelliği ayarlama (ReadState is ReadState.Closed
).
Örnekler
Aşağıdaki örnek, normalleştirmenin açık ve kapalı olduğu okuyucu davranışını gösterir.
#using <System.Xml.dll>
using namespace System;
using namespace System::IO;
using namespace System::Xml;
int main()
{
// Create the XML fragment to be parsed.
String^ xmlFrag = "<item attr1=' test A B C\n"
"1 2 3'/>\n"
"<item attr2=''/>\n";
// Create the XmlNamespaceManager.
XmlNamespaceManager^ nsmgr = gcnew XmlNamespaceManager( gcnew NameTable );
// Create the XmlParserContext.
XmlParserContext^ context = gcnew XmlParserContext( nullptr,nsmgr,nullptr,XmlSpace::Preserve );
// Create the reader.
XmlTextReader^ reader = gcnew 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();
}
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
Not
.NET Framework 2.0'dan başlayarak, yeni işlevlerden yararlanmak için yöntemini kullanarak XmlReader.Create örnekler oluşturmanızı XmlReader öneririz.
Bu özellik herhangi bir zamanda değiştirilebilir ve bir sonraki okuma işleminde etkili olur.
Not
XmlTextReader öznitelik değerlerini normalleştirmek için bir XmlValidatingReaderoluşturmak için kullanılıyorsa, Normalization
olarak ayarlanmalıdırtrue
.
olarak ayarlanırsa Normalization
false
, bu, sayısal varlıklar için karakter aralığı denetimini de devre dışı bırakır. Sonuç olarak, gibi �
karakter varlıklarına izin verilir.
Öznitelik değeri normalleştirmesi aşağıda 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 için (#x20, #xD, #xA, #x9), normalleştirilmiş değere #x20 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şluk (#x20) karakterleri atıp 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ığı XmlValidatingReader
sürece DTD'ye özgü normalleştirme yapmaz.
Normalleştirme hakkında daha fazla bilgi için W3C XML 1.0 önerisine bakın.