Objectvergelijking met xmlNameTable
Bij het maken van XmlDocuments hebt u een naamtabel gemaakt die specifiek voor dat document is gemaakt. Wanneer XML in het document wordt geladen of nieuwe elementen of kenmerken worden gemaakt, worden de kenmerk- en elementnamen in de XmlNameTable geplaatst. U kunt ook een XmlDocument maken met behulp van een bestaande naamtabel uit een ander document. Wanneer XmlDocuments worden gemaakt met de constructor die een xmlNameTable-parameter gebruikt, heeft het document toegang tot de knooppuntnamen, naamruimten en voorvoegsels die al zijn opgeslagen in de XmlNameTable. Ongeacht hoe de naamtabel wordt geladen met namen, kunnen namen, nadat de namen zijn opgeslagen in de tabel, snel worden vergeleken met behulp van objectvergelijking in plaats van tekenreeksvergelijking. Tekenreeksen kunnen ook worden toegevoegd aan de naamtabel met behulp van de Addtabel . In het volgende codevoorbeeld ziet u een naamtabel die wordt gemaakt en de tekenreeks MyString die wordt toegevoegd aan de tabel. Daarna wordt een XmlDocument gemaakt met behulp van die tabel en worden de element- en kenmerknamen in Myfile.xml toegevoegd aan de bestaande naamtabel.
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");
In het volgende codevoorbeeld ziet u het maken van een document, twee nieuwe elementen die aan het document worden toegevoegd, waarmee ze ook worden toegevoegd aan de documentnaamtabel en de objectvergelijking op de namen.
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))
{ ...
Het bovenstaande scenario van een naamtabel die tussen twee documenten wordt doorgegeven, is gebruikelijk wanneer hetzelfde type document herhaaldelijk wordt verwerkt, zoals orderdocumenten op een e-commercesite, die voldoen aan een XSD-schema (XML Schema Definition Language) of documenttypedefinitie (DTD) en dezelfde tekenreeksen worden herhaald. Als u dezelfde naamtabel gebruikt, krijgt u een prestatieverbetering, omdat dezelfde elementnaam in meerdere documenten voorkomt.