@Override
 protected void writeAttributes(BinaryInteractionEvidence object) throws XMLStreamException {
   // write attributes
   if (!object.getAnnotations().isEmpty()) {
     // write start attribute list
     getStreamWriter().writeStartElement("attributeList");
     for (Object ann : object.getAnnotations()) {
       getAttributeWriter().write((Annotation) ann);
     }
     for (Object c : object.getChecksums()) {
       getChecksumWriter().write((Checksum) c);
     }
     // write complex expansion if any
     if (object.getComplexExpansion() != null) {
       super.writeAttribute(
           object.getComplexExpansion().getShortName(),
           object.getComplexExpansion().getMIIdentifier());
     }
     // write end attributeList
     getStreamWriter().writeEndElement();
   }
   // write checksum
   else if (!object.getChecksums().isEmpty()) {
     // write start attribute list
     getStreamWriter().writeStartElement("attributeList");
     for (Object c : object.getChecksums()) {
       getChecksumWriter().write((Checksum) c);
     }
     // write complex expansion if any
     if (object.getComplexExpansion() != null) {
       super.writeAttribute(
           object.getComplexExpansion().getShortName(),
           object.getComplexExpansion().getMIIdentifier());
     }
     // write end attributeList
     getStreamWriter().writeEndElement();
   }
   // write complex expansion if any
   else if (object.getComplexExpansion() != null) {
     // write start attribute list
     getStreamWriter().writeStartElement("attributeList");
     super.writeAttribute(
         object.getComplexExpansion().getShortName(),
         object.getComplexExpansion().getMIIdentifier());
     // write end attributeList
     getStreamWriter().writeEndElement();
   }
 }
 @Override
 protected CvTerm writeExperiments(BinaryInteractionEvidence object) throws XMLStreamException {
   super.writeExperiments(object);
   return writeExperimentDescription();
 }
 @Override
 protected void initialiseParticipantWriter() {
   super.setParticipantWriter(
       new XmlParticipantEvidenceWriter(getStreamWriter(), getObjectIndex()));
 }