<?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.   
-->
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
    "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
    <!ENTITY openjpa-version "VERSION">

    <!ENTITY openjpa_intro.xml SYSTEM "openjpa_intro.xml">
    <!ENTITY jpa_overview_intro.xml SYSTEM "jpa_overview_intro.xml">
    <!ENTITY jpa_overview_why.xml SYSTEM "jpa_overview_why.xml">
    <!ENTITY jpa_overview_arch.xml SYSTEM "jpa_overview_arch.xml">
    <!ENTITY jpa_overview_pc.xml SYSTEM "jpa_overview_pc.xml">
    <!ENTITY jpa_overview_meta.xml SYSTEM "jpa_overview_meta.xml">
    <!ENTITY jpa_overview_persistence.xml SYSTEM "jpa_overview_persistence.xml">
    <!ENTITY jpa_overview_emfactory.xml SYSTEM "jpa_overview_emfactory.xml">
    <!ENTITY jpa_overview_em.xml SYSTEM "jpa_overview_em.xml">
    <!ENTITY jpa_overview_trans.xml SYSTEM "jpa_overview_trans.xml">
    <!ENTITY jpa_overview_query.xml SYSTEM "jpa_overview_query.xml">
    <!ENTITY jpa_overview_sqlquery.xml SYSTEM "jpa_overview_sqlquery.xml">
    <!ENTITY jpa_overview_mapping.xml SYSTEM "jpa_overview_mapping.xml">
    <!ENTITY jpa_overview_conclusion.xml SYSTEM "jpa_overview_conclusion.xml">
    <!ENTITY jpa_tutorials.xml SYSTEM "jpa_tutorials.xml">
    <!ENTITY ref_guide_intro.xml SYSTEM "ref_guide_intro.xml">
    <!ENTITY ref_guide_conf.xml SYSTEM "ref_guide_conf.xml">
    <!ENTITY ref_guide_logging.xml SYSTEM "ref_guide_logging.xml">
    <!ENTITY ref_guide_dbsetup.xml SYSTEM "ref_guide_dbsetup.xml">
    <!ENTITY ref_guide_pc.xml SYSTEM "ref_guide_pc.xml">
    <!ENTITY ref_guide_meta.xml SYSTEM "ref_guide_meta.xml">
    <!ENTITY ref_guide_mapping.xml SYSTEM "ref_guide_mapping.xml">
    <!ENTITY ref_guide_deploy.xml SYSTEM "ref_guide_deploy.xml">
    <!ENTITY ref_guide_runtime.xml SYSTEM "ref_guide_runtime.xml">
    <!ENTITY ref_guide_caching.xml SYSTEM "ref_guide_caching.xml">
    <!ENTITY ref_guide_remote.xml SYSTEM "ref_guide_remote.xml">
    <!ENTITY ref_guide_integration.xml SYSTEM "ref_guide_integration.xml">
    <!ENTITY ref_guide_optimization.xml SYSTEM "ref_guide_optimization.xml">
    <!ENTITY samples_guide.xml SYSTEM "samples_guide.xml">
    <!ENTITY jpa_resources.xml SYSTEM "jpa_resources.xml">
    <!ENTITY supported_databases.xml SYSTEM "supported_databases.xml">
]>
<book id="manual">
    <bookinfo>
        <title>Apache OpenJPA User's Guide</title>
    </bookinfo>

    <part id="introduction">
        <title>Introduction</title>
        &openjpa_intro.xml;
    </part>

    <part id="jpa_overview">
        <title>Java Persistence API</title>
        &jpa_overview_intro.xml;
        &jpa_overview_why.xml;
        &jpa_overview_arch.xml;
        &jpa_overview_pc.xml;
        &jpa_overview_meta.xml;
        &jpa_overview_persistence.xml;
        &jpa_overview_emfactory.xml;
        &jpa_overview_em.xml;
        &jpa_overview_trans.xml;
        &jpa_overview_query.xml;
        &jpa_overview_sqlquery.xml;
        &jpa_overview_mapping.xml;
        &jpa_overview_conclusion.xml;
    </part>

    <!--
    ### TUTORIAL
    <part id="tutorials">
        <title>Tutorials</title>
        &jpa_tutorials.xml;
    </part>
    -->

    <part id="ref_guide">
        <title>Reference Guide</title>
        &ref_guide_intro.xml;
        &ref_guide_conf.xml;
        &ref_guide_logging.xml;
        &ref_guide_dbsetup.xml;
        &ref_guide_pc.xml;
        &ref_guide_meta.xml;
        &ref_guide_mapping.xml;
        &ref_guide_deploy.xml;
        &ref_guide_runtime.xml;
        &ref_guide_caching.xml;
        &ref_guide_remote.xml;
        &ref_guide_integration.xml;
        &ref_guide_optimization.xml;
    </part>

    <!--
    <part id="samples_guide_part">
        <title>Samples</title>
        &samples_guide.xml;
    </part>
    -->

    &jpa_resources.xml;
    &supported_databases.xml;
</book>
