code: protected boolean compareNodeBasics(Node control, Node test,
                                          DifferenceListener listener) throws DifferenceFoundException {
          controlTracker.visited(control);
          testTracker.visited(test);
  
          Short controlType = new Short(control.getNodeType());
          Short testType = new Short(test.getNodeType());
  
          boolean textAndCDATA = comparingTextAndCDATA(control.getNodeType(),
                                                       test.getNodeType());
          if (!textAndCDATA) {
              compare(controlType, testType, control, test, listener,
                      NODE_TYPE);
          }
          compare(control.getNamespaceURI(), test.getNamespaceURI(),
                  control, test, listener, NAMESPACE_URI);
          compare(control.getPrefix(), test.getPrefix(),
                  control, test, listener, NAMESPACE_PREFIX);
              
          return textAndCDATA || controlType.equals(testType);
      }
docs: Compares node type and node namespace characteristics: basically
  determines if nodes are comparable further
  @param control
  @param test
  @param listener
  @return true if the nodes are comparable further, false otherwise
  @throws DifferenceFoundException