Objektum-összehasonlítás XmlNameTable használatával

Az XmlDocuments létrehozásakor egy névtáblát hoztak létre kifejezetten ehhez a dokumentumhoz. Amikor az XML be van töltve a dokumentumba, vagy új elemeket vagy attribútumokat hoz létre, az attribútum és az elemnevek bekerülnek az XmlNameTable-ba. XmlDocumentet egy másik dokumentumból származó meglévő névtáblával is létrehozhat. Amikor az XmlDocuments egy XmlNameTable paramétert használó konstruktorsal jön létre, a dokumentum hozzáfér az XmlNameTable-ban már tárolt csomópontnevekhez, névterekhez és előtagokhoz. Függetlenül attól, hogy a névtáblát hogyan töltik fel nevekkel, amint a nevek a táblában vannak tárolva, gyorsan összehasonlíthatók objektum-összehasonlítással a szöveg-összehasonlítás helyett. A névtáblához karakterláncok is hozzáadhatók a Add. A következő kódminta bemutatja egy névtábla létrehozását és a MyString sztring hozzáadását a táblához. Ezt követően létrejön egy XmlDocument a tábla használatával, és a Myfile.xml elem- és attribútumnevei hozzá lesznek adva a meglévő névtáblához.

Dim nt As New NameTable()
nt.Add("MyString")
Dim doc As New XmlDocument(nt)
doc.Load("Myfile.xml")
NameTable nt = new NameTable();
nt.Add("MyString");
XmlDocument doc = new XmlDocument(nt);
doc.Load("Myfile.xml");

Az alábbi példakód egy dokumentum létrehozását mutatja be, két új elemet ad hozzá a dokumentumhoz, amelyek szintén hozzáadják őket a dokumentumnévtáblához, valamint a nevek objektum-összehasonlítását.

Dim doc1 As XmlDocument = imp.CreateDocument()
Dim node1 As XmlElement = doc.CreateElement("node1")
Dim doc2 As XmlDocument = imp.CreateDocument()
Dim node2 As XmlElement = doc.CreateElement("node2")
if (CType(node1.Name, object) = CType(node2.Name, object))
XmlDocument doc1 = imp.CreateDocument();
node1 = doc1.CreateElement ("node1");
XmlDocument doc2 = imp.CreateDocument();
node2 = doc2.CreateElement ("node1");
if (((object)node1.Name) == ((object)node2.Name))
{ ...

A két dokumentum között átadott névtáblák fenti forgatókönyve jellemző, ha ugyanazt a dokumentumtípust többször dolgozzák fel, például egy e-kereskedelmi webhelyen lévő rendelési dokumentumokat, amelyek megfelelnek egy XML-sémadefiníciós nyelvnek (XSD) vagy dokumentumtípus-definíciónak (DTD), és ugyanazokat a sztringeket ismétlik. Ha ugyanazt a névtáblát használja, az teljesítménybeli javulást eredményez, mivel ugyanaz az elemnév több dokumentumban is előfordul.

Lásd még