code: public static MetaData parseMap(final Reader xmlStreamReader, final Parser pzparser)
              throws IOException, ParserConfigurationException, SAXException {
          final Map map = parse(xmlStreamReader, pzparser);
  
          final List<ColumnMetaData> col = (List<ColumnMetaData>) map.get(FPConstants.DETAIL_ID);
          map.remove(FPConstants.DETAIL_ID);
  
          final Map m = (Map) map.get(FPConstants.COL_IDX);
          map.remove(FPConstants.COL_IDX);
  
          // loop through the map and remove anything else that is an index of FPConstancts.COL_IDX + _
          // these were put in for the writer.
          // TODO maybe these should be thrown into the MetaData instead of just discarded, but they are unused
          // in the Reader the moment. This parseMap is not utilized in the writer so it is safe to remove them here
          final Iterator entrySetIt = map.entrySet().iterator();
          while (entrySetIt.hasNext()) {
              final Entry e = (Entry) entrySetIt.next();
              if (((String) e.getKey()).startsWith(FPConstants.COL_IDX + "_")) {
                  entrySetIt.remove();
              }
          }
  
          return new MetaData(col, m, map);
      }
docs: New method based on Reader. Reads the XMLDocument for a PZMetaData
  file from an InputStream, WebStart compatible. Parses the XML file, and
  returns a Map containing Lists of ColumnMetaData.
  
  @param xmlStreamReader
  @param pzparser
  Can be null.  Allows additional opts to be set during the XML map read
  @return Map &lt;records&gt; with their corresponding
  @throws IOException
  @throws SAXException
  @throws ParserConfigurationException