<?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
	subSubCateogory	        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>
