<!ELEMENT testopia (testplan, testcase*, testenvironment*, category*, build*)>
<!ATTLIST testopia
    version CDATA #REQUIRED
>
<!ELEMENT action (#PCDATA)>
<!ELEMENT alias (#PCDATA)>
<!ELEMENT archived (#PCDATA)>
<!ELEMENT arguments (#PCDATA)>
<!ELEMENT assignedto (#PCDATA)>
<!ELEMENT attachment (description, filename, submitter, mimetype, data)>
<!ELEMENT author (#PCDATA)>
<!ELEMENT automated (#PCDATA)>
<!ELEMENT blocks (#PCDATA)>
<!ATTLIST blocks 
    type (Database_id|Database_description|Xml_description) #REQUIRED
>
<!ELEMENT breakdown (#PCDATA)>
<!ELEMENT bugs (#PCDATA)>
<!ELEMENT build (name, milestone, description?)>
<!ATTLIST build
    product CDATA #REQUIRED
>
<!ELEMENT buildname (#PCDATA)>
<!ELEMENT category (name, description?)>
<!ATTLIST category
    product CDATA #REQUIRED
>
<!ELEMENT categoryname (#PCDATA)>
<!ELEMENT cclist (#PCDATA)>
<!ELEMENT closedate (#PCDATA)>
<!ELEMENT component (#PCDATA)>
<!ATTLIST component
    product CDATA #REQUIRED
>
<!ELEMENT data (#PCDATA)>
<!ELEMENT defaulttester (#PCDATA)>
<!ELEMENT dependson (#PCDATA)>
<!ATTLIST dependson 
    type (Database_id|Database_description|Xml_description) #REQUIRED
>
<!ELEMENT description (#PCDATA)>
<!ELEMENT document (#PCDATA)>
<!ELEMENT environment (#PCDATA)>
<!ELEMENT expectedresults (#PCDATA)>
<!ELEMENT filename (#PCDATA)>
<!ELEMENT manager (#PCDATA)>
<!ELEMENT milestone (#PCDATA)>
<!ELEMENT mimetype (#PCDATA)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT note (#PCDATA)>
<!ELEMENT os (#PCDATA)>
<!ELEMENT platform (#PCDATA)>
<!ELEMENT priority (#PCDATA)>
<!ELEMENT product (#PCDATA)>
<!ELEMENT productversion (#PCDATA)>
<!ELEMENT requirement (#PCDATA)>
<!ELEMENT script (#PCDATA)>
<!ELEMENT setup (#PCDATA)>
<!ELEMENT startdate (#PCDATA)>
<!ELEMENT status (#PCDATA)>
<!ELEMENT stopdate (#PCDATA)>
<!ELEMENT submitter (#PCDATA)>
<!ELEMENT summary (#PCDATA)>
<!ELEMENT tag (#PCDATA)>
<!ELEMENT testcase (summary, testplan_reference+, alias?, requirement?, defaulttester, categoryname?, script?, arguments*, component*, tag*, attachment*, dependson*, blocks*, setup?, breakdown?, action, expectedresults?)>
<!ATTLIST testcase 
    author CDATA #REQUIRED 
    priority (P0|P1|P2|P3|P4|p5) "P5" 
    automated (Manual|Automatic) "Manual" 
    status (PROPOSED|CONFIRMED|DISABLED) "CONFIRMED"
>
<!ELEMENT testedby (#PCDATA)>
<!ELEMENT testcase_reference (#PCDATA)>
<!ATTLIST testcase_reference 
    type (Database_id|Database_description|Xml_description) #REQUIRED
>
<!ELEMENT testenvironment (name, os, platform)>
<!ELEMENT testplan (name, product, productversion, build*, category*, tag*, attachment*, document?)>
<!ATTLIST testplan
    author CDATA #REQUIRED
    type (Acceptance|Function|Installation|Integration|Interoperability|Performance|Product|System|Unit) #REQUIRED
    archived (True|False) "False"
>
<!ELEMENT testplan_reference (#PCDATA)>
<!ATTLIST testplan_reference 
    type (Database_id|Database_description|Xml_description) #REQUIRED
>
<!ELEMENT testrun (summary, manager, testplan_reference, product, productversion, environment, buildname, status?, startdate?, stopdate?, cclist*, tag*, testrunlog*)>
<!ELEMENT testrunlog (testcase_reference, buildname, assignedto, testedby, closedate, status?, note?, bugs*)>

<!ENTITY testopia_lt "<">
<!ENTITY testopia_gt ">">