code: private String readCharactersUntilEndOfArgument(XMLEventReader reader,
                                                      QName tagName,
                                                      String methodName,
                                                      String argumentName,
                                                      String argumentType)
              throws XMLStreamException, JournalException {
          StringBuffer stringValue = new StringBuffer();
          while (true) {
              XMLEvent event = reader.nextEvent();
              if (event.isCharacters()) {
                  stringValue.append(event.asCharacters().getData());
              } else if (isEndTagEvent(event, tagName)) {
                  break;
              } else {
                  throw getUnexpectedEventInArgumentException(argumentName,
                                                              argumentType,
                                                              methodName,
                                                              event);
              }
          }
          return stringValue.toString();
      }
docs: Loop through a series of character events, accumulating the data into a
  String. The character events should be terminated by an EndTagEvent with
  the expected tag name.