Objektjämförelse med XmlNameTable

När xmlDocuments skapas har en namntabell skapats specifikt för dokumentet. När XML läses in i dokumentet, eller nya element eller attribut skapas, placeras attribut- och elementnamnen i XmlNameTable. Du kan också skapa en XmlDocument med hjälp av en befintlig NameTable från ett annat dokument. När XmlDocuments skapas med konstruktorn som tar en XmlNameTable-parameter har dokumentet åtkomst till nodnamnen, namnrymderna och prefixen som redan lagras i XmlNameTable. Oavsett hur namntabellen läses in med namn kan namn snabbt jämföras med objektjämförelse i stället för strängjämförelse när namnen har lagrats i tabellen. Strängar kan också läggas till i namntabellen med hjälp av Add. Följande kodexempel visar en namntabell som skapas och strängen MyString som läggs till i tabellen. Därefter skapas en XmlDocument med hjälp av den tabellen, och element- och attributnamnen i Myfile.xml läggs till i den befintliga namntabellen.

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");  

Följande kodexempel visar skapandet av ett dokument, två nya element som läggs till i dokumentet, som också lägger till dem i dokumentnamnstabellen och objektjämförelsen för namnen.

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))  
{ ...  

Scenariot ovan för en namntabell som skickas mellan två dokument är typiskt när samma typ av dokument bearbetas upprepade gånger, till exempel orderdokument på en e-handelsplats, som överensstämmer med ett XSD-schema (XML Schema Definition Language) schema eller dokumenttypsdefinition (DTD) och samma strängar upprepas. Att använda samma namntabell ger en prestandaförbättring, eftersom samma elementnamn förekommer i flera dokument.

Se även