code: public static GTRPublicData read(final Reader reader) throws IOException {
          checkNotNull(reader);
          try {
              // todo:  may want to cache some of this for performance reasons
              JAXBContext context = JAXBContext.newInstance(GTRPublicData.class);
              Unmarshaller unmarshaller = context.createUnmarshaller();
              SchemaFactory schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
              URL schemaURL = GtrReader.class.getResource("/org/nmdp/ngs/gtr/xsd/GTRPublicData.xsd");
              Schema schema = schemaFactory.newSchema(schemaURL);
              unmarshaller.setSchema(schema);
              return (GTRPublicData) unmarshaller.unmarshal(reader);
          }
          catch (JAXBException | SAXException e) {
              throw new IOException("could not unmarshal GTRPublicData", e);
          }
      }
docs: Read GTR public data from the specified reader.
  
  @param reader reader to read from, must not be null
  @return the GTR public data read from the specified reader
  @throws IOException if an I/O error occurs