Porównywanie obiektów przy użyciu tabeli XmlNameTable
Po utworzeniu dokumenty XmlDocuments mają utworzoną specjalnie dla tego dokumentu tabelę nazw. Po załadowaniu kodu XML do dokumentu lub utworzeniu nowych elementów lub atrybutów nazwy atrybutów i elementów są umieszczane w tabeli XmlNameTable. Możesz również utworzyć dokument XmlDocument przy użyciu istniejącej tabeli NameTable z innego dokumentu. Gdy dokumenty XmlDocuments są tworzone za pomocą konstruktora, który przyjmuje parametr XmlNameTable , dokument ma dostęp do nazw węzłów, przestrzeni nazw i prefiksów już przechowywanych w tabeli XmlNameTable. Niezależnie od tego, jak tabela nazw jest ładowana z nazwami, gdy nazwy są przechowywane w tabeli, nazwy można szybko porównać przy użyciu porównania obiektów zamiast porównywania ciągów. Ciągi można również dodać do tabeli nazw przy użyciu .Add Poniższy przykładowy kod przedstawia utworzoną tabelę nazw i ciąg MyString dodawany do tabeli. Następnie zostanie utworzony dokument XmlDocument przy użyciu tej tabeli, a nazwy elementów i atrybutów w Myfile.xml zostaną dodane do istniejącej tabeli nazw.
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");
Poniższy przykład kodu przedstawia tworzenie dokumentu, dwa nowe elementy dodawane do dokumentu, które również dodaje je do tabeli nazw dokumentów oraz porównanie obiektów w nazwach.
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))
{ ...
Powyższy scenariusz tabeli nazw przekazywany między dwoma dokumentami jest typowy, gdy ten sam typ dokumentu jest przetwarzany wielokrotnie, na przykład dokumenty zamówień w witrynie handlu elektronicznego, które są zgodne ze schematem języka definicji schematu XML (XSD) lub definicją typu dokumentu (DTD), a te same ciągi są powtarzane. Użycie tej samej tabeli nazw zwiększa wydajność, ponieważ ta sama nazwa elementu występuje w wielu dokumentach.