char *meme_dts = "<?xml version='1.0' encoding='UTF-8' standalone='yes'?>\n"
  "<!-- Document definition -->\n"
  "<!DOCTYPE MEME[\n"
  "<!ELEMENT MEME (\n"
  "  training_set,\n"
  "  model, \n"
  "  motifs, \n"
  "  scanned_sites_summary?\n"
  ")>\n"
  "<!ATTLIST MEME \n"
  "  version CDATA #REQUIRED\n"
  "  release CDATA #REQUIRED\n"
  ">\n"
  "<!-- Training-set elements -->\n"
  "<!ELEMENT training_set (alphabet, ambigs, sequence*, letter_frequencies)>\n"
  "<!ATTLIST training_set datafile CDATA #REQUIRED length CDATA #REQUIRED>\n"
  "<!ELEMENT alphabet (letter*)>\n"
  "<!ATTLIST alphabet name CDATA #REQUIRED>\n"
  "<!ELEMENT ambigs (letter*)>\n"
  "<!ELEMENT letter EMPTY>\n"
  "<!ATTLIST letter id ID #REQUIRED>\n"
  "<!ATTLIST letter symbol CDATA #REQUIRED>\n"
  "<!ATTLIST letter equals CDATA #IMPLIED>\n"
  "<!ATTLIST letter aliases CDATA #IMPLIED>\n"
  "<!ATTLIST letter complement CDATA #IMPLIED>\n"
  "<!ATTLIST letter name CDATA #IMPLIED>\n"
  "<!ATTLIST letter colour CDATA #IMPLIED>\n"
  "<!ELEMENT sequence EMPTY>\n"
  "<!ATTLIST sequence id ID #REQUIRED\n"
  "                   name CDATA #REQUIRED\n"
  "                   length CDATA #REQUIRED\n"
  "                   weight CDATA #REQUIRED\n"
  ">\n"
  "<!ELEMENT letter_frequencies (alphabet_array)>\n"
  "\n"
  "<!-- Model elements -->\n"
  "<!ELEMENT model (\n"
  "  command_line,\n"
  "  host,\n"
  "  type,\n"
  "  nmotifs,\n"
  "  evalue_threshold,\n"
  "  object_function,\n"
  "  min_width,\n"
  "  max_width,\n"
  "  minic,\n"
  "  wg,\n"
  "  ws,\n"
  "  endgaps,\n"
  "  minsites,\n"
  "  maxsites,\n"
  "  wnsites,\n"
  "  prob,\n"
  "  spmap,\n"
  "  spfuzz,\n"
  "  prior,\n"
  "  beta,\n"
  "  maxiter,\n"
  "  distance,\n"
  "  num_sequences,\n"
  "  num_positions,\n"
  "  seed,\n"
  "  seqfrac,\n"
  "  strands,\n"
  "  priors_file,\n"
  "  reason_for_stopping,\n"
  "  background_frequencies\n"
  ")>\n"
  "<!ELEMENT command_line (#PCDATA)*>\n"
  "<!ELEMENT host (#PCDATA)*>\n"
  "<!ELEMENT type (#PCDATA)*>\n"
  "<!ELEMENT nmotifs (#PCDATA)*>\n"
  "<!ELEMENT evalue_threshold (#PCDATA)*>\n"
  "<!ELEMENT object_function (#PCDATA)*>\n"
  "<!ELEMENT min_width (#PCDATA)*>\n"
  "<!ELEMENT max_width (#PCDATA)*>\n"
  "<!ELEMENT minic (#PCDATA)*>\n"
  "<!ELEMENT wg (#PCDATA)*>\n"
  "<!ELEMENT ws (#PCDATA)*>\n"
  "<!ELEMENT endgaps (#PCDATA)*>\n"
  "<!ELEMENT minsites (#PCDATA)*>\n"
  "<!ELEMENT maxsites (#PCDATA)*>\n"
  "<!ELEMENT wnsites (#PCDATA)*>\n"
  "<!ELEMENT prob (#PCDATA)*>\n"
  "<!ELEMENT spmap (#PCDATA)*>\n"
  "<!ELEMENT spfuzz (#PCDATA)*>\n"
  "<!ELEMENT prior (#PCDATA)*>\n"
  "<!ELEMENT beta (#PCDATA)*>\n"
  "<!ELEMENT maxiter (#PCDATA)*>\n"
  "<!ELEMENT distance (#PCDATA)*>\n"
  "<!ELEMENT num_sequences (#PCDATA)*>\n"
  "<!ELEMENT num_positions (#PCDATA)*>\n"
  "<!ELEMENT seed (#PCDATA)*>\n"
  "<!ELEMENT seqfrac (#PCDATA)*>\n"
  "<!ELEMENT strands (#PCDATA)*>\n"
  "<!ELEMENT priors_file (#PCDATA)*>\n"
  "<!ELEMENT reason_for_stopping (#PCDATA)*>\n"
  "<!ELEMENT background_frequencies (alphabet_array)>\n"
  "<!ATTLIST background_frequencies source CDATA #REQUIRED>\n"
  "\n"
  "<!-- Motif elements -->\n"
  "<!ELEMENT motifs (motif*)>\n"
  "<!ELEMENT motif (scores, probabilities, regular_expression?, contributing_sites)>\n"
  "<!ATTLIST motif id ID #REQUIRED\n"
  "                name CDATA #REQUIRED\n"
  "                width CDATA #REQUIRED\n"
  "                sites CDATA #REQUIRED\n"
  "                llr CDATA #REQUIRED\n"
  "                ic CDATA #REQUIRED\n"
  "                re CDATA #REQUIRED\n"
  "                bayes_threshold CDATA #REQUIRED\n"
  "                e_value CDATA #REQUIRED\n"
  "                elapsed_time CDATA #REQUIRED\n"
  "                url CDATA \"\"\n"
  ">\n"
  "<!ELEMENT scores (alphabet_matrix)>\n"
  "<!ELEMENT probabilities (alphabet_matrix)>\n"
  "<!ELEMENT regular_expression (#PCDATA)*>\n"
  "\n"
  "<!-- Contributing site elements -->\n"
  "<!-- Contributing sites are motif occurences found during the motif discovery phase -->\n"
  "<!ELEMENT contributing_sites (contributing_site*)>\n"
  "<!ELEMENT contributing_site (left_flank, site, right_flank)>\n"
  "<!ATTLIST contributing_site sequence_id IDREF #REQUIRED\n"
  "                          position CDATA #REQUIRED\n"
  "                          strand (plus|minus|none) 'none'\n"
  "                          pvalue CDATA #REQUIRED\n"
  ">\n"
  "<!-- The left_flank contains the sequence for 10 bases to the left of the motif start -->\n"
  "<!ELEMENT left_flank (#PCDATA)>\n"
  "<!-- The site contains the sequence for the motif instance -->\n"
  "<!ELEMENT site (letter_ref*)>\n"
  "<!-- The right_flank contains the sequence for 10 bases to the right of the motif end -->\n"
  "<!ELEMENT right_flank (#PCDATA)>\n"
  "\n"
  "<!-- Scanned site elements -->\n"
  "<!-- Scanned sites are motif occurences found during the sequence scan phase -->\n"
  "<!ELEMENT scanned_sites_summary (scanned_sites*)>\n"
  "<!ATTLIST scanned_sites_summary p_thresh CDATA #REQUIRED>\n"
  "<!ELEMENT scanned_sites (scanned_site*)>\n"
  "<!ATTLIST scanned_sites sequence_id IDREF #REQUIRED\n"
  "                        pvalue CDATA #REQUIRED\n"
  "                        num_sites CDATA #REQUIRED>\n"
  "<!ELEMENT scanned_site EMPTY>\n"
  "<!ATTLIST scanned_site  motif_id IDREF #REQUIRED\n"
  "                        strand (plus|minus|none) 'none'\n"
  "                        position CDATA #REQUIRED\n"
  "                        pvalue CDATA #REQUIRED>\n"
  "\n"
  "<!-- Utility elements -->\n"
  "<!-- A reference to a letter in the alphabet -->\n"
  "<!ELEMENT letter_ref EMPTY>\n"
  "<!ATTLIST letter_ref letter_id IDREF #REQUIRED>\n"
  "<!-- A alphabet-array contains one floating point value for each letter in an alphabet -->\n"
  "<!ELEMENT alphabet_array (value*)>\n"
  "<!ELEMENT value (#PCDATA)>\n"
  "<!ATTLIST value letter_id IDREF #REQUIRED>\n"
  "\n"
  "<!-- A alphabet_matrix contains one alphabet_array for each position in a motif -->\n"
  "<!ELEMENT alphabet_matrix (alphabet_array*)>\n"
  "\n"
  "]>\n";
