@Override
  public void fromXML(XmlPullParser parser) throws Exception {
    boolean done = false;

    do {
      switch (parser.getEventType()) {
        case XmlPullParser.START_TAG:
          String tagName = parser.getName();

          if (tagName.equals(getChildElement())) {
            parser.next();
          } else if (tagName.equals(TicketAmount.CHILD_ELEMENT)) {
            TicketAmount entity = new TicketAmount();

            entity.fromXML(parser);
            this.Tickets.add(entity);

            parser.next();
          } else if (tagName.equals("error")) {
            parser = parseErrorAttributes(parser);
          } else parser.next();
          break;
        case XmlPullParser.END_TAG:
          if (parser.getName().equals(getChildElement())) done = true;
          else parser.next();
          break;
        case XmlPullParser.END_DOCUMENT:
          done = true;
          break;
        default:
          parser.next();
      }
    } while (!done);
  }
  @Override
  public String payloadToXML() {
    StringBuilder sb = new StringBuilder();

    for (TicketAmount entry : Tickets) {
      sb.append("<" + TicketAmount.CHILD_ELEMENT + ">");
      sb.append(entry.toXML());
      sb.append("</" + TicketAmount.CHILD_ELEMENT + ">");
    }

    sb = appendErrorPayload(sb);

    return sb.toString();
  }