

<QuickAppConfig Name="HTMLFederatedDemo">

 <FieldSpecs>

    <Field>
      <ID>AU</ID>
      <Name>Author</Name>
      <Type>AlphaNumeric</Type>
    </Field>

    <Field>
       <ID>TI</ID>
       <Name>Article Title</Name>
       <Type>AlphaNumeric</Type>
    </Field>

    <Field>
      <ID>KY</ID>
      <Name>Keywords</Name>
      <Type>AlphaNumeric</Type>
    </Field>

  </FieldSpecs>


  <SearchForms>
    <SearchForm name="AdvancedSearch"  >
     
     <Field ID="TI" type="text" width="50" name="Title" />
     <Field ID="AU" type="text" width="50" name="Author" />
     <Field ID="KY" type="text" width="50" name="Keywords" />

     <Field ID="PageSize" type="radio" >
       <Choice value="10" name="10" default="on" />
       <Choice value="20" name="20" />
       <Choice value="50" name="50" />
     </Field>

     <Field ID="SortBy" type="radio" >
       <Choice value="relevance" name="Score" default="on" />
       <Choice value="date"      name="Date"  />
     </Field>

    </SearchForm>
  </SearchForms>

  <DisplayForms>
    <DisplayForm name="brief" >
      <Field ID="TI" type="text" width="50" />
      <Field ID="AU" type="text" width="50" />
      <Field ID="KY" type="text" width="50" />
    </DisplayForm>
  </DisplayForms>


  <SourceType name="NewYorkTimesBooks" type="HTMLSearchSource" displayName="New York Times - Books"
              sourceFactoryClass="com.raritantechnologies.federated.html.HTMLSearchSourceFactory" 
              queryProcessor="com.raritantechnologies.federated.html.HTMLQueryProcessor" >

    <Fields>
      <!-- NYTimes has one input field - need to create composite -->
      <FormatField 
       value="{(TI)&quot;_TI_&quot;}{(AND TI,AU) AND }{(AU)&quot;_AU_&quot;}{(AND KY,(OR TI,AU)) AND }{(KY)&quot;_KY_&quot;}"
               xPath="/SearchProcess/Step/params/param[@formName='query']/@value" />
      <FormatField value="FormatCurrentDate( 'MM' )" xPath="/SearchProcess/Step/params/param[@formName='mon2']/@value" />
      <FormatField value="FormatCurrentDate( 'dd' )" xPath="/SearchProcess/Step/params/param[@formName='day2']/@value" />
      <FormatField value="FormatCurrentDate( 'yyyy' )" xPath="/SearchProcess/Step/params/param[@formName='year2']/@value" />
    </Fields>

    <SecurityModel>
       <search>Restricted</search>
       <fullText>Restricted</fullText>
    </SecurityModel>

    <LoginMap>
        <UserName xPath="/LoginProcess/Step/params/param[@type='UserName']/@value" />
        <Password xPath="/loginProcess/Step/params/param[@type='Password']/@value" />
    </LoginMap>

    <LoginProcess>
       <Step type="postURL" URL="http://www.nytimes.com/auth/login" >
         <params>
           <param type="UserName" formName="USERID" value="" />
           <param type="Password" formName="PASSWORD" value="" />
           <param formName="submit" value="Log In" />
         </params>
       </Step>
    </LoginProcess>

    <SearchProcess>
      <Step type="getURL" URL="http://query.nytimes.com/search/query">
        <params>
          <param formName="srcht" value="a" />
          <param formName="srchot" value="a" />
          <param formName="query" value="" />
          <param formName="field" value="body" />
          <param formName="daterange" value="period"/>
          <param formName="mon1" value="01" />
          <param formName="day1" value="01" />
          <param formName="year1" value="1996" />

          <!-- These need to be current... -->
          <param formName="mon2" value="06" />
          <param formName="day2" value="16" />
          <param formName="year2" value="2003" />

          <param formName="section7" value="Books" />
          <param formName="cre" value="" />
          <param formName="sort" value="closest" />
          <param formName="sources" value="all" />
        </params>
      </Step>
    </SearchProcess>

    <ScraperConfigFile>NYTimesScraperConfig.xml</ScraperConfigFile>
    <OutputTransformer>NYTimesTransform.xsl</OutputTransformer>

  </SourceType>


</QuickAppConfig>