Porovnání objektů pomocí XmlNameTable
XmlDocuments při vytváření mají tabulku názvů vytvořenou speciálně pro daný dokument. Při načtení XML do dokumentu nebo nové prvky nebo atributy jsou vytvořeny, atribut a názvy elementů jsou vloženy do XmlNameTable. Můžete také vytvořit xmldocument pomocí existující tabulky NameTable z jiného dokumentu. Když se vytvoří XmlDocuments pomocí konstruktoru , který přebírá parametr XmlNameTable , má dokument přístup k názvům uzlů, oborům názvů a předponám, které jsou již uloženy v XmlNameTable. Bez ohledu na to, jak je tabulka názvů načtena s názvy, je možné názvy po uložení v tabulce rychle porovnat pomocí porovnání objektů místo porovnání řetězců. Řetězce lze také přidat do tabulky názvů pomocí znaku Add. Následující ukázka kódu ukazuje vytvářenou tabulku názvů a řetězec MyString , který se přidává do tabulky. Potom se pomocí této tabulky vytvoří XmlDocument a názvy elementů a atributů v Myfile.xml se přidají do existující tabulky názvů.
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");
Následující příklad kódu ukazuje vytvoření dokumentu, dva nové prvky, které se přidají do dokumentu, které také přidá do tabulky názvů dokumentu a porovnání objektů s názvy.
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))
{ ...
Výše uvedený scénář tabulky názvů předávané mezi dvěma dokumenty je typický, když se opakovaně zpracovává stejný typ dokumentu, jako jsou například dokumenty objednávek na webu elektronického obchodování, které odpovídají schématu XSD (XML Schema Definition Language) nebo definici typu dokumentu (DTD) a stejné řetězce se opakují. Použití stejné tabulky názvů poskytuje zlepšení výkonu, protože stejný název prvku se vyskytuje ve více dokumentech.