@Override
  public void endElement(final String uri, final String localName, final String qName)
      throws SAXException {

    switch (mState) {
      case H1:
        if (qName.equals("h1")) {
          mState = UNKNOWN;
          synopsis.error = mBuilder.toString();
        }
        break;
      case SYNOPSIS:
        if (qName.equals("synopsis")) {
          mState = UNKNOWN;
          synopsis.synopsis = mBuilder.toString();
        }
        break;

      default:
        // do nothing
        break;
    }
  }
  @Override
  public void startElement(
      final String uri, final String localName, final String qName, final Attributes attributes)
      throws SAXException {

    mBuilder.setLength(0);

    switch (mState) {
      case UNKNOWN:
        if (qName.equals("h1")) {
          mState = H1;

        } else if (qName.equals("synopsis")) {
          mState = SYNOPSIS;
        }
        break;

      default:
        // do nothing
        break;
    }
  }
 @Override
 public void characters(final char[] ch, final int start, final int length) throws SAXException {
   mBuilder.append(ch, start, length);
 }