<?xml version="1.0" encoding="ISO-8859-1" ?>
<!--
   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.
-->

<database>
  <tables>
    <table tableType="system">
      <name>users</name>
      <fields>
        <field>
	  <name>uid</name>
	  <type>long</type>
	</field>
        <field>
	  <name>uname</name>
	  <type>java.lang.String</type>
	</field>
        <field>
	  <name>firstName</name>
	  <type>java.lang.String</type>
	</field>
        <field>
	  <name>lastName</name>
	  <type>java.lang.String</type>
	</field>
        <field>
	  <name>email</name>
	  <type>java.lang.String</type>
	</field>
      </fields>
    </table>
    <table tableType="application">
      <name>documents</name>
      <fields>
        <field>
	  <name>docid</name>
	  <type>long</type>
	</field>
        <field>
	  <name>name</name>
	  <type>java.lang.String</type>
	</field>
        <field>
	  <name>creationDate</name>
	  <type>java.util.Date</type>
	</field>
        <field>
	  <name>authorID</name>
	  <type>long</type>
	</field>
        <field>
	  <name>version</name>
	  <type>int</type>
	</field>
      </fields>
    </table>
  </tables>
</database>
