Ответ 1
В общих чертах DOM является моделью для структурированного документа.
Это центральная концепция в сегодняшнем ИТ, и ни один разработчик не может отказаться от DOM. Будь то в .net, в HTML, в XML или других доменах, где он используется.
Он применяется ко всем документам (текстовые документы, HTML-страницы, файлы XML и т.д.). В сфере разработчика он применяется в основном в HTML и XML-доменах с немного отличающимися значениями.
HTML
На арене HTML DOM был представлен для поддержки революции, названной в конце 90-х годов "динамическим HTML". До IE4 и Netscape 4.0 HTML-документы, которые не изменялись внутри браузера (все, что у вас было в эти удаленные времена, чтобы создать веб-страницу, было "анимированный GIF"!!!! и HTML был версии 3.2).
Поэтому динамическое манипулирование внутри браузера документа, отправленного сервером, было огромной революцией и инициировало марш к привлекательным веб-сайтам, которые мы видим сегодня.
Javascript был представлен Netscape (крестил javascript для навигации по новому тренду Java, но не связан) и был поддержан как Netscape HTTP-серверами, так и браузерами Netscape, и Internet Explorer с нетерпением следил за ходом внутри браузера. Однако, когда javascript используется для управления содержимым документа, вам нужен простой способ обозначить часть документа, с которым вы хотите взаимодействовать. То, что входит в DOM. Хотя HTML 4 не "хорошо сформирован", браузеры создают внутреннее представление страницы с элементом "body" наверху и множеством html-тегов ниже, в иерархической организации (дочерние узлы, родительские атрибуты узлов и т.д.). DOM - это модель, лежащая в основе API, которая позволяет ориентироваться в этой иерархии.
Поскольку оба браузера Netscape и IE были конкурирующими решениями, было мало шансов, что NS и IE DOM будут сходиться. W3C вмешался, чтобы позволить меньшим поставщикам браузеров выйти на конкурс и попытаться стандартизировать DOM. Следовательно, W3C DOM. Все, что он сделал, это просто ввести другой диалект, и, как всем известно, потребовались годы и два серьезных конкурента, чтобы заставить MS соблюдать стандарты.
Несмотря на то, что более современные навигационные методы, такие как JQuery, имеют сокращенные обозначения для DOM, они внутренне полагаются на DOM.
XML
HTML сделал очевидным недостатки в проявлении снисхождения к "правильности" документов, и это открыло новое увлечение: XML. На веб-арене XML и XSLT были сначала поддержаны IE5 и приняты во многих других областях, чем просто отображение страниц.
Для синтаксического анализа XML в Java Word в основном вы должны разработать SAX-парсер, который в основном является плагином для SAX-механизма, в котором вы описываете, что движок должен делать из всех событий XML (тегов...), которые он встретит в проанализированный документ. Разработка синтаксического анализатора SAX не является простым, но является решением с малым размером.
Однако вам нужно разработать конкретный для каждого нового типа документа...
Поэтому незадолго до того, как библиотеки начали появляться, чтобы разобрать любой документ и построить карту памяти в своей памяти. Поскольку он также имел те же концепции корней, родителей и детей (унаследованных от SGML через HTML), он также назывался DOM, и имя применяется независимо от библиотеки.
Другие домены
Концепция DOM не ограничивается или даже не придумана для HTML или XML. DOM является общей концепцией, применимой к любому документу, особенно тем, которые (подавляющее большинство из них) показывают иерархическую структуру, в которой вам нужно ориентироваться. Вы можете говорить о DOM документа MS-Word, и есть API-интерфейсы для навигации по ним.