В XML атомный узел - это то же самое, что и конечный узел? - PullRequest
2 голосов
/ 10 октября 2011

Я работаю над учебным пособием по XML на веб-сайте W3Schools. Я на этой странице: http://www.w3schools.com/xsl/xquery_terms.asp

Я немного озадачен разницей между атомным узлом и листовым узлом. Это одно и то же? Я знаю, что листовой узел является узлом без дочерних узлов, но также кажется, что атомарные узлы в данном примере также не имеют дочерних узлов.

Сайт W3Schools говорит: «Атомные значения - это узлы без детей или родителей». Конечно, для узла невозможно не иметь родителя, так как все узлы в документе XML должны находиться под корневым узлом (корнем документа)?

Может кто-нибудь объяснить это мне, потому что я в замешательстве.

Спасибо.

Ответы [ 3 ]

9 голосов
/ 10 октября 2011

Я считаю, что w3schools часто является полезным ресурсом для поиска деталей информации, которую я однажды знал, но забыл, но это очень плохой ресурс для изучения новых концепций. Этот пример типичен: «Атомные значения - это узлы без дочерних или родительских элементов». Неправильно, совершенно неправильно. Атомные значения не являются узлами. В модели XDM, используемой XQuery, есть два вида элементов: узлы и атомарные значения. Я предлагаю вам использовать другой ресурс, который не приведет к ненужной путанице, предоставляя неверную информацию.

2 голосов
/ 10 октября 2011

В модели данных XQuery атомарное значение не является узлом.Это значение помечено атомарным типом.

Следовательно, узел (даже листовой узел) никогда не является атомарным значением, точно так же, как атомарное значение никогда не является узлом.Однако узел может быть «атомизирован» до атомарного значения, и в этом случае берется его типизированное значение (если оно есть).

0 голосов
/ 10 октября 2011

Пример показывает, что "Дж. К. Роулинг" является атомной.
У него нет родителей и нет детей. Это просто значение или узел сам по себе.
(Представьте текстовый файл только с этой строкой)

Но вот это: <author>J K. Rowling</author>, есть родитель и ребенок.
* Родитель: автор
* Ребенок: Дж. К. Роулинг
У автора может не быть родителя, но он не является атомарным, поскольку у него есть ребенок.
Дж. К. Роулинг может не иметь детей, но она не атомарна, поскольку у нее есть родитель.

Между тем, у листового узла нет дочерних, но у него может быть или не быть родительский узел.
Итак, в целом, атомарный узел - это просто подмножество конечного узла.

...