Почему узлы и элементы отличаются в XML? Каково было обоснование?

Когда я некоторое время писал код, работающий с XML, я всегда задавался вопросом, в чем причина наличия как узлов, так и элементов? (Мы знаем, в чем различия). Оба они представляют теги (более или менее) и имеют разные методы, просто усложняют код.

Есть ли какая-то особая семантика или практические причины, или это просто тот факт, что спецификация DOM была сгенерирована комитетом?

4 ответа

Узел является базовым классом элемента - почти все в документе XML является узлом, например:

<!ENTITY...>
<xml a="myAttribute">
    SomeText
    <!-- A comment -->
</xml>

В приведенном выше примере:

  • <!ENTITY...> это сущность
  • <xml ... это элемент
  • a="myAttribute" это атрибут
  • SomeText текстовый узел
  • <!-- A comment --> это комментарий

Все вышеперечисленное наследуется от Node, фактически в приведенном выше примере myAttribute также текстовый узел.

Узел более общий, чем элемент. Проверьте эту страницу для всех различных "вещей", за которые может стоять Узел. Элемент - это только одна из тех возможностей, которая соответствует тегам. Важно подчеркнуть, что узлы обычно не представляют теги XML.

Например, <a>blah</a> содержит два узла. Первым является "элемент", представляющий <a> тег, второй текстовый узел, содержащий "бла".

Они оба не представляют теги. Элемент представляет узел, который начинается с начального тега и заканчивается конечным тегом. Элемент является узлом, но узел не обязательно является элементом. Например, узлы могут быть:

  • элементы
  • Текстовые данные
  • Комментарии

Пожалуйста, взгляните на разницу между элементом и узлом в XML? Подобный вопрос был задан ранее.

Резюме: элемент - это особый вид узла. Узлом также может быть узел атрибута, текстовый узел, узел комментариев и т. Д.

Другие вопросы по тегам