//
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 
// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
// Any modifications to this file will be lost upon recompilation of the source schema. 
// Generated on: 2018.09.14 at 02:46:00 PM BST 
//

package jalview.xml.binding.embl;

import java.math.BigInteger;
import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElements;
import javax.xml.bind.annotation.XmlSchemaType;
import javax.xml.bind.annotation.XmlType;
import javax.xml.datatype.XMLGregorianCalendar;

/**
 * <p>
 * Java class for EntryType complex type.
 * 
 * <p>
 * The following schema fragment specifies the expected content contained within
 * this class.
 * 
 * <pre>
 * &lt;complexType name="EntryType">
 *   &lt;complexContent>
 *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *       &lt;sequence>
 *         &lt;element name="secondaryAccession" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/>
 *         &lt;element name="projectAccession" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/>
 *         &lt;element name="description" type="{http://www.w3.org/2001/XMLSchema}string"/>
 *         &lt;element name="comment" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
 *         &lt;element name="keyword" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/>
 *         &lt;element name="reference" maxOccurs="unbounded" minOccurs="0">
 *           &lt;complexType>
 *             &lt;complexContent>
 *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                 &lt;sequence>
 *                   &lt;element name="title" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
 *                   &lt;element name="author" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/>
 *                   &lt;element name="applicant" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/>
 *                   &lt;element name="consortium" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
 *                   &lt;element name="submissionDate" type="{http://www.w3.org/2001/XMLSchema}date" minOccurs="0"/>
 *                   &lt;element name="journal" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
 *                   &lt;element name="year" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
 *                   &lt;element name="volume" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
 *                   &lt;element name="issue" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
 *                   &lt;element name="firstPage" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
 *                   &lt;element name="lastPage" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
 *                   &lt;element name="comment" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
 *                   &lt;element name="referenceLocation" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
 *                   &lt;element name="xref" type="{}XrefType" maxOccurs="unbounded" minOccurs="0"/>
 *                 &lt;/sequence>
 *                 &lt;attribute name="type" use="required">
 *                   &lt;simpleType>
 *                     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">
 *                       &lt;enumeration value="submission"/>
 *                       &lt;enumeration value="book"/>
 *                       &lt;enumeration value="article"/>
 *                       &lt;enumeration value="patent"/>
 *                       &lt;enumeration value="thesis"/>
 *                       &lt;enumeration value="unpublished"/>
 *                     &lt;/restriction>
 *                   &lt;/simpleType>
 *                 &lt;/attribute>
 *                 &lt;attribute name="number" use="required" type="{http://www.w3.org/2001/XMLSchema}integer" />
 *                 &lt;attribute name="location" type="{http://www.w3.org/2001/XMLSchema}string" />
 *               &lt;/restriction>
 *             &lt;/complexContent>
 *           &lt;/complexType>
 *         &lt;/element>
 *         &lt;element name="xref" type="{}XrefType" maxOccurs="unbounded" minOccurs="0"/>
 *         &lt;element name="feature" maxOccurs="unbounded" minOccurs="0">
 *           &lt;complexType>
 *             &lt;complexContent>
 *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                 &lt;sequence>
 *                   &lt;element name="taxon" minOccurs="0">
 *                     &lt;complexType>
 *                       &lt;complexContent>
 *                         &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                           &lt;sequence>
 *                             &lt;element name="lineage" minOccurs="0">
 *                               &lt;complexType>
 *                                 &lt;complexContent>
 *                                   &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                                     &lt;sequence>
 *                                       &lt;element name="taxon" maxOccurs="unbounded">
 *                                         &lt;complexType>
 *                                           &lt;complexContent>
 *                                             &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                                               &lt;attribute name="scientificName" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
 *                                             &lt;/restriction>
 *                                           &lt;/complexContent>
 *                                         &lt;/complexType>
 *                                       &lt;/element>
 *                                     &lt;/sequence>
 *                                   &lt;/restriction>
 *                                 &lt;/complexContent>
 *                               &lt;/complexType>
 *                             &lt;/element>
 *                           &lt;/sequence>
 *                           &lt;attribute name="scientificName" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
 *                           &lt;attribute name="commonName" type="{http://www.w3.org/2001/XMLSchema}string" />
 *                           &lt;attribute name="taxId" type="{http://www.w3.org/2001/XMLSchema}integer" />
 *                         &lt;/restriction>
 *                       &lt;/complexContent>
 *                     &lt;/complexType>
 *                   &lt;/element>
 *                   &lt;element name="xref" type="{}XrefType" maxOccurs="unbounded" minOccurs="0"/>
 *                   &lt;element name="qualifier" maxOccurs="unbounded" minOccurs="0">
 *                     &lt;complexType>
 *                       &lt;complexContent>
 *                         &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                           &lt;sequence>
 *                             &lt;element name="value" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
 *                           &lt;/sequence>
 *                           &lt;attribute name="name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
 *                         &lt;/restriction>
 *                       &lt;/complexContent>
 *                     &lt;/complexType>
 *                   &lt;/element>
 *                 &lt;/sequence>
 *                 &lt;attribute name="name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
 *                 &lt;attribute name="location" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
 *               &lt;/restriction>
 *             &lt;/complexContent>
 *           &lt;/complexType>
 *         &lt;/element>
 *         &lt;element name="assembly" minOccurs="0">
 *           &lt;complexType>
 *             &lt;complexContent>
 *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                 &lt;sequence>
 *                   &lt;element name="range" maxOccurs="unbounded">
 *                     &lt;complexType>
 *                       &lt;complexContent>
 *                         &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                           &lt;attribute name="begin" use="required" type="{http://www.w3.org/2001/XMLSchema}integer" />
 *                           &lt;attribute name="end" use="required" type="{http://www.w3.org/2001/XMLSchema}integer" />
 *                           &lt;attribute name="primaryBegin" type="{http://www.w3.org/2001/XMLSchema}integer" />
 *                           &lt;attribute name="primaryEnd" type="{http://www.w3.org/2001/XMLSchema}integer" />
 *                           &lt;attribute name="accession" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
 *                           &lt;attribute name="version" use="required" type="{http://www.w3.org/2001/XMLSchema}integer" />
 *                           &lt;attribute name="complement" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
 *                         &lt;/restriction>
 *                       &lt;/complexContent>
 *                     &lt;/complexType>
 *                   &lt;/element>
 *                 &lt;/sequence>
 *               &lt;/restriction>
 *             &lt;/complexContent>
 *           &lt;/complexType>
 *         &lt;/element>
 *         &lt;element name="contig" minOccurs="0">
 *           &lt;complexType>
 *             &lt;complexContent>
 *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                 &lt;sequence>
 *                   &lt;choice maxOccurs="unbounded" minOccurs="0">
 *                     &lt;element name="range">
 *                       &lt;complexType>
 *                         &lt;complexContent>
 *                           &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                             &lt;attribute name="begin" use="required" type="{http://www.w3.org/2001/XMLSchema}integer" />
 *                             &lt;attribute name="end" use="required" type="{http://www.w3.org/2001/XMLSchema}integer" />
 *                             &lt;attribute name="primaryBegin" type="{http://www.w3.org/2001/XMLSchema}integer" />
 *                             &lt;attribute name="primaryEnd" type="{http://www.w3.org/2001/XMLSchema}integer" />
 *                             &lt;attribute name="accession" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
 *                             &lt;attribute name="version" use="required" type="{http://www.w3.org/2001/XMLSchema}integer" />
 *                             &lt;attribute name="complement" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
 *                           &lt;/restriction>
 *                         &lt;/complexContent>
 *                       &lt;/complexType>
 *                     &lt;/element>
 *                     &lt;element name="gap">
 *                       &lt;complexType>
 *                         &lt;complexContent>
 *                           &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                             &lt;attribute name="begin" use="required" type="{http://www.w3.org/2001/XMLSchema}integer" />
 *                             &lt;attribute name="end" use="required" type="{http://www.w3.org/2001/XMLSchema}integer" />
 *                             &lt;attribute name="length" use="required" type="{http://www.w3.org/2001/XMLSchema}integer" />
 *                             &lt;attribute name="unknownLength" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
 *                           &lt;/restriction>
 *                         &lt;/complexContent>
 *                       &lt;/complexType>
 *                     &lt;/element>
 *                   &lt;/choice>
 *                 &lt;/sequence>
 *               &lt;/restriction>
 *             &lt;/complexContent>
 *           &lt;/complexType>
 *         &lt;/element>
 *         &lt;element name="sequence" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
 *       &lt;/sequence>
 *       &lt;attribute name="accession" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
 *       &lt;attribute name="version" use="required" type="{http://www.w3.org/2001/XMLSchema}integer" />
 *       &lt;attribute name="entryVersion" type="{http://www.w3.org/2001/XMLSchema}integer" />
 *       &lt;attribute name="dataClass" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
 *       &lt;attribute name="taxonomicDivision" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
 *       &lt;attribute name="moleculeType" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
 *       &lt;attribute name="sequenceLength" use="required" type="{http://www.w3.org/2001/XMLSchema}integer" />
 *       &lt;attribute name="topology" use="required">
 *         &lt;simpleType>
 *           &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">
 *             &lt;enumeration value="circular"/>
 *             &lt;enumeration value="linear"/>
 *           &lt;/restriction>
 *         &lt;/simpleType>
 *       &lt;/attribute>
 *       &lt;attribute name="firstPublic" type="{http://www.w3.org/2001/XMLSchema}date" />
 *       &lt;attribute name="firstPublicRelease" type="{http://www.w3.org/2001/XMLSchema}integer" />
 *       &lt;attribute name="lastUpdated" type="{http://www.w3.org/2001/XMLSchema}date" />
 *       &lt;attribute name="lastUpdatedRelease" type="{http://www.w3.org/2001/XMLSchema}integer" />
 *     &lt;/restriction>
 *   &lt;/complexContent>
 * &lt;/complexType>
 * </pre>
 * 
 * 
 */
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(
  name = "EntryType",
  propOrder =
  { "secondaryAccession", "projectAccession", "description", "comment",
      "keyword", "reference", "xref", "feature", "assembly", "contig",
      "sequence" })
public class EntryType
{

  protected List<String> secondaryAccession;

  protected List<String> projectAccession;

  @XmlElement(required = true)
  protected String description;

  protected String comment;

  protected List<String> keyword;

  protected List<EntryType.Reference> reference;

  protected List<XrefType> xref;

  protected List<EntryType.Feature> feature;

  protected EntryType.Assembly assembly;

  protected EntryType.Contig contig;

  protected String sequence;

  @XmlAttribute(name = "accession", required = true)
  protected String accession;

  @XmlAttribute(name = "version", required = true)
  protected BigInteger version;

  @XmlAttribute(name = "entryVersion")
  protected BigInteger entryVersion;

  @XmlAttribute(name = "dataClass", required = true)
  protected String dataClass;

  @XmlAttribute(name = "taxonomicDivision", required = true)
  protected String taxonomicDivision;

  @XmlAttribute(name = "moleculeType", required = true)
  protected String moleculeType;

  @XmlAttribute(name = "sequenceLength", required = true)
  protected BigInteger sequenceLength;

  @XmlAttribute(name = "topology", required = true)
  protected String topology;

  @XmlAttribute(name = "firstPublic")
  @XmlSchemaType(name = "date")
  protected XMLGregorianCalendar firstPublic;

  @XmlAttribute(name = "firstPublicRelease")
  protected BigInteger firstPublicRelease;

  @XmlAttribute(name = "lastUpdated")
  @XmlSchemaType(name = "date")
  protected XMLGregorianCalendar lastUpdated;

  @XmlAttribute(name = "lastUpdatedRelease")
  protected BigInteger lastUpdatedRelease;

  /**
   * Gets the value of the secondaryAccession property.
   * 
   * <p>
   * This accessor method returns a reference to the live list, not a snapshot.
   * Therefore any modification you make to the returned list will be present
   * inside the JAXB object. This is why there is not a <CODE>set</CODE> method
   * for the secondaryAccession property.
   * 
   * <p>
   * For example, to add a new item, do as follows:
   * 
   * <pre>
   * getSecondaryAccession().add(newItem);
   * </pre>
   * 
   * 
   * <p>
   * Objects of the following type(s) are allowed in the list {@link String }
   * 
   * 
   */
  public List<String> getSecondaryAccession()
  {
    if (secondaryAccession == null)
    {
      secondaryAccession = new ArrayList<String>();
    }
    return this.secondaryAccession;
  }

  /**
   * Gets the value of the projectAccession property.
   * 
   * <p>
   * This accessor method returns a reference to the live list, not a snapshot.
   * Therefore any modification you make to the returned list will be present
   * inside the JAXB object. This is why there is not a <CODE>set</CODE> method
   * for the projectAccession property.
   * 
   * <p>
   * For example, to add a new item, do as follows:
   * 
   * <pre>
   * getProjectAccession().add(newItem);
   * </pre>
   * 
   * 
   * <p>
   * Objects of the following type(s) are allowed in the list {@link String }
   * 
   * 
   */
  public List<String> getProjectAccession()
  {
    if (projectAccession == null)
    {
      projectAccession = new ArrayList<String>();
    }
    return this.projectAccession;
  }

  /**
   * Gets the value of the description property.
   * 
   * @return possible object is {@link String }
   * 
   */
  public String getDescription()
  {
    return description;
  }

  /**
   * Sets the value of the description property.
   * 
   * @param value
   *          allowed object is {@link String }
   * 
   */
  public void setDescription(String value)
  {
    this.description = value;
  }

  /**
   * Gets the value of the comment property.
   * 
   * @return possible object is {@link String }
   * 
   */
  public String getComment()
  {
    return comment;
  }

  /**
   * Sets the value of the comment property.
   * 
   * @param value
   *          allowed object is {@link String }
   * 
   */
  public void setComment(String value)
  {
    this.comment = value;
  }

  /**
   * Gets the value of the keyword property.
   * 
   * <p>
   * This accessor method returns a reference to the live list, not a snapshot.
   * Therefore any modification you make to the returned list will be present
   * inside the JAXB object. This is why there is not a <CODE>set</CODE> method
   * for the keyword property.
   * 
   * <p>
   * For example, to add a new item, do as follows:
   * 
   * <pre>
   * getKeyword().add(newItem);
   * </pre>
   * 
   * 
   * <p>
   * Objects of the following type(s) are allowed in the list {@link String }
   * 
   * 
   */
  public List<String> getKeyword()
  {
    if (keyword == null)
    {
      keyword = new ArrayList<String>();
    }
    return this.keyword;
  }

  /**
   * Gets the value of the reference property.
   * 
   * <p>
   * This accessor method returns a reference to the live list, not a snapshot.
   * Therefore any modification you make to the returned list will be present
   * inside the JAXB object. This is why there is not a <CODE>set</CODE> method
   * for the reference property.
   * 
   * <p>
   * For example, to add a new item, do as follows:
   * 
   * <pre>
   * getReference().add(newItem);
   * </pre>
   * 
   * 
   * <p>
   * Objects of the following type(s) are allowed in the list
   * {@link EntryType.Reference }
   * 
   * 
   */
  public List<EntryType.Reference> getReference()
  {
    if (reference == null)
    {
      reference = new ArrayList<EntryType.Reference>();
    }
    return this.reference;
  }

  /**
   * Gets the value of the xref property.
   * 
   * <p>
   * This accessor method returns a reference to the live list, not a snapshot.
   * Therefore any modification you make to the returned list will be present
   * inside the JAXB object. This is why there is not a <CODE>set</CODE> method
   * for the xref property.
   * 
   * <p>
   * For example, to add a new item, do as follows:
   * 
   * <pre>
   * getXref().add(newItem);
   * </pre>
   * 
   * 
   * <p>
   * Objects of the following type(s) are allowed in the list {@link XrefType }
   * 
   * 
   */
  public List<XrefType> getXref()
  {
    if (xref == null)
    {
      xref = new ArrayList<XrefType>();
    }
    return this.xref;
  }

  /**
   * Gets the value of the feature property.
   * 
   * <p>
   * This accessor method returns a reference to the live list, not a snapshot.
   * Therefore any modification you make to the returned list will be present
   * inside the JAXB object. This is why there is not a <CODE>set</CODE> method
   * for the feature property.
   * 
   * <p>
   * For example, to add a new item, do as follows:
   * 
   * <pre>
   * getFeature().add(newItem);
   * </pre>
   * 
   * 
   * <p>
   * Objects of the following type(s) are allowed in the list
   * {@link EntryType.Feature }
   * 
   * 
   */
  public List<EntryType.Feature> getFeature()
  {
    if (feature == null)
    {
      feature = new ArrayList<EntryType.Feature>();
    }
    return this.feature;
  }

  /**
   * Gets the value of the assembly property.
   * 
   * @return possible object is {@link EntryType.Assembly }
   * 
   */
  public EntryType.Assembly getAssembly()
  {
    return assembly;
  }

  /**
   * Sets the value of the assembly property.
   * 
   * @param value
   *          allowed object is {@link EntryType.Assembly }
   * 
   */
  public void setAssembly(EntryType.Assembly value)
  {
    this.assembly = value;
  }

  /**
   * Gets the value of the contig property.
   * 
   * @return possible object is {@link EntryType.Contig }
   * 
   */
  public EntryType.Contig getContig()
  {
    return contig;
  }

  /**
   * Sets the value of the contig property.
   * 
   * @param value
   *          allowed object is {@link EntryType.Contig }
   * 
   */
  public void setContig(EntryType.Contig value)
  {
    this.contig = value;
  }

  /**
   * Gets the value of the sequence property.
   * 
   * @return possible object is {@link String }
   * 
   */
  public String getSequence()
  {
    return sequence;
  }

  /**
   * Sets the value of the sequence property.
   * 
   * @param value
   *          allowed object is {@link String }
   * 
   */
  public void setSequence(String value)
  {
    this.sequence = value;
  }

  /**
   * Gets the value of the accession property.
   * 
   * @return possible object is {@link String }
   * 
   */
  public String getAccession()
  {
    return accession;
  }

  /**
   * Sets the value of the accession property.
   * 
   * @param value
   *          allowed object is {@link String }
   * 
   */
  public void setAccession(String value)
  {
    this.accession = value;
  }

  /**
   * Gets the value of the version property.
   * 
   * @return possible object is {@link BigInteger }
   * 
   */
  public BigInteger getVersion()
  {
    return version;
  }

  /**
   * Sets the value of the version property.
   * 
   * @param value
   *          allowed object is {@link BigInteger }
   * 
   */
  public void setVersion(BigInteger value)
  {
    this.version = value;
  }

  /**
   * Gets the value of the entryVersion property.
   * 
   * @return possible object is {@link BigInteger }
   * 
   */
  public BigInteger getEntryVersion()
  {
    return entryVersion;
  }

  /**
   * Sets the value of the entryVersion property.
   * 
   * @param value
   *          allowed object is {@link BigInteger }
   * 
   */
  public void setEntryVersion(BigInteger value)
  {
    this.entryVersion = value;
  }

  /**
   * Gets the value of the dataClass property.
   * 
   * @return possible object is {@link String }
   * 
   */
  public String getDataClass()
  {
    return dataClass;
  }

  /**
   * Sets the value of the dataClass property.
   * 
   * @param value
   *          allowed object is {@link String }
   * 
   */
  public void setDataClass(String value)
  {
    this.dataClass = value;
  }

  /**
   * Gets the value of the taxonomicDivision property.
   * 
   * @return possible object is {@link String }
   * 
   */
  public String getTaxonomicDivision()
  {
    return taxonomicDivision;
  }

  /**
   * Sets the value of the taxonomicDivision property.
   * 
   * @param value
   *          allowed object is {@link String }
   * 
   */
  public void setTaxonomicDivision(String value)
  {
    this.taxonomicDivision = value;
  }

  /**
   * Gets the value of the moleculeType property.
   * 
   * @return possible object is {@link String }
   * 
   */
  public String getMoleculeType()
  {
    return moleculeType;
  }

  /**
   * Sets the value of the moleculeType property.
   * 
   * @param value
   *          allowed object is {@link String }
   * 
   */
  public void setMoleculeType(String value)
  {
    this.moleculeType = value;
  }

  /**
   * Gets the value of the sequenceLength property.
   * 
   * @return possible object is {@link BigInteger }
   * 
   */
  public BigInteger getSequenceLength()
  {
    return sequenceLength;
  }

  /**
   * Sets the value of the sequenceLength property.
   * 
   * @param value
   *          allowed object is {@link BigInteger }
   * 
   */
  public void setSequenceLength(BigInteger value)
  {
    this.sequenceLength = value;
  }

  /**
   * Gets the value of the topology property.
   * 
   * @return possible object is {@link String }
   * 
   */
  public String getTopology()
  {
    return topology;
  }

  /**
   * Sets the value of the topology property.
   * 
   * @param value
   *          allowed object is {@link String }
   * 
   */
  public void setTopology(String value)
  {
    this.topology = value;
  }

  /**
   * Gets the value of the firstPublic property.
   * 
   * @return possible object is {@link XMLGregorianCalendar }
   * 
   */
  public XMLGregorianCalendar getFirstPublic()
  {
    return firstPublic;
  }

  /**
   * Sets the value of the firstPublic property.
   * 
   * @param value
   *          allowed object is {@link XMLGregorianCalendar }
   * 
   */
  public void setFirstPublic(XMLGregorianCalendar value)
  {
    this.firstPublic = value;
  }

  /**
   * Gets the value of the firstPublicRelease property.
   * 
   * @return possible object is {@link BigInteger }
   * 
   */
  public BigInteger getFirstPublicRelease()
  {
    return firstPublicRelease;
  }

  /**
   * Sets the value of the firstPublicRelease property.
   * 
   * @param value
   *          allowed object is {@link BigInteger }
   * 
   */
  public void setFirstPublicRelease(BigInteger value)
  {
    this.firstPublicRelease = value;
  }

  /**
   * Gets the value of the lastUpdated property.
   * 
   * @return possible object is {@link XMLGregorianCalendar }
   * 
   */
  public XMLGregorianCalendar getLastUpdated()
  {
    return lastUpdated;
  }

  /**
   * Sets the value of the lastUpdated property.
   * 
   * @param value
   *          allowed object is {@link XMLGregorianCalendar }
   * 
   */
  public void setLastUpdated(XMLGregorianCalendar value)
  {
    this.lastUpdated = value;
  }

  /**
   * Gets the value of the lastUpdatedRelease property.
   * 
   * @return possible object is {@link BigInteger }
   * 
   */
  public BigInteger getLastUpdatedRelease()
  {
    return lastUpdatedRelease;
  }

  /**
   * Sets the value of the lastUpdatedRelease property.
   * 
   * @param value
   *          allowed object is {@link BigInteger }
   * 
   */
  public void setLastUpdatedRelease(BigInteger value)
  {
    this.lastUpdatedRelease = value;
  }

  /**
   * <p>
   * Java class for anonymous complex type.
   * 
   * <p>
   * The following schema fragment specifies the expected content contained
   * within this class.
   * 
   * <pre>
   * &lt;complexType>
   *   &lt;complexContent>
   *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
   *       &lt;sequence>
   *         &lt;element name="range" maxOccurs="unbounded">
   *           &lt;complexType>
   *             &lt;complexContent>
   *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
   *                 &lt;attribute name="begin" use="required" type="{http://www.w3.org/2001/XMLSchema}integer" />
   *                 &lt;attribute name="end" use="required" type="{http://www.w3.org/2001/XMLSchema}integer" />
   *                 &lt;attribute name="primaryBegin" type="{http://www.w3.org/2001/XMLSchema}integer" />
   *                 &lt;attribute name="primaryEnd" type="{http://www.w3.org/2001/XMLSchema}integer" />
   *                 &lt;attribute name="accession" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
   *                 &lt;attribute name="version" use="required" type="{http://www.w3.org/2001/XMLSchema}integer" />
   *                 &lt;attribute name="complement" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
   *               &lt;/restriction>
   *             &lt;/complexContent>
   *           &lt;/complexType>
   *         &lt;/element>
   *       &lt;/sequence>
   *     &lt;/restriction>
   *   &lt;/complexContent>
   * &lt;/complexType>
   * </pre>
   * 
   * 
   */
  @XmlAccessorType(XmlAccessType.FIELD)
  @XmlType(name = "", propOrder = { "range" })
  public static class Assembly
  {

    @XmlElement(required = true)
    protected List<EntryType.Assembly.Range> range;

    /**
     * Gets the value of the range property.
     * 
     * <p>
     * This accessor method returns a reference to the live list, not a
     * snapshot. Therefore any modification you make to the returned list will
     * be present inside the JAXB object. This is why there is not a
     * <CODE>set</CODE> method for the range property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * 
     * <pre>
     * getRange().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link EntryType.Assembly.Range }
     * 
     * 
     */
    public List<EntryType.Assembly.Range> getRange()
    {
      if (range == null)
      {
        range = new ArrayList<EntryType.Assembly.Range>();
      }
      return this.range;
    }

    /**
     * <p>
     * Java class for anonymous complex type.
     * 
     * <p>
     * The following schema fragment specifies the expected content contained
     * within this class.
     * 
     * <pre>
     * &lt;complexType>
     *   &lt;complexContent>
     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
     *       &lt;attribute name="begin" use="required" type="{http://www.w3.org/2001/XMLSchema}integer" />
     *       &lt;attribute name="end" use="required" type="{http://www.w3.org/2001/XMLSchema}integer" />
     *       &lt;attribute name="primaryBegin" type="{http://www.w3.org/2001/XMLSchema}integer" />
     *       &lt;attribute name="primaryEnd" type="{http://www.w3.org/2001/XMLSchema}integer" />
     *       &lt;attribute name="accession" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
     *       &lt;attribute name="version" use="required" type="{http://www.w3.org/2001/XMLSchema}integer" />
     *       &lt;attribute name="complement" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
     *     &lt;/restriction>
     *   &lt;/complexContent>
     * &lt;/complexType>
     * </pre>
     * 
     * 
     */
    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "")
    public static class Range
    {

      @XmlAttribute(name = "begin", required = true)
      protected BigInteger begin;

      @XmlAttribute(name = "end", required = true)
      protected BigInteger end;

      @XmlAttribute(name = "primaryBegin")
      protected BigInteger primaryBegin;

      @XmlAttribute(name = "primaryEnd")
      protected BigInteger primaryEnd;

      @XmlAttribute(name = "accession", required = true)
      protected String accession;

      @XmlAttribute(name = "version", required = true)
      protected BigInteger version;

      @XmlAttribute(name = "complement")
      protected Boolean complement;

      /**
       * Gets the value of the begin property.
       * 
       * @return possible object is {@link BigInteger }
       * 
       */
      public BigInteger getBegin()
      {
        return begin;
      }

      /**
       * Sets the value of the begin property.
       * 
       * @param value
       *          allowed object is {@link BigInteger }
       * 
       */
      public void setBegin(BigInteger value)
      {
        this.begin = value;
      }

      /**
       * Gets the value of the end property.
       * 
       * @return possible object is {@link BigInteger }
       * 
       */
      public BigInteger getEnd()
      {
        return end;
      }

      /**
       * Sets the value of the end property.
       * 
       * @param value
       *          allowed object is {@link BigInteger }
       * 
       */
      public void setEnd(BigInteger value)
      {
        this.end = value;
      }

      /**
       * Gets the value of the primaryBegin property.
       * 
       * @return possible object is {@link BigInteger }
       * 
       */
      public BigInteger getPrimaryBegin()
      {
        return primaryBegin;
      }

      /**
       * Sets the value of the primaryBegin property.
       * 
       * @param value
       *          allowed object is {@link BigInteger }
       * 
       */
      public void setPrimaryBegin(BigInteger value)
      {
        this.primaryBegin = value;
      }

      /**
       * Gets the value of the primaryEnd property.
       * 
       * @return possible object is {@link BigInteger }
       * 
       */
      public BigInteger getPrimaryEnd()
      {
        return primaryEnd;
      }

      /**
       * Sets the value of the primaryEnd property.
       * 
       * @param value
       *          allowed object is {@link BigInteger }
       * 
       */
      public void setPrimaryEnd(BigInteger value)
      {
        this.primaryEnd = value;
      }

      /**
       * Gets the value of the accession property.
       * 
       * @return possible object is {@link String }
       * 
       */
      public String getAccession()
      {
        return accession;
      }

      /**
       * Sets the value of the accession property.
       * 
       * @param value
       *          allowed object is {@link String }
       * 
       */
      public void setAccession(String value)
      {
        this.accession = value;
      }

      /**
       * Gets the value of the version property.
       * 
       * @return possible object is {@link BigInteger }
       * 
       */
      public BigInteger getVersion()
      {
        return version;
      }

      /**
       * Sets the value of the version property.
       * 
       * @param value
       *          allowed object is {@link BigInteger }
       * 
       */
      public void setVersion(BigInteger value)
      {
        this.version = value;
      }

      /**
       * Gets the value of the complement property.
       * 
       * @return possible object is {@link Boolean }
       * 
       */
      public boolean isComplement()
      {
        if (complement == null)
        {
          return false;
        }
        else
        {
          return complement;
        }
      }

      /**
       * Sets the value of the complement property.
       * 
       * @param value
       *          allowed object is {@link Boolean }
       * 
       */
      public void setComplement(Boolean value)
      {
        this.complement = value;
      }

    }

  }

  /**
   * <p>
   * Java class for anonymous complex type.
   * 
   * <p>
   * The following schema fragment specifies the expected content contained
   * within this class.
   * 
   * <pre>
   * &lt;complexType>
   *   &lt;complexContent>
   *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
   *       &lt;sequence>
   *         &lt;choice maxOccurs="unbounded" minOccurs="0">
   *           &lt;element name="range">
   *             &lt;complexType>
   *               &lt;complexContent>
   *                 &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
   *                   &lt;attribute name="begin" use="required" type="{http://www.w3.org/2001/XMLSchema}integer" />
   *                   &lt;attribute name="end" use="required" type="{http://www.w3.org/2001/XMLSchema}integer" />
   *                   &lt;attribute name="primaryBegin" type="{http://www.w3.org/2001/XMLSchema}integer" />
   *                   &lt;attribute name="primaryEnd" type="{http://www.w3.org/2001/XMLSchema}integer" />
   *                   &lt;attribute name="accession" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
   *                   &lt;attribute name="version" use="required" type="{http://www.w3.org/2001/XMLSchema}integer" />
   *                   &lt;attribute name="complement" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
   *                 &lt;/restriction>
   *               &lt;/complexContent>
   *             &lt;/complexType>
   *           &lt;/element>
   *           &lt;element name="gap">
   *             &lt;complexType>
   *               &lt;complexContent>
   *                 &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
   *                   &lt;attribute name="begin" use="required" type="{http://www.w3.org/2001/XMLSchema}integer" />
   *                   &lt;attribute name="end" use="required" type="{http://www.w3.org/2001/XMLSchema}integer" />
   *                   &lt;attribute name="length" use="required" type="{http://www.w3.org/2001/XMLSchema}integer" />
   *                   &lt;attribute name="unknownLength" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
   *                 &lt;/restriction>
   *               &lt;/complexContent>
   *             &lt;/complexType>
   *           &lt;/element>
   *         &lt;/choice>
   *       &lt;/sequence>
   *     &lt;/restriction>
   *   &lt;/complexContent>
   * &lt;/complexType>
   * </pre>
   * 
   * 
   */
  @XmlAccessorType(XmlAccessType.FIELD)
  @XmlType(name = "", propOrder = { "rangeOrGap" })
  public static class Contig
  {

    @XmlElements({
        @XmlElement(name = "range", type = EntryType.Contig.Range.class),
        @XmlElement(name = "gap", type = EntryType.Contig.Gap.class) })
    protected List<Object> rangeOrGap;

    /**
     * Gets the value of the rangeOrGap property.
     * 
     * <p>
     * This accessor method returns a reference to the live list, not a
     * snapshot. Therefore any modification you make to the returned list will
     * be present inside the JAXB object. This is why there is not a
     * <CODE>set</CODE> method for the rangeOrGap property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * 
     * <pre>
     * getRangeOrGap().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link EntryType.Contig.Range } {@link EntryType.Contig.Gap }
     * 
     * 
     */
    public List<Object> getRangeOrGap()
    {
      if (rangeOrGap == null)
      {
        rangeOrGap = new ArrayList<Object>();
      }
      return this.rangeOrGap;
    }

    /**
     * <p>
     * Java class for anonymous complex type.
     * 
     * <p>
     * The following schema fragment specifies the expected content contained
     * within this class.
     * 
     * <pre>
     * &lt;complexType>
     *   &lt;complexContent>
     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
     *       &lt;attribute name="begin" use="required" type="{http://www.w3.org/2001/XMLSchema}integer" />
     *       &lt;attribute name="end" use="required" type="{http://www.w3.org/2001/XMLSchema}integer" />
     *       &lt;attribute name="length" use="required" type="{http://www.w3.org/2001/XMLSchema}integer" />
     *       &lt;attribute name="unknownLength" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
     *     &lt;/restriction>
     *   &lt;/complexContent>
     * &lt;/complexType>
     * </pre>
     * 
     * 
     */
    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "")
    public static class Gap
    {

      @XmlAttribute(name = "begin", required = true)
      protected BigInteger begin;

      @XmlAttribute(name = "end", required = true)
      protected BigInteger end;

      @XmlAttribute(name = "length", required = true)
      protected BigInteger length;

      @XmlAttribute(name = "unknownLength")
      protected Boolean unknownLength;

      /**
       * Gets the value of the begin property.
       * 
       * @return possible object is {@link BigInteger }
       * 
       */
      public BigInteger getBegin()
      {
        return begin;
      }

      /**
       * Sets the value of the begin property.
       * 
       * @param value
       *          allowed object is {@link BigInteger }
       * 
       */
      public void setBegin(BigInteger value)
      {
        this.begin = value;
      }

      /**
       * Gets the value of the end property.
       * 
       * @return possible object is {@link BigInteger }
       * 
       */
      public BigInteger getEnd()
      {
        return end;
      }

      /**
       * Sets the value of the end property.
       * 
       * @param value
       *          allowed object is {@link BigInteger }
       * 
       */
      public void setEnd(BigInteger value)
      {
        this.end = value;
      }

      /**
       * Gets the value of the length property.
       * 
       * @return possible object is {@link BigInteger }
       * 
       */
      public BigInteger getLength()
      {
        return length;
      }

      /**
       * Sets the value of the length property.
       * 
       * @param value
       *          allowed object is {@link BigInteger }
       * 
       */
      public void setLength(BigInteger value)
      {
        this.length = value;
      }

      /**
       * Gets the value of the unknownLength property.
       * 
       * @return possible object is {@link Boolean }
       * 
       */
      public boolean isUnknownLength()
      {
        if (unknownLength == null)
        {
          return false;
        }
        else
        {
          return unknownLength;
        }
      }

      /**
       * Sets the value of the unknownLength property.
       * 
       * @param value
       *          allowed object is {@link Boolean }
       * 
       */
      public void setUnknownLength(Boolean value)
      {
        this.unknownLength = value;
      }

    }

    /**
     * <p>
     * Java class for anonymous complex type.
     * 
     * <p>
     * The following schema fragment specifies the expected content contained
     * within this class.
     * 
     * <pre>
     * &lt;complexType>
     *   &lt;complexContent>
     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
     *       &lt;attribute name="begin" use="required" type="{http://www.w3.org/2001/XMLSchema}integer" />
     *       &lt;attribute name="end" use="required" type="{http://www.w3.org/2001/XMLSchema}integer" />
     *       &lt;attribute name="primaryBegin" type="{http://www.w3.org/2001/XMLSchema}integer" />
     *       &lt;attribute name="primaryEnd" type="{http://www.w3.org/2001/XMLSchema}integer" />
     *       &lt;attribute name="accession" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
     *       &lt;attribute name="version" use="required" type="{http://www.w3.org/2001/XMLSchema}integer" />
     *       &lt;attribute name="complement" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
     *     &lt;/restriction>
     *   &lt;/complexContent>
     * &lt;/complexType>
     * </pre>
     * 
     * 
     */
    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "")
    public static class Range
    {

      @XmlAttribute(name = "begin", required = true)
      protected BigInteger begin;

      @XmlAttribute(name = "end", required = true)
      protected BigInteger end;

      @XmlAttribute(name = "primaryBegin")
      protected BigInteger primaryBegin;

      @XmlAttribute(name = "primaryEnd")
      protected BigInteger primaryEnd;

      @XmlAttribute(name = "accession", required = true)
      protected String accession;

      @XmlAttribute(name = "version", required = true)
      protected BigInteger version;

      @XmlAttribute(name = "complement")
      protected Boolean complement;

      /**
       * Gets the value of the begin property.
       * 
       * @return possible object is {@link BigInteger }
       * 
       */
      public BigInteger getBegin()
      {
        return begin;
      }

      /**
       * Sets the value of the begin property.
       * 
       * @param value
       *          allowed object is {@link BigInteger }
       * 
       */
      public void setBegin(BigInteger value)
      {
        this.begin = value;
      }

      /**
       * Gets the value of the end property.
       * 
       * @return possible object is {@link BigInteger }
       * 
       */
      public BigInteger getEnd()
      {
        return end;
      }

      /**
       * Sets the value of the end property.
       * 
       * @param value
       *          allowed object is {@link BigInteger }
       * 
       */
      public void setEnd(BigInteger value)
      {
        this.end = value;
      }

      /**
       * Gets the value of the primaryBegin property.
       * 
       * @return possible object is {@link BigInteger }
       * 
       */
      public BigInteger getPrimaryBegin()
      {
        return primaryBegin;
      }

      /**
       * Sets the value of the primaryBegin property.
       * 
       * @param value
       *          allowed object is {@link BigInteger }
       * 
       */
      public void setPrimaryBegin(BigInteger value)
      {
        this.primaryBegin = value;
      }

      /**
       * Gets the value of the primaryEnd property.
       * 
       * @return possible object is {@link BigInteger }
       * 
       */
      public BigInteger getPrimaryEnd()
      {
        return primaryEnd;
      }

      /**
       * Sets the value of the primaryEnd property.
       * 
       * @param value
       *          allowed object is {@link BigInteger }
       * 
       */
      public void setPrimaryEnd(BigInteger value)
      {
        this.primaryEnd = value;
      }

      /**
       * Gets the value of the accession property.
       * 
       * @return possible object is {@link String }
       * 
       */
      public String getAccession()
      {
        return accession;
      }

      /**
       * Sets the value of the accession property.
       * 
       * @param value
       *          allowed object is {@link String }
       * 
       */
      public void setAccession(String value)
      {
        this.accession = value;
      }

      /**
       * Gets the value of the version property.
       * 
       * @return possible object is {@link BigInteger }
       * 
       */
      public BigInteger getVersion()
      {
        return version;
      }

      /**
       * Sets the value of the version property.
       * 
       * @param value
       *          allowed object is {@link BigInteger }
       * 
       */
      public void setVersion(BigInteger value)
      {
        this.version = value;
      }

      /**
       * Gets the value of the complement property.
       * 
       * @return possible object is {@link Boolean }
       * 
       */
      public boolean isComplement()
      {
        if (complement == null)
        {
          return false;
        }
        else
        {
          return complement;
        }
      }

      /**
       * Sets the value of the complement property.
       * 
       * @param value
       *          allowed object is {@link Boolean }
       * 
       */
      public void setComplement(Boolean value)
      {
        this.complement = value;
      }

    }

  }

  /**
   * <p>
   * Java class for anonymous complex type.
   * 
   * <p>
   * The following schema fragment specifies the expected content contained
   * within this class.
   * 
   * <pre>
   * &lt;complexType>
   *   &lt;complexContent>
   *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
   *       &lt;sequence>
   *         &lt;element name="taxon" minOccurs="0">
   *           &lt;complexType>
   *             &lt;complexContent>
   *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
   *                 &lt;sequence>
   *                   &lt;element name="lineage" minOccurs="0">
   *                     &lt;complexType>
   *                       &lt;complexContent>
   *                         &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
   *                           &lt;sequence>
   *                             &lt;element name="taxon" maxOccurs="unbounded">
   *                               &lt;complexType>
   *                                 &lt;complexContent>
   *                                   &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
   *                                     &lt;attribute name="scientificName" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
   *                                   &lt;/restriction>
   *                                 &lt;/complexContent>
   *                               &lt;/complexType>
   *                             &lt;/element>
   *                           &lt;/sequence>
   *                         &lt;/restriction>
   *                       &lt;/complexContent>
   *                     &lt;/complexType>
   *                   &lt;/element>
   *                 &lt;/sequence>
   *                 &lt;attribute name="scientificName" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
   *                 &lt;attribute name="commonName" type="{http://www.w3.org/2001/XMLSchema}string" />
   *                 &lt;attribute name="taxId" type="{http://www.w3.org/2001/XMLSchema}integer" />
   *               &lt;/restriction>
   *             &lt;/complexContent>
   *           &lt;/complexType>
   *         &lt;/element>
   *         &lt;element name="xref" type="{}XrefType" maxOccurs="unbounded" minOccurs="0"/>
   *         &lt;element name="qualifier" maxOccurs="unbounded" minOccurs="0">
   *           &lt;complexType>
   *             &lt;complexContent>
   *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
   *                 &lt;sequence>
   *                   &lt;element name="value" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
   *                 &lt;/sequence>
   *                 &lt;attribute name="name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
   *               &lt;/restriction>
   *             &lt;/complexContent>
   *           &lt;/complexType>
   *         &lt;/element>
   *       &lt;/sequence>
   *       &lt;attribute name="name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
   *       &lt;attribute name="location" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
   *     &lt;/restriction>
   *   &lt;/complexContent>
   * &lt;/complexType>
   * </pre>
   * 
   * 
   */
  @XmlAccessorType(XmlAccessType.FIELD)
  @XmlType(name = "", propOrder = { "taxon", "xref", "qualifier" })
  public static class Feature
  {

    protected EntryType.Feature.FeatureTaxon taxon;

    protected List<XrefType> xref;

    protected List<EntryType.Feature.Qualifier> qualifier;

    @XmlAttribute(name = "name", required = true)
    protected String name;

    @XmlAttribute(name = "location", required = true)
    protected String location;

    /**
     * Gets the value of the taxon property.
     * 
     * @return possible object is {@link EntryType.Feature.FeatureTaxon }
     * 
     */
    public EntryType.Feature.FeatureTaxon getTaxon()
    {
      return taxon;
    }

    /**
     * Sets the value of the taxon property.
     * 
     * @param value
     *          allowed object is {@link EntryType.Feature.FeatureTaxon }
     * 
     */
    public void setTaxon(EntryType.Feature.FeatureTaxon value)
    {
      this.taxon = value;
    }

    /**
     * Gets the value of the xref property.
     * 
     * <p>
     * This accessor method returns a reference to the live list, not a
     * snapshot. Therefore any modification you make to the returned list will
     * be present inside the JAXB object. This is why there is not a
     * <CODE>set</CODE> method for the xref property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * 
     * <pre>
     * getXref().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list {@link XrefType
     * }
     * 
     * 
     */
    public List<XrefType> getXref()
    {
      if (xref == null)
      {
        xref = new ArrayList<XrefType>();
      }
      return this.xref;
    }

    /**
     * Gets the value of the qualifier property.
     * 
     * <p>
     * This accessor method returns a reference to the live list, not a
     * snapshot. Therefore any modification you make to the returned list will
     * be present inside the JAXB object. This is why there is not a
     * <CODE>set</CODE> method for the qualifier property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * 
     * <pre>
     * getQualifier().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link EntryType.Feature.Qualifier }
     * 
     * 
     */
    public List<EntryType.Feature.Qualifier> getQualifier()
    {
      if (qualifier == null)
      {
        qualifier = new ArrayList<EntryType.Feature.Qualifier>();
      }
      return this.qualifier;
    }

    /**
     * Gets the value of the name property.
     * 
     * @return possible object is {@link String }
     * 
     */
    public String getName()
    {
      return name;
    }

    /**
     * Sets the value of the name property.
     * 
     * @param value
     *          allowed object is {@link String }
     * 
     */
    public void setName(String value)
    {
      this.name = value;
    }

    /**
     * Gets the value of the location property.
     * 
     * @return possible object is {@link String }
     * 
     */
    public String getLocation()
    {
      return location;
    }

    /**
     * Sets the value of the location property.
     * 
     * @param value
     *          allowed object is {@link String }
     * 
     */
    public void setLocation(String value)
    {
      this.location = value;
    }

    /**
     * <p>
     * Java class for anonymous complex type.
     * 
     * <p>
     * The following schema fragment specifies the expected content contained
     * within this class.
     * 
     * <pre>
     * &lt;complexType>
     *   &lt;complexContent>
     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
     *       &lt;sequence>
     *         &lt;element name="lineage" minOccurs="0">
     *           &lt;complexType>
     *             &lt;complexContent>
     *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
     *                 &lt;sequence>
     *                   &lt;element name="taxon" maxOccurs="unbounded">
     *                     &lt;complexType>
     *                       &lt;complexContent>
     *                         &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
     *                           &lt;attribute name="scientificName" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
     *                         &lt;/restriction>
     *                       &lt;/complexContent>
     *                     &lt;/complexType>
     *                   &lt;/element>
     *                 &lt;/sequence>
     *               &lt;/restriction>
     *             &lt;/complexContent>
     *           &lt;/complexType>
     *         &lt;/element>
     *       &lt;/sequence>
     *       &lt;attribute name="scientificName" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
     *       &lt;attribute name="commonName" type="{http://www.w3.org/2001/XMLSchema}string" />
     *       &lt;attribute name="taxId" type="{http://www.w3.org/2001/XMLSchema}integer" />
     *     &lt;/restriction>
     *   &lt;/complexContent>
     * &lt;/complexType>
     * </pre>
     * 
     * 
     */
    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "", propOrder = { "lineage" })
    public static class FeatureTaxon
    {

      protected EntryType.Feature.FeatureTaxon.Lineage lineage;

      @XmlAttribute(name = "scientificName", required = true)
      protected String scientificName;

      @XmlAttribute(name = "commonName")
      protected String commonName;

      @XmlAttribute(name = "taxId")
      protected BigInteger taxId;

      /**
       * Gets the value of the lineage property.
       * 
       * @return possible object is
       *         {@link EntryType.Feature.FeatureTaxon.Lineage }
       * 
       */
      public EntryType.Feature.FeatureTaxon.Lineage getLineage()
      {
        return lineage;
      }

      /**
       * Sets the value of the lineage property.
       * 
       * @param value
       *          allowed object is
       *          {@link EntryType.Feature.FeatureTaxon.Lineage }
       * 
       */
      public void setLineage(EntryType.Feature.FeatureTaxon.Lineage value)
      {
        this.lineage = value;
      }

      /**
       * Gets the value of the scientificName property.
       * 
       * @return possible object is {@link String }
       * 
       */
      public String getScientificName()
      {
        return scientificName;
      }

      /**
       * Sets the value of the scientificName property.
       * 
       * @param value
       *          allowed object is {@link String }
       * 
       */
      public void setScientificName(String value)
      {
        this.scientificName = value;
      }

      /**
       * Gets the value of the commonName property.
       * 
       * @return possible object is {@link String }
       * 
       */
      public String getCommonName()
      {
        return commonName;
      }

      /**
       * Sets the value of the commonName property.
       * 
       * @param value
       *          allowed object is {@link String }
       * 
       */
      public void setCommonName(String value)
      {
        this.commonName = value;
      }

      /**
       * Gets the value of the taxId property.
       * 
       * @return possible object is {@link BigInteger }
       * 
       */
      public BigInteger getTaxId()
      {
        return taxId;
      }

      /**
       * Sets the value of the taxId property.
       * 
       * @param value
       *          allowed object is {@link BigInteger }
       * 
       */
      public void setTaxId(BigInteger value)
      {
        this.taxId = value;
      }

      /**
       * <p>
       * Java class for anonymous complex type.
       * 
       * <p>
       * The following schema fragment specifies the expected content contained
       * within this class.
       * 
       * <pre>
       * &lt;complexType>
       *   &lt;complexContent>
       *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
       *       &lt;sequence>
       *         &lt;element name="taxon" maxOccurs="unbounded">
       *           &lt;complexType>
       *             &lt;complexContent>
       *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
       *                 &lt;attribute name="scientificName" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
       *               &lt;/restriction>
       *             &lt;/complexContent>
       *           &lt;/complexType>
       *         &lt;/element>
       *       &lt;/sequence>
       *     &lt;/restriction>
       *   &lt;/complexContent>
       * &lt;/complexType>
       * </pre>
       * 
       * 
       */
      @XmlAccessorType(XmlAccessType.FIELD)
      @XmlType(name = "", propOrder = { "taxon" })
      public static class Lineage
      {

        @XmlElement(required = true)
        protected List<EntryType.Feature.FeatureTaxon.Lineage.Taxon> taxon;

        /**
         * Gets the value of the taxon property.
         * 
         * <p>
         * This accessor method returns a reference to the live list, not a
         * snapshot. Therefore any modification you make to the returned list
         * will be present inside the JAXB object. This is why there is not a
         * <CODE>set</CODE> method for the taxon property.
         * 
         * <p>
         * For example, to add a new item, do as follows:
         * 
         * <pre>
         * getTaxon().add(newItem);
         * </pre>
         * 
         * 
         * <p>
         * Objects of the following type(s) are allowed in the list
         * {@link EntryType.Feature.FeatureTaxon.Lineage.Taxon }
         * 
         * 
         */
        public List<EntryType.Feature.FeatureTaxon.Lineage.Taxon> getTaxon()
        {
          if (taxon == null)
          {
            taxon = new ArrayList<EntryType.Feature.FeatureTaxon.Lineage.Taxon>();
          }
          return this.taxon;
        }

        /**
         * <p>
         * Java class for anonymous complex type.
         * 
         * <p>
         * The following schema fragment specifies the expected content
         * contained within this class.
         * 
         * <pre>
         * &lt;complexType>
         *   &lt;complexContent>
         *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
         *       &lt;attribute name="scientificName" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
         *     &lt;/restriction>
         *   &lt;/complexContent>
         * &lt;/complexType>
         * </pre>
         * 
         * 
         */
        @XmlAccessorType(XmlAccessType.FIELD)
        @XmlType(name = "")
        public static class Taxon
        {

          @XmlAttribute(name = "scientificName", required = true)
          protected String scientificName;

          /**
           * Gets the value of the scientificName property.
           * 
           * @return possible object is {@link String }
           * 
           */
          public String getScientificName()
          {
            return scientificName;
          }

          /**
           * Sets the value of the scientificName property.
           * 
           * @param value
           *          allowed object is {@link String }
           * 
           */
          public void setScientificName(String value)
          {
            this.scientificName = value;
          }

        }

      }

    }

    /**
     * <p>
     * Java class for anonymous complex type.
     * 
     * <p>
     * The following schema fragment specifies the expected content contained
     * within this class.
     * 
     * <pre>
     * &lt;complexType>
     *   &lt;complexContent>
     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
     *       &lt;sequence>
     *         &lt;element name="value" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
     *       &lt;/sequence>
     *       &lt;attribute name="name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
     *     &lt;/restriction>
     *   &lt;/complexContent>
     * &lt;/complexType>
     * </pre>
     * 
     * 
     */
    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "", propOrder = { "value" })
    public static class Qualifier
    {

      protected String value;

      @XmlAttribute(name = "name", required = true)
      protected String name;

      /**
       * Gets the value of the value property.
       * 
       * @return possible object is {@link String }
       * 
       */
      public String getValue()
      {
        return value;
      }

      /**
       * Sets the value of the value property.
       * 
       * @param value
       *          allowed object is {@link String }
       * 
       */
      public void setValue(String value)
      {
        this.value = value;
      }

      /**
       * Gets the value of the name property.
       * 
       * @return possible object is {@link String }
       * 
       */
      public String getName()
      {
        return name;
      }

      /**
       * Sets the value of the name property.
       * 
       * @param value
       *          allowed object is {@link String }
       * 
       */
      public void setName(String value)
      {
        this.name = value;
      }

    }

  }

  /**
   * <p>
   * Java class for anonymous complex type.
   * 
   * <p>
   * The following schema fragment specifies the expected content contained
   * within this class.
   * 
   * <pre>
   * &lt;complexType>
   *   &lt;complexContent>
   *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
   *       &lt;sequence>
   *         &lt;element name="title" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
   *         &lt;element name="author" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/>
   *         &lt;element name="applicant" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/>
   *         &lt;element name="consortium" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
   *         &lt;element name="submissionDate" type="{http://www.w3.org/2001/XMLSchema}date" minOccurs="0"/>
   *         &lt;element name="journal" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
   *         &lt;element name="year" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
   *         &lt;element name="volume" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
   *         &lt;element name="issue" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
   *         &lt;element name="firstPage" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
   *         &lt;element name="lastPage" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
   *         &lt;element name="comment" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
   *         &lt;element name="referenceLocation" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
   *         &lt;element name="xref" type="{}XrefType" maxOccurs="unbounded" minOccurs="0"/>
   *       &lt;/sequence>
   *       &lt;attribute name="type" use="required">
   *         &lt;simpleType>
   *           &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">
   *             &lt;enumeration value="submission"/>
   *             &lt;enumeration value="book"/>
   *             &lt;enumeration value="article"/>
   *             &lt;enumeration value="patent"/>
   *             &lt;enumeration value="thesis"/>
   *             &lt;enumeration value="unpublished"/>
   *           &lt;/restriction>
   *         &lt;/simpleType>
   *       &lt;/attribute>
   *       &lt;attribute name="number" use="required" type="{http://www.w3.org/2001/XMLSchema}integer" />
   *       &lt;attribute name="location" type="{http://www.w3.org/2001/XMLSchema}string" />
   *     &lt;/restriction>
   *   &lt;/complexContent>
   * &lt;/complexType>
   * </pre>
   * 
   * 
   */
  @XmlAccessorType(XmlAccessType.FIELD)
  @XmlType(
    name = "",
    propOrder =
    { "title", "author", "applicant", "consortium", "submissionDate",
        "journal", "year", "volume", "issue", "firstPage", "lastPage",
        "comment", "referenceLocation", "xref" })
  public static class Reference
  {

    protected String title;

    protected List<String> author;

    protected List<String> applicant;

    protected String consortium;

    @XmlSchemaType(name = "date")
    protected XMLGregorianCalendar submissionDate;

    protected String journal;

    protected String year;

    protected String volume;

    protected String issue;

    protected String firstPage;

    protected String lastPage;

    protected String comment;

    protected String referenceLocation;

    protected List<XrefType> xref;

    @XmlAttribute(name = "type", required = true)
    protected String type;

    @XmlAttribute(name = "number", required = true)
    protected BigInteger number;

    @XmlAttribute(name = "location")
    protected String location;

    /**
     * Gets the value of the title property.
     * 
     * @return possible object is {@link String }
     * 
     */
    public String getTitle()
    {
      return title;
    }

    /**
     * Sets the value of the title property.
     * 
     * @param value
     *          allowed object is {@link String }
     * 
     */
    public void setTitle(String value)
    {
      this.title = value;
    }

    /**
     * Gets the value of the author property.
     * 
     * <p>
     * This accessor method returns a reference to the live list, not a
     * snapshot. Therefore any modification you make to the returned list will
     * be present inside the JAXB object. This is why there is not a
     * <CODE>set</CODE> method for the author property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * 
     * <pre>
     * getAuthor().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list {@link String }
     * 
     * 
     */
    public List<String> getAuthor()
    {
      if (author == null)
      {
        author = new ArrayList<String>();
      }
      return this.author;
    }

    /**
     * Gets the value of the applicant property.
     * 
     * <p>
     * This accessor method returns a reference to the live list, not a
     * snapshot. Therefore any modification you make to the returned list will
     * be present inside the JAXB object. This is why there is not a
     * <CODE>set</CODE> method for the applicant property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * 
     * <pre>
     * getApplicant().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list {@link String }
     * 
     * 
     */
    public List<String> getApplicant()
    {
      if (applicant == null)
      {
        applicant = new ArrayList<String>();
      }
      return this.applicant;
    }

    /**
     * Gets the value of the consortium property.
     * 
     * @return possible object is {@link String }
     * 
     */
    public String getConsortium()
    {
      return consortium;
    }

    /**
     * Sets the value of the consortium property.
     * 
     * @param value
     *          allowed object is {@link String }
     * 
     */
    public void setConsortium(String value)
    {
      this.consortium = value;
    }

    /**
     * Gets the value of the submissionDate property.
     * 
     * @return possible object is {@link XMLGregorianCalendar }
     * 
     */
    public XMLGregorianCalendar getSubmissionDate()
    {
      return submissionDate;
    }

    /**
     * Sets the value of the submissionDate property.
     * 
     * @param value
     *          allowed object is {@link XMLGregorianCalendar }
     * 
     */
    public void setSubmissionDate(XMLGregorianCalendar value)
    {
      this.submissionDate = value;
    }

    /**
     * Gets the value of the journal property.
     * 
     * @return possible object is {@link String }
     * 
     */
    public String getJournal()
    {
      return journal;
    }

    /**
     * Sets the value of the journal property.
     * 
     * @param value
     *          allowed object is {@link String }
     * 
     */
    public void setJournal(String value)
    {
      this.journal = value;
    }

    /**
     * Gets the value of the year property.
     * 
     * @return possible object is {@link String }
     * 
     */
    public String getYear()
    {
      return year;
    }

    /**
     * Sets the value of the year property.
     * 
     * @param value
     *          allowed object is {@link String }
     * 
     */
    public void setYear(String value)
    {
      this.year = value;
    }

    /**
     * Gets the value of the volume property.
     * 
     * @return possible object is {@link String }
     * 
     */
    public String getVolume()
    {
      return volume;
    }

    /**
     * Sets the value of the volume property.
     * 
     * @param value
     *          allowed object is {@link String }
     * 
     */
    public void setVolume(String value)
    {
      this.volume = value;
    }

    /**
     * Gets the value of the issue property.
     * 
     * @return possible object is {@link String }
     * 
     */
    public String getIssue()
    {
      return issue;
    }

    /**
     * Sets the value of the issue property.
     * 
     * @param value
     *          allowed object is {@link String }
     * 
     */
    public void setIssue(String value)
    {
      this.issue = value;
    }

    /**
     * Gets the value of the firstPage property.
     * 
     * @return possible object is {@link String }
     * 
     */
    public String getFirstPage()
    {
      return firstPage;
    }

    /**
     * Sets the value of the firstPage property.
     * 
     * @param value
     *          allowed object is {@link String }
     * 
     */
    public void setFirstPage(String value)
    {
      this.firstPage = value;
    }

    /**
     * Gets the value of the lastPage property.
     * 
     * @return possible object is {@link String }
     * 
     */
    public String getLastPage()
    {
      return lastPage;
    }

    /**
     * Sets the value of the lastPage property.
     * 
     * @param value
     *          allowed object is {@link String }
     * 
     */
    public void setLastPage(String value)
    {
      this.lastPage = value;
    }

    /**
     * Gets the value of the comment property.
     * 
     * @return possible object is {@link String }
     * 
     */
    public String getComment()
    {
      return comment;
    }

    /**
     * Sets the value of the comment property.
     * 
     * @param value
     *          allowed object is {@link String }
     * 
     */
    public void setComment(String value)
    {
      this.comment = value;
    }

    /**
     * Gets the value of the referenceLocation property.
     * 
     * @return possible object is {@link String }
     * 
     */
    public String getReferenceLocation()
    {
      return referenceLocation;
    }

    /**
     * Sets the value of the referenceLocation property.
     * 
     * @param value
     *          allowed object is {@link String }
     * 
     */
    public void setReferenceLocation(String value)
    {
      this.referenceLocation = value;
    }

    /**
     * Gets the value of the xref property.
     * 
     * <p>
     * This accessor method returns a reference to the live list, not a
     * snapshot. Therefore any modification you make to the returned list will
     * be present inside the JAXB object. This is why there is not a
     * <CODE>set</CODE> method for the xref property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * 
     * <pre>
     * getXref().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list {@link XrefType
     * }
     * 
     * 
     */
    public List<XrefType> getXref()
    {
      if (xref == null)
      {
        xref = new ArrayList<XrefType>();
      }
      return this.xref;
    }

    /**
     * Gets the value of the type property.
     * 
     * @return possible object is {@link String }
     * 
     */
    public String getType()
    {
      return type;
    }

    /**
     * Sets the value of the type property.
     * 
     * @param value
     *          allowed object is {@link String }
     * 
     */
    public void setType(String value)
    {
      this.type = value;
    }

    /**
     * Gets the value of the number property.
     * 
     * @return possible object is {@link BigInteger }
     * 
     */
    public BigInteger getNumber()
    {
      return number;
    }

    /**
     * Sets the value of the number property.
     * 
     * @param value
     *          allowed object is {@link BigInteger }
     * 
     */
    public void setNumber(BigInteger value)
    {
      this.number = value;
    }

    /**
     * Gets the value of the location property.
     * 
     * @return possible object is {@link String }
     * 
     */
    public String getLocation()
    {
      return location;
    }

    /**
     * Sets the value of the location property.
     * 
     * @param value
     *          allowed object is {@link String }
     * 
     */
    public void setLocation(String value)
    {
      this.location = value;
    }

  }

}
