<!ELEMENT CUNIT_TEST_RUN_REPORT
  (CUNIT_HEADER, CUNIT_RESULT_LISTING, CUNIT_RUN_SUMMARY, CUNIT_FOOTER)>

<!ELEMENT CUNIT_HEADER EMPTY>

<!ELEMENT CUNIT_RESULT_LISTING (CUNIT_RUN_SUITE*|CUNIT_RUN_GROUP*)>

<!ELEMENT CUNIT_RUN_SUITE (CUNIT_RUN_SUITE_SUCCESS|CUNIT_RUN_SUITE_FAILURE)>
  <!ELEMENT CUNIT_RUN_SUITE_SUCCESS (SUITE_NAME,CUNIT_RUN_TEST_RECORD*)>
  <!ELEMENT CUNIT_RUN_SUITE_FAILURE (SUITE_NAME,FAILURE_REASON)>
    <!ELEMENT SUITE_NAME (#PCDATA)>
    <!ELEMENT FAILURE_REASON (#PCDATA)>

<!ELEMENT CUNIT_RUN_GROUP (CUNIT_RUN_GROUP_SUCCESS|CUNIT_RUN_GROUP_FAILURE)>
  <!ELEMENT CUNIT_RUN_GROUP_SUCCESS (GROUP_NAME,CUNIT_RUN_TEST_RECORD*)>
  <!ELEMENT CUNIT_RUN_GROUP_FAILURE (GROUP_NAME,FAILURE_REASON)>
    <!ELEMENT GROUP_NAME (#PCDATA)>

<!ELEMENT CUNIT_RUN_TEST_RECORD (CUNIT_RUN_TEST_SUCCESS|CUNIT_RUN_TEST_FAILURE)>
  <!ELEMENT CUNIT_RUN_TEST_SUCCESS (TEST_NAME)>
  <!ELEMENT CUNIT_RUN_TEST_FAILURE (TEST_NAME, FILE_NAME, LINE_NUMBER, CONDITION)>
    <!ELEMENT TEST_NAME (#PCDATA)>
    <!ELEMENT FILE_NAME (#PCDATA)>
    <!ELEMENT LINE_NUMBER (#PCDATA)>
    <!ELEMENT CONDITION (#PCDATA)>

<!ELEMENT CUNIT_RUN_SUMMARY (CUNIT_RUN_SUMMARY_RECORD*)>
  <!ELEMENT CUNIT_RUN_SUMMARY_RECORD (TYPE, TOTAL, RUN, SUCCEEDED, FAILED, INACTIVE?)>
    <!ELEMENT TYPE (#PCDATA)>
    <!ELEMENT TOTAL (#PCDATA)>
    <!ELEMENT RUN (#PCDATA)>
    <!ELEMENT SUCCEEDED (#PCDATA)>
    <!ELEMENT FAILED (#PCDATA)>
    <!ELEMENT INACTIVE (#PCDATA)>

<!ELEMENT CUNIT_FOOTER (#PCDATA)>
