Abstract node (marker) trait hierarchy. It offers a common minimal API for different kinds of nodes. It also shows
what yaidom typically considers to be nodes, and what it does not consider to be nodes. For example, documents
are not nodes in yaidom, so it is thus prevented to create documents as element children. Moreover, attributes
are typically not nodes in yaidom, although custom element implementations may think otherwise.
The down-side is that we have to consider mixing in these traits everywhere we create a node/element implementation.
Abstract node (marker) trait hierarchy. It offers a common minimal API for different kinds of nodes. It also shows what yaidom typically considers to be nodes, and what it does not consider to be nodes. For example, documents are not nodes in yaidom, so it is thus prevented to create documents as element children. Moreover, attributes are typically not nodes in yaidom, although custom element implementations may think otherwise.
The down-side is that we have to consider mixing in these traits everywhere we create a node/element implementation.