<?xml version="1.0" encoding="UTF-8"?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->
<!--
Forrest site.xml

This file contains an outline of the site's information content.  It is used to:
- Generate the website menus (though these can be overridden - see docs)
- Provide semantic, location-independent aliases for internal 'site:' URIs, eg
<link href="site:changes"> links to changes.html (or ../changes.html if in
  subdir).
- Provide aliases for external URLs in the external-refs section.  Eg, <link
  href="ext:cocoon"> links to http://cocoon.apache.org/ 

See http://forrest.apache.org/docs/linking.html for more info
-->
<!-- The label attribute of the outer "site" element will only show 
  in the linkmap (linkmap.html).
  Use elements project-name and group-name in skinconfig to change name of 
  your site or project that is usually shown at the top of page.
  No matter what you configure for the href attribute, Forrest will
  always use index.html when you request http://yourHost/
  See FAQ: "How can I use a start-up-page other than index.html?"
-->
<site label="HCatalog" href="" xmlns="http://apache.org/forrest/linkmap/1.0" tab="">

  <docs label="HCatalog"> 
    <index label="Overview" href="index.html" />
    <index label="Installation From Tarball" href="install.html" />
    <index label="Load &amp; Store Interfaces" href="loadstore.html" />
    <index label="Input &amp; Output Interfaces " href="inputoutput.html" />
    <index label="Command Line Interface " href="cli.html" />
    <index label="Storage Formats" href="supportedformats.html" />
    <index label="Dynamic Partitioning" href="dynpartition.html" />
    <index label="Notification" href="notification.html" />    

    <api   label="API Docs" href="api/index.html"/>
  </docs>  

</site>
