code: public List<DataNode> dataNodes() {
          List<DataNode> dataNodes = new ArrayList<>();
          for (Node node : childNodes) {
              if (node instanceof DataNode)
                  dataNodes.add((DataNode) node);
          }
          return Collections.unmodifiableList(dataNodes);
      }
docs: Get this element's child data nodes. The list is unmodifiable but the data nodes may be manipulated.
  <p>
  This is effectively a filter on {@link #childNodes()} to get Data nodes.
  </p>
  @return child data nodes. If this element has no data nodes, returns an
  empty list.
  @see #data()