code: private static Version readVersion(XmlPullParser parser) throws IOException, XmlPullParserException {
          parser.require(XmlPullParser.START_TAG, null, TAG_VERSION);
          Version version = new Version();
  
          // Pull attribute
          version.code = Utils.parseInt(parser.getAttributeValue(null, ATTR_CODE), -1);
          version.name = parser.getAttributeValue(null, ATTR_NAME);
          version.date = parser.getAttributeValue(null, ATTR_DATE);
  
          // Pull children
          while(parser.next() != XmlPullParser.END_TAG){
              if (parser.getEventType() != XmlPullParser.START_TAG) {
                  continue;
              }
              String name = parser.getName();
              switch (name){
                  case TAG_CHANGE:
                      version.addChange(readChange(parser));
                      break;
                  default:
                      skip(parser);
              }
  
          }
  
          return version;
      }
docs: Read an XML defined Library object
  
  @param parser        the pull parser
  @return              the parsed Library object
  
  @throws IOException              if there was a problem reading the file
  @throws XmlPullParserException   if there was a problem parsing the library