### Question:
RecursiveChildNodeIterator implements IIterableIterator <Node> { public boolean hasNext () { return m_aIter.hasNext (); } RecursiveChildNodeIterator(@Nonnull final Node aParent); boolean hasNext(); Node next(); @Override String toString();  }### Answer:
@Test public void testBasic () { final Document doc = XMLFactory.newDocument (); assertFalse (new RecursiveChildNodeIterator (doc).hasNext ()); final Element eRoot = (Element) doc.appendChild (doc.createElement ("root")); int nCount = 0; for (final Node aNode : new RecursiveChildNodeIterator (doc)) { assertNotNull (aNode); ++nCount; } assertEquals (1, nCount); eRoot.appendChild (doc.createTextNode ("Hallo Welt")); nCount = 0; final RecursiveChildNodeIterator it = new RecursiveChildNodeIterator (doc); for (final Node aNode : it) { assertNotNull (aNode); ++nCount; } assertEquals (2, nCount); try { it.remove (); fail (); } catch (final UnsupportedOperationException ex) {} }