<?xml encoding="US-ASCII"?>
<!-- ====================== Entities ==================================-->
<!ENTITY % EdtPageSubCat "OutlineView | PropertySheet | SourceView">
<!ENTITY % WebSubCat "Accessability | AnimGIFDesigner | AppServerConfig | CSSEditor | DBWizard | FTPImport | FTPExport | HTTPImport | JavaBeanWizard | LinkStyleConvWizard |                                            LinksView | Miscellaneous | HTMLFileWizard | JSPFileWizard | ServletFileWizard | WebProjWizard | NLS | Samples | WebAppDeployDesc">
<!ENTITY % HTMLSubCat  "PageDesigner | DesignView |  %EdtPageSubCat; | Preview">
<!ENTITY % XMLSubCat  "%EdtPageSubCat;">
<!ENTITY % SubCat "(%WebSubCat; | %HTMLSubCat; | %XMLSubCat;)">
<!ENTITY % Cat "(webtool | html | xml)">

<!ENTITY % State "(Undefined | UnderConstruction | UnderReview | ReviewCompleted | Approved | Ready | Complete | Obsolete)">
<!ENTITY % Bucket "(ComponentTest | ProductTest | IntegrationTest | TranslationTest | UnitTest)">
<!ENTITY % Platform "(All | Win2000 | WinME | WinNT | Win98 | LinuxRedHat | Caldera | SuSe | TurboLinux)">

<!-- ====================== Elements ================================-->
<!ELEMENT testcase
  	((header, summary, definition, execution*),variation*)>
<!ELEMENT variation
  	(header, summary, definition, execution*)>

<!ELEMENT header (subject, author, coauthor*, creation_date)>
<!ELEMENT subject (#PCDATA)>
<!ELEMENT author (#PCDATA)>
<!ELEMENT coauthor (#PCDATA)>
<!ELEMENT creation_date (#PCDATA)>

<!-- Example of having more than one attribute list defined for a given element -->
<!ATTLIST header
	number			ID		#REQUIRED
	state			%State;         "UnderConstruction"
>
<!ATTLIST header
	category		%Cat;		#REQUIRED
	subCategory		%SubCat;	#REQUIRED
	subSubCategory	        CDATA         	#IMPLIED
	>

<!ELEMENT summary (testBucket+, platform+, part*, release+)>
<!ELEMENT testBucket EMPTY>
<!ATTLIST testBucket
	type		 	%Bucket;	#REQUIRED
>
<!ELEMENT platform EMPTY>
<!ATTLIST platform
	type		 	%Platform;	#REQUIRED
>
<!ELEMENT part (#PCDATA)>
<!ELEMENT release (#PCDATA)>


<!ELEMENT definition (purpose, prerequisite*, procedure, expected_results)>
<!ELEMENT purpose (#PCDATA)>
<!ELEMENT prerequisite EMPTY>
<!ATTLIST prerequisite
	number			IDREF		#REQUIRED
>
<!ELEMENT procedure (#PCDATA)>
<!ELEMENT expected_results (#PCDATA)>

<!ELEMENT execution ANY>
