XML Formats (GUITAR 2.0+)

[ GUI Structure (.GUI) ] [ Event Flow Graph (.EFG) ] [ Test Case (.TST) ] [ Oracle information (.ORC) ]
Note: + means it repeats 1 or more times;
      * means it repeats 0 or more times;

GUI Structure (.GUI)

+<GUI>
	+<Container>
		<Attributes>
			<Size/>
			+<Property>
				<Name/>	
				+<Value/>
			</Property>
		</Attributes>
		<Contents>
			+<Container> or <Widget>
				<Attributes>
					<Size/>
					+<Property>
						<Name/>	
						+<Value/>
					</Property>
				</Attributes>
			</Container> or </Widget>
		</Contents>
	</Container>
</GUI>
The GUI structure has many GUI windows. For each GUI window, we put information inside a <GUI></GUI> tag. Each GUI window contains 1 or more containers. For each container:
Container Info:
	<Attributes> is the attributes of the container, including
		<Size/> the number of attributes
		one or more <Property/>, indicates the property of the container (name) and the respective value(s) (one or more); 
	<Contents> is the content the container has, including
		one or more <Container>/<Widget>, another container or widget
			if it is a widget, it doesn't have <Contents> just <Attributes> part (described above); 
			if it is a container, it has <Attributes> and <Contents> parts recursively

Event Flow Graph (.EFG)

<EFG>
        <Events>
	        +<Event>
		        <Window/>
			<Component/>
			<Action/>
		</Event>
	</Events>
	<EventGraph>
	        +<Row>
		        +<E/>
		</Row>
	</EventGraph>
</EFG>
The order of the <Event>, <Row>, and <E> entries matters! The ith <Event> corresponds to the ith <Row> and the ith <E> in each <Row>. The value for the kth <E> in the jth <Row> is:

Test Case (.TST)

<TESTCASE>
+<Step>
        <Window/>
        <Component/>
        <Action/>
        <WindowFlag/>
        <Attributes>
                +<Property>
                        <Name/>
                        +<Value/>
                </Property>
        </Attributes>
</Step>
</TESTCASE>

Oracle information (.ORC)

<?xml version="1.0" ?>
<Testsuite>
<Mode>...</Mode>
<Testcase>
<Test>...</Test>
        <Length>...</Length>
	<Step>
	        <Window>...</Window>
		<Nonterminal>...</Nonterminal>
	</Step>
	<Oracleinfo>
	<GUI>
	        <Component>
		        +<Property><Name>...</Name><Value>...</Value></Property>
		</Component>
	</GUI>
	</Oracleinfo>
	<Oracleinfo>
	+<GUI>
	        <Window>
		        <Attributes>
			        +<Property><Name>...</Name><Value>...</Value></Property>
			</Attributes>
		</Window>
		+<Component>
		        +<Property><Name>...</Name><Value>...</Value></Property>
		</Component>
	</GUI>
	</Oracleinfo>
	...
</Testcase>
</Testsuite>
Each test-case step (event) in the oracle-info file has the form
        <Step/>
	<Oracleinfo/>
	<Oracleinfo/>
The content of <Step/> gives information about the event performed. The first <Oracleinfo/> gives properties of the component acted on by the event. The second <Oracleinfo/> gives properties of all windows and components in the GUI (including the component acted on by the event).