XmlDocuments를 만들 때 해당 문서에 대해 특별히 만든 이름 테이블이 있습니다. XML이 문서에 로드되거나 새 요소 또는 특성이 만들어지면 특성 및 요소 이름이 XmlNameTable에 배치됩니다. 다른 문서의 기존 NameTable을 사용하여 XmlDocument를 만들 수도 있습니다. XmlNameTable 매개 변수를 사용하는 생성자를 사용하여 XmlDocuments를 만들면 문서에서 XmlNameTable에 이미 저장된 노드 이름, 네임스페이스 및 접두사에 액세스할 수 있습니다. 이름 테이블이 이름으로 로드되는 방식에 관계없이 이름이 테이블에 저장되면 문자열 비교 대신 개체 비교를 사용하여 이름을 빠르게 비교할 수 있습니다. 을 사용하여 Add이름 테이블에 문자열을 추가할 수도 있습니다. 다음 코드 샘플에서는 만들어지는 이름 테이블과 테이블에 추가되는 문자열 MyString 을 보여 있습니다. 그런 다음 해당 테이블을 사용하여 XmlDocument 를 만들고 Myfile.xml 요소 및 특성 이름이 기존 이름 테이블에 추가됩니다.
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");
다음 코드 예제에서는 문서 만들기, 문서에 추가되는 두 개의 새 요소, 문서 이름 테이블에 추가되는 요소 및 이름에 대한 개체 비교를 보여 주는 코드 예제입니다.
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))
{ ...
두 문서 간에 전달된 이름 테이블의 위의 시나리오는 XSD(XML 스키마 정의 언어) 스키마 또는 DTD(문서 형식 정의)를 준수하는 전자 상거래 사이트의 주문 문서와 같이 동일한 유형의 문서가 반복적으로 처리되고 동일한 문자열이 반복되는 경우에 일반적입니다. 동일한 이름 테이블을 사용하면 여러 문서에서 동일한 요소 이름이 발생하므로 성능이 향상됩니다.
참고하십시오
.NET