The XML Message Query Tool is a simple application to enable easy query of XML Message file documents. XML Message file documents are extremely large XML documents used to transport data for an identified purpose. The Tool is a lightweight desktop application that enables the user to open, close, and save edited message files. It must enable querying, and saving large documents, up to 10GB in length.
## Deliverables
The XML Message Query Tool is a simple application to enable easy query of XML Message file documents. XML Message file documents are extremely large XML documents used to transport data for an identified purpose. The Tool is a lightweight desktop application that enables the user to open, close, and save edited message files. It must enable querying, and saving large documents, up to 10GB in length.
The structure of a Message File is as follows:
<?xml version="1.0"?>
<Message_Header AttributeA="SomeValue" AttributeB="SomeOtherValue">
<Record_Element>
<DataValueA>SomeData</DataValueA>
<DataValueB>SomeData</DataValueB>
<DataValueC>SomeData</DataValueC>
<DataValueD>SomeData</DataValueD>
<DataValueE>SomeData</DataValueE>
</Record_Element>
<Record_Element>
<DataValueA>SomeData</DataValueA>
<DataValueB>SomeData</DataValueB>
<DataValueC>SomeData</DataValueC>
<DataValueD>SomeData</DataValueD>
<DataValueE>SomeData</DataValueE>
</Record_Element>
</Message_Header>
The XML Message Query Tool performs the following functions:
1. Enables the user to browse his file system for an XML Document and select an XML Message Document to query;
2. Once selected, all record elements are indexed so that the user can query against them. the user is shown a progress meter while record elements are indexed;
3. After indexing is complete, the user is shown a text field where he can enter in a query with some limited SQL Syntax. Each Supported SQL Operation and it's output format is shown below. All results are shown in an editable datadrid. IF the user edits a record element in a datagrid AND clicks save THEN the record element is edited within the document. Save As functionality should also be provided to enable the user to save the file with a different file nemt.
Supported Query Operations:
1. Select *
IF the user enters Select *, THEN all Record elements within the XML document are displayed in a datagrid.
2. Select [Element1], [Element2], [ElementN]
IF the user enters a list of XML Elements within a Record AND does NOT enter
a 'Where' clause THEN the selected Record elements within the XML document are displayed in a datagrid.
3. Select [Element1], [Element2], [Element3]
Where [Element1] = 'value'
IF the user enters a list of XML Elements within a Record AND DOES enter a 'Where' clause THEN the selected Record elemenents that meet the value passed to the where clause are returned to a datagrid.
4. Select [Element1], [Element2], [Element3]
Group By [Element1]
IF the user enters a list of XML Elements within a Record AND identifies a Record Element to Group by THEN records are grouped by the identied Record Element. IF more than one record is within a Group, a 'Tree Table' display is used.