The following XML Schema can be used to understand and validate the FileLocator Pro XML result output.
<?xml version="1.0" encoding="utf-8"?>
<xs:schema targetNamespace="http://www.mythicsoft.com/FileLocator_16Aug2005"
elementFormDefault="qualified"
attributeFormDefault="qualified"
xmlns="http://www.mythicsoft.com/FileLocator_16Aug2005"
xmlns:mstns="http://tempuri.org/XMLSchema.xsd"
xmlns:xs="http://www.w3.org/2001/XMLSchema" >
<xs:annotation>
<xs:documentation xml:lang="en">
FileLocator Search Result schema
Copyright (C) 2009 Mythicsoft Ltd. All rights reserved.
</xs:documentation>
</xs:annotation>
<xs:element name="SearchResults" type="SearchResultsType" />
<xs:complexType name="SearchResultsType">
<xs:sequence>
<xs:element name="file" type="FileType" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="FileType">
<xs:sequence>
<xs:element name="name" type="xs:string" />
<xs:element name="path" type="xs:string" />
<xs:element name="modified" type="xs:string" />
<xs:element name="modifiedft" type="xs:long" />
<xs:element name="size" type="xs:string" />
<xs:element name="sizebytes" type="xs:long" />
<xs:element name="attr" type="xs:long" />
<xs:element name="type" type="xs:string" />
<xs:element name="contents" type="ContentType" minOccurs="0" maxOccurs="1"/>
</xs:sequence>
<xs:attribute name="isfolder" type="xs:boolean"/>
</xs:complexType>
<xs:complexType name="ContentType">
<xs:sequence>
<xs:element name="line" type="LineType" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="linecount" type="xs:long"/>
<xs:attribute name="totalhitcount" type="xs:long"/>
</xs:complexType>
<xs:complexType name="LineType" >
<xs:sequence>
<xs:element name="hit" type="HitType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="text" type="xs:string" />
</xs:sequence>
<xs:attribute name="number" type="xs:long"/>
<xs:attribute name="linetype" type="xs:string"/>
<xs:attribute name="hitcount" type="xs:string" use="optional"/>
<xs:attribute name="exprstart" type="xs:int" use="optional"/>
<xs:attribute name="exprlength" type="xs:int" use="optional"/>
</xs:complexType>
<xs:complexType name="HitType" >
<xs:attribute name="exprstart" type="xs:int"/>
<xs:attribute name="exprlength" type="xs:int"/>
</xs:complexType>
</xs:schema>
Sample FileLocator Pro result XML is shown below. It contains a single file (ctlprop.cpp) with eight found lines and includes the surrounding lines of text:
<?xml version="1.0" encoding="UTF-8" ?>
<rslt:SearchResults xmlns:rslt="http://www.mythicsoft.com/FileLocator_16Aug2005">
<rslt:file rslt:isfolder="false">
<rslt:name>ctlprop.cpp</rslt:name>
<rslt:path>C:\Program Files\Microsoft Visual Studio 9.0\VC\atlmfc\src\mfc\</rslt:path>
<rslt:modified>09/04/2005 15:21:20</rslt:modified>
<rslt:modifiedft>127575336800000000</rslt:modifiedft>
<rslt:size>37.00 KB</rslt:size>
<rslt:sizebytes>37359</rslt:sizebytes>
<rslt:attr>32</rslt:attr>
<rslt:type>C++ Source</rslt:type>
<rslt:contents rslt:linecount="7" rslt:totalhitcount="8">
<rslt:line rslt:number="1441" rslt:linetype="leading" >
<rslt:text><![CDATA[/////////////////////////////////////////////////////////////////////////////]]></rslt:text>
</rslt:line>
<rslt:line rslt:number="1442" rslt:linetype="leading" >
<rslt:text><![CDATA[// CDataPathProperty implementation]]></rslt:text>
</rslt:line>
<rslt:line rslt:number="1444" rslt:linetype="found" rslt:hitcount="1" rslt:exprstart="29" rslt:exprlength="5">
<rslt:hit rslt:exprstart="29" rslt:exprlength="5"/>
<rslt:text><![CDATA[BOOL CDataPathProperty::Open(CFileException* pError)]]></rslt:text>
</rslt:line>
<rslt:line rslt:number="1445" rslt:linetype="trailing" >
<rslt:text><![CDATA[{]]></rslt:text>
</rslt:line>
<rslt:line rslt:number="1446" rslt:linetype="trailing" >
<rslt:text><![CDATA[ return CAsyncMonikerFile::Open(m_strPath, m_pControl ? m_pControl->GetClientSite() : NULL, pError);]]></rslt:text>
</rslt:line>
<rslt:line rslt:number="1446" rslt:linetype="leading" >
<rslt:text><![CDATA[ return CAsyncMonikerFile::Open(m_strPath, m_pControl ? m_pControl->GetClientSite() : NULL, pError);]]></rslt:text>
</rslt:line>
<rslt:line rslt:number="1447" rslt:linetype="leading" >
<rslt:text><![CDATA[}]]></rslt:text>
</rslt:line>
<rslt:line rslt:number="1449" rslt:linetype="found" rslt:hitcount="1" rslt:exprstart="47" rslt:exprlength="5">
<rslt:hit rslt:exprstart="47" rslt:exprlength="5"/>
<rslt:text><![CDATA[BOOL CDataPathProperty::Open(LPCTSTR lpszPath, CFileException* pError)]]></rslt:text>
</rslt:line>
<rslt:line rslt:number="1450" rslt:linetype="trailing" >
<rslt:text><![CDATA[{]]></rslt:text>
</rslt:line>
<rslt:line rslt:number="1451" rslt:linetype="trailing" >
<rslt:text><![CDATA[ SetPath(lpszPath);]]></rslt:text>
</rslt:line>
<rslt:line rslt:number="1452" rslt:linetype="leading" >
<rslt:text><![CDATA[ return Open(pError);]]></rslt:text>
</rslt:line>
<rslt:line rslt:number="1453" rslt:linetype="leading" >
<rslt:text><![CDATA[}]]></rslt:text>
</rslt:line>
<rslt:line rslt:number="1455" rslt:linetype="found" rslt:hitcount="1" rslt:exprstart="52" rslt:exprlength="5">
<rslt:hit rslt:exprstart="52" rslt:exprlength="5"/>
<rslt:text><![CDATA[BOOL CDataPathProperty::Open(COleControl* pControl, CFileException* pError)]]></rslt:text>
</rslt:line>
<rslt:line rslt:number="1456" rslt:linetype="trailing" >
<rslt:text><![CDATA[{]]></rslt:text>
</rslt:line>
<rslt:line rslt:number="1457" rslt:linetype="trailing" >
<rslt:text><![CDATA[ SetControl(pControl);]]></rslt:text>
</rslt:line>
<rslt:line rslt:number="1458" rslt:linetype="leading" >
<rslt:text><![CDATA[ return Open(pError);]]></rslt:text>
</rslt:line>
<rslt:line rslt:number="1459" rslt:linetype="leading" >
<rslt:text><![CDATA[}]]></rslt:text>
</rslt:line>
<rslt:line rslt:number="1461" rslt:linetype="found" rslt:hitcount="1" rslt:exprstart="70" rslt:exprlength="5">
<rslt:hit rslt:exprstart="70" rslt:exprlength="5"/>
<rslt:text><![CDATA[BOOL CDataPathProperty::Open(LPCTSTR lpszPath, COleControl* pControl, CFileException* pError)]]></rslt:text>
</rslt:line>
<rslt:line rslt:number="1462" rslt:linetype="trailing" >
<rslt:text><![CDATA[{]]></rslt:text>
</rslt:line>
<rslt:line rslt:number="1463" rslt:linetype="trailing" >
<rslt:text><![CDATA[ SetControl(pControl);]]></rslt:text>
</rslt:line>
<rslt:line rslt:number="1488" rslt:linetype="leading" >
<rslt:text><![CDATA[/////////////////////////////////////////////////////////////////////////////]]></rslt:text>
</rslt:line>
<rslt:line rslt:number="1489" rslt:linetype="leading" >
<rslt:text><![CDATA[// CCachedDataPathProperty implementation]]></rslt:text>
</rslt:line>
<rslt:line rslt:number="1491" rslt:linetype="found" rslt:hitcount="2" rslt:exprstart="48" rslt:exprlength="19">
<rslt:hit rslt:exprstart="48" rslt:exprlength="5"/>
<rslt:hit rslt:exprstart="62" rslt:exprlength="5"/>
<rslt:text><![CDATA[AFX_STATIC inline DWORD _AfxTransferFileContent(CFile* pFrom, CFile* pTo)]]></rslt:text>
</rslt:line>
<rslt:line rslt:number="1492" rslt:linetype="trailing" >
<rslt:text><![CDATA[{]]></rslt:text>
</rslt:line>
<rslt:line rslt:number="1493" rslt:linetype="trailing" >
<rslt:text><![CDATA[ BYTE buff[1024];]]></rslt:text>
</rslt:line>
<rslt:line rslt:number="1518" rslt:linetype="leading" >
<rslt:text><![CDATA[ CATCH_ALL(e)]]></rslt:text>
</rslt:line>
<rslt:line rslt:number="1519" rslt:linetype="leading" >
<rslt:text><![CDATA[ {]]></rslt:text>
</rslt:line>
<rslt:line rslt:number="1520" rslt:linetype="found" rslt:hitcount="1" rslt:exprstart="22" rslt:exprlength="5">
<rslt:hit rslt:exprstart="22" rslt:exprlength="5"/>
<rslt:text><![CDATA[ m_Cache.Seek(dwPos, CFile::begin);]]></rslt:text>
</rslt:line>
<rslt:line rslt:number="1521" rslt:linetype="trailing" >
<rslt:text><![CDATA[ THROW_LAST();]]></rslt:text>
</rslt:line>
<rslt:line rslt:number="1522" rslt:linetype="trailing" >
<rslt:text><![CDATA[ }]]></rslt:text>
</rslt:line>
<rslt:line rslt:number="1522" rslt:linetype="leading" >
<rslt:text><![CDATA[ }]]></rslt:text>
</rslt:line>
<rslt:line rslt:number="1523" rslt:linetype="leading" >
<rslt:text><![CDATA[ END_CATCH_ALL]]></rslt:text>
</rslt:line>
<rslt:line rslt:number="1524" rslt:linetype="found" rslt:hitcount="1" rslt:exprstart="21" rslt:exprlength="5">
<rslt:hit rslt:exprstart="21" rslt:exprlength="5"/>
<rslt:text><![CDATA[ m_Cache.Seek(dwPos, CFile::begin);]]></rslt:text>
</rslt:line>
<rslt:line rslt:number="1525" rslt:linetype="trailing" >
<rslt:text><![CDATA[}]]></rslt:text>
</rslt:line>
<rslt:line rslt:number="1527" rslt:linetype="trailing" >
<rslt:text><![CDATA[void CCachedDataPathProperty::Close()]]></rslt:text>
</rslt:line>
</rslt:contents>
</rslt:file>
</rslt:SearchResults>