XmlTextReader.Normalization Tulajdonság
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Lekéri vagy beállít egy értéket, amely jelzi, hogy normalizálja-e a térközt és az attribútumértékeket.
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
Tulajdonság értéke
truenormalizálni; egyéb esetben. false Az alapértelmezett érték a false.
Kivételek
A tulajdonság beállítása az olvasó bezárásakor (ReadState is ReadState.Closed).
Példák
Az alábbi példa be- és kikapcsolt normalizálással mutatja be az olvasó viselkedését.
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
Megjegyzések
Note
Javasoljuk, hogy az új funkciók kihasználásához hozzon létre XmlReader példányokat a XmlReader.Create metódus használatával.
Ez a tulajdonság bármikor módosítható, és a következő olvasási műveletre lép érvénybe.
Note
Ha az XmlTextReader attribútumértékek létrehozására XmlValidatingReaderszolgál, Normalization akkor az értékeket a következőre kell állítani true: .
Ha Normalization be van állítva false, ez a numerikus entitások karaktertartomány-ellenőrzését is letiltja. Ennek eredményeképpen a karakterentitások( például �) engedélyezettek.
Az alábbiak az attribútumérték normalizálását ismertetik:
Karakterhivatkozás esetén fűzze hozzá a hivatkozott karaktert az attribútumértékhez.
Entitáshivatkozás esetén rekurzív módon dolgozza fel az entitás helyettesítő szövegét.
Üres szóköz karakter (#x20, #xD, #xA, #x9) esetén fűzze hozzá #x20 a normalizált értékhez. (Csak egyetlen #x20 van hozzáfűzve egy külső elemzéssel rendelkező entitás részét képező "#xD#xA" sorozathoz, vagy egy belső elemző entitás literál entitásértékéhez.)
Más karakterek feldolgozásához fűzze őket a normalizált értékhez.
Ha a deklarált érték nem CDATA, elvetheti a kezdő és záró szóköz (#x20) karaktereket, és cserélje le a szóköz (#x20) karaktersorozatait egyetlen szóköz (#x20) karakterre.
Az XmlTextReader egyetlen attribútum vagy CDATA normalizálása. Csak akkor végez DTD-specifikus normalizálást, ha egy XmlValidatingReader.
A normalizálásról a W3C XML 1.0-s javaslatában tájékozódhat.