// make sure we can repeat this
assertTrue(reader.hasMoreAttributeReaders());
assertTrue(reader.hasMoreAttributeReaders());
assertTrue(reader.hasMoreAttributeReaders());
MessageReader one = reader.getNextAttributeReader();
assertEquals("one", one.getValue());
MessageReader two = reader.getNextAttributeReader();
assertEquals("two", two.getValue());
assertFalse(reader.hasMoreAttributeReaders());
assertTrue(reader.hasMoreElementReaders());
assertTrue(reader.hasMoreElementReaders());
assertTrue(reader.hasMoreElementReaders());
MessageReader foo = reader.getNextElementReader();
assertEquals("bar", foo.getValue());
MessageReader nil = reader.getNextElementReader();
assertTrue(nil.isXsiNil());
nil.readToEnd();
assertTrue(reader.hasMoreElementReaders());
MessageReader child = reader.getNextElementReader();
assertEquals("child", child.getLocalName());
assertTrue(child.hasMoreElementReaders());
MessageReader gc1 = child.getNextElementReader();
assertEquals("asdf", gc1.getValue());
MessageReader gc2 = child.getNextElementReader();
assertEquals("asdf", gc2.getValue());
assertFalse(child.hasMoreElementReaders());
assertTrue(reader.hasMoreElementReaders());
foo = reader.getNextElementReader();