code: private static PrivacyItem parseItem(XmlPullParser parser) throws XmlPullParserException, IOException {
      // CHECKSTYLE:ON
          // Retrieves the required attributes
          String actionValue = parser.getAttributeValue("", "action");
          // Set the order number, this attribute is required
          long order = ParserUtils.getLongAttribute(parser, "order");
  
          // If type is not set, then it's the fall-through case
          String type = parser.getAttributeValue("", "type");
  
          /*
           * According the action value it sets the allow status. The fall-through action is assumed
           * to be "allow"
           */
          boolean allow;
          switch (actionValue) {
          case "allow":
              allow = true;
              break;
          case "deny":
              allow = false;
              break;
          default:
              // TODO: Should be SmackParsingException.
              throw new IOException("Unknown action value '" + actionValue + "'");
          }
  
          PrivacyItem item;
          if (type != null) {
              // If the type is not null, then we are dealing with a standard privacy item
              String value = parser.getAttributeValue("", "value");
              item = new PrivacyItem(PrivacyItem.Type.valueOf(type), value, allow, order);
          }
          else {
              // If the type is null, then we are dealing with the fall-through privacy item.
              item = new PrivacyItem(allow, order);
          }
          parseItemChildElements(parser, item);
          return item;
      // CHECKSTYLE:OFF
      }
docs: Parse the list complex type