You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ojb-dev@db.apache.org by to...@apache.org on 2004/02/01 17:36:51 UTC

cvs commit: db-ojb/xdocs repository.xml

tomdz       2004/02/01 08:36:51

  Modified:    xdocs    repository.xml
  Log:
  * Cleaned up structure and layout a bit
  * Started updating documentation to match the current dtd
  * Starting adding <a name=""> tags in order to be able to reference attributes from other documents
  
  Revision  Changes    Path
  1.25      +619 -587  db-ojb/xdocs/repository.xml
  
  Index: repository.xml
  ===================================================================
  RCS file: /home/cvs/db-ojb/xdocs/repository.xml,v
  retrieving revision 1.24
  retrieving revision 1.25
  diff -u -r1.24 -r1.25
  --- repository.xml	18 Jan 2004 03:50:02 -0000	1.24
  +++ repository.xml	1 Feb 2004 16:36:51 -0000	1.25
  @@ -5,6 +5,7 @@
       <author email="thma@apache.org">Thomas Mahler</author>
       <author email="daren@softwarearena.com">Daren Drummond</author>
       <author email="brianm@apache,org">Brian McCallister</author>
  +    <author email="tomdz@apache.org">Thomas Dudziak</author>
       <title>ObJectRelationalBridge Repository Documentation</title>
     </properties>
   
  @@ -19,8 +20,9 @@
       </li>
   
       <li>
  -        <a href="#Repository semantics - descriptor-repository">Repository semantics - descriptor-repository</a>
  +        <a href="#Repository semantics">Repository semantics</a>
           <ul>
  +            <li><a href="#descriptor-repository">descriptor-repository</a></li>
               <li><a href="#jdbc-connection-descriptor">jdbc-connection-descriptor</a></li>
               <ul>
                   <li><a href="#connection-pool">connection-pool</a></li>
  @@ -49,486 +51,514 @@
   
   <section name="Introduction - repository syntax">
   <p>
  -	The syntax of the OJB repository xml files is defined by the
  -	<code>repository.dtd</code>.
  -	<br/>
  -	The <a href="repository.dtd.txt">repository.dtd can be found here</a>.
  +    The syntax of the OJB repository xml files is defined by the
  +    <code>repository.dtd</code>.
  +    <br/>
  +    The <a href="repository.dtd.txt">repository.dtd can be found here</a>.
   </p>
   
   <p>
  -	The actual repository is split up into four separate files:
  -	<ol>
  -		<li>
  -			<a href="repository.xml.txt">the repository.xml</a>.
  -			This file contains the global jdbc-connection-descriptor
  -			and includes the following three files.
  -		</li>
  -		<li>
  -			<a href="repository_internal.xml.txt">the repository_internal.xml</a>.
  -			This file contains the mapping information for the OJB internal tables.
  -			These tables are used for implementing SequenceManagers and
  -			persistent collections.
  -		</li>
  -		<li>
  -			<a href="repository_junit.xml.txt">the repository_junit.xml</a>.
  -			This file contains the mapping information for the OJB JUnit regression
  -			test suite. In production environments these tables are not needed.
  -		</li>
  -		<li>
  -			<a href="repository_user.xml.txt">the repository_user.xml</a>.
  -			This file contains mappings for the tutorial applications
  -			and may be used to hold further user defined class mappings.
  -		</li>
  +    The actual repository is split up into four separate files:
  +    <ol>
  +        <li>
  +            <a href="repository.xml.txt">the repository.xml</a>.
  +            This file contains the global <i>jdbc-connection-descriptor</i>
  +            and includes the following three files.
  +        </li>
  +        <li>
  +            <a href="repository_internal.xml.txt">the repository_internal.xml</a>.
  +            This file contains the mapping information for the OJB internal tables.
  +            These tables are used for implementing SequenceManagers and
  +            persistent collections.
  +        </li>
  +        <li>
  +            <a href="repository_junit.xml.txt">the repository_junit.xml</a>.
  +            This file contains the mapping information for the OJB JUnit regression
  +            test suite. In production environments these tables are not needed.
  +        </li>
  +        <li>
  +            <a href="repository_user.xml.txt">the repository_user.xml</a>.
  +            This file contains mappings for the tutorial applications
  +            and may be used to hold further user defined class mappings.
  +        </li>
   
  -	</ol>
  +    </ol>
   </p>
   
   </section>
   
   
  -<section name="Repository semantics - descriptor-repository">
  +<section name="Repository semantics">
  +<p/>
  +<subsection name="descriptor-repository">
   
   <p>
  -	The descriptor-repository is the root element of a repository.xml file.
  -	It consists of one jdbc-connection-descriptor and at least one
  -	class-descriptor element.
  +The <i>descriptor-repository</i> is the root element of a repository.xml file.
  +It consists of one <i>jdbc-connection-descriptor</i> and at least one
  +<i>class-descriptor</i> element.
   </p><p>
  -	The jdbc-connection-descriptor element specifies a jdbc
  -	connection for the repository.
  +The <i>jdbc-connection-descriptor</i> element specifies a jdbc
  +connection for the repository.
   </p><p>
  -	class-descriptor elements specify o/r mapping information for
  -	persistent classes.
  +<i>class-descriptor</i> elements specify o/r mapping information for
  +persistent classes.
   </p>
   <source><![CDATA[
   <!ELEMENT descriptor-repository (
  -            jdbc-connection-descriptor, class-descriptor+)>
  +    documentation?,
  +    attribute*,
  +    jdbc-connection-descriptor*,
  +    class-descriptor* )
  +>
   ]]></source>
   
   <p>
  -    The isolation attribute defines the default isolation level for
  -    class-descriptor that do not define a specific isolation level.
  -    This isolation level is used within the ODMG-api and does not
  -    touch the isolation-level off the database.
  -</p><p>
  -	The version attribute is used to bind a repository.xml file to a given
  -	version of this dtd.
  -	A given OJB release will work properly only with the repository version
  -	shipped with that relase.
  -	This strictness maybe inconvenient but it does help to avoid the
  -	most common version conflicts.
  -</p><p>
  -The proxy-prefetching-limit attribute specifies a default value to be
  -applied to all proxy instances. If none is specified a default value of
  -50 is used. Proxy prefetching specifies how many instances of a proxied
  -class should be loaded in a single query when the proxy is first accessed.
  +    The <a name="descriptor-repository.isolation"><code>isolation</code></a> attribute
  +    defines the default isolation level for <i>class-descriptor</i> that do not define a
  +    specific isolation level. This isolation level is used within the ODMG-api and does
  +    not touch the isolation-level off the database.
  +</p><p>
  +    The <a name="descriptor-repository.version"><code>version</code></a> attribute is
  +    used to bind a repository.xml file to a given version of this dtd.
  +    A given OJB release will work properly only with the repository version
  +    shipped with that relase.
  +    This strictness maybe inconvenient but it does help to avoid the
  +    most common version conflicts.
  +</p><p>
  +    The <a name="descriptor-repository.proxy-prefetching-limit"><code>proxy-prefetching-limit</code></a>
  +    attribute specifies a default value to be applied to all proxy instances. If none
  +    is specified a default value of 50 is used. Proxy prefetching specifies how many
  +    instances of a proxied class should be loaded in a single query when the proxy is
  +    first accessed.
   </p>
   <source><![CDATA[
   <!ATTLIST descriptor-repository
  -	version (1.0) #REQUIRED
  -	isolation-level (read-uncommitted | read-committed |
  -                    repeatable-read | serializable |
  -                    optimistic) "read-uncommitted"
  +    version                 ( 1.0 ) #REQUIRED
  +    isolation-level         ( read-uncommitted |
  +                              read-committed   |
  +                              repeatable-read  |
  +                              serializable     |
  +                              optimistic ) "read-uncommitted"
       proxy-prefetching-limit CDATA "50"
   >
   ]]></source>
  -
  -
  +</subsection>
  +<p/>
   <subsection name="jdbc-connection-descriptor">
   <p>
  -	The <code>jdbc-connection-descriptor</code> element specifies a jdbc
  -	connection for the repository. It is allowed to define more than
  -    one <code>jdbc-connection-descriptor</code>. All class-descriptor
  -    elements are independent from the jdbc-connection-descriptors.
  +    The <i>jdbc-connection-descriptor</i> element specifies a jdbc
  +    connection for the repository. It is allowed to define more than
  +    one <i>jdbc-connection-descriptor</i>. All <i>class-descriptor</i>
  +    elements are independent from the <i>jdbc-connection-descriptor</i>s.
   </p>
   <p>
  -	A <code>connection-pool</code> element may be used to define connection pool
  -	properties for the specified JDBC connection.
  +    A <i>connection-pool</i> element may be used to define connection pool
  +    properties for the specified JDBC connection.
   </p>
   <p>
  -    Further a <code>sequence-manager</code> element may be used to
  +    Further a <i>sequence-manager</i> element may be used to
       define which sequence manager implementation should be used within
       the defined connection.
   </p>
   <source><![CDATA[
  -<!ELEMENT jdbc-connection-descriptor (documentation?,
  -                        connection-pool?, sequence-manager?)>
  +<!ELEMENT jdbc-connection-descriptor (
  +    documentation?,
  +    attribute*,
  +    object-cache?,
  +    connection-pool?,
  +    sequence-manager? )
  +>
   ]]></source>
   <p>
  -The <code>jdbc-connection-descriptor</code> element contains a bunch
  +The <i>jdbc-connection-descriptor</i> element contains a bunch
   of required and implied attributes:
   </p>
   <p>
  -    The <code>jcdAlias</code> attribute is a shortcut name for the defined connection
  -    descriptor. OJB use jcdAlias as key for the defined connections.
  -</p><p>
  -    The <code>default-connection</code> attribute used to define if this connection
  -    should used as default connection with OJB. You could define only
  -    one connection as default connection. It is also possible to set
  -    the default connection at runtime using
  -    PersistenceBrokerFactory#setDefaultKey(...) method.
  -    If set 'true' you could use on PB-api a shortcut-method of the
  -    PersistenceBrokerFactory to lookup PersistenceBroker instances.
  -</p><p>
  -    The <code>platform</code> attribute is used to define the specific RDBMS
  -    Platform. This attribute corresponds to a
  -	org.apache.ojb.broker.platforms.PlatformXXXImpl class.
  -</p><p>
  -	The <code>jdbc-level</code> attribute is used to specify the Jdbc compliance
  -	level of the used Jdbc driver.
  -</p><p>
  -    The eager-release attribute was adopt to solve a problem occured when
  -    using OJB within JBoss (3.0 &lt;= version &lt; 3.2.2, seems to be fixed in jboss 3.2.2).
  -    Only use within JBoss.
  -</p><p>
  -    The <code>batch-mode</code> attribute allow to set batch mode modus global
  -    from the used connection. It is also possible to change
  -    batch mode at runtime, using the
  -    PB.serviceConnectionManager.setBatchMode(...) method.
  -</p><p>
  -    The <code>useAutoCommit</code> attribute allow to set how OJB uses
  -    the autoCommit state of the used connections. The default mode
  -    was 1. When using mode 0 or 2 with the PB-api, you must use PB
  -    transaction demarcation.
  +    The <a name="jdbc-connection-descriptor.jcdAlias"><code>jcdAlias</code></a>
  +    attribute is a shortcut name for the defined connection descriptor. OJB
  +    uses the jcd alias as key for the defined connections.
  +</p><p>
  +    The <a name="jdbc-connection-descriptor.default-connection"><code>default-connection</code></a>
  +    attribute used to define if this connection should used as default
  +    connection with OJB. You could define only one connection as default
  +    connection. It is also possible to set the default connection at runtime
  +    using <code>PersistenceBrokerFactory#setDefaultKey(...)</code> method.
  +    If set <code>true</code> you can use a PB-api shortcut-method of the
  +    <code>PersistenceBrokerFactory</code> to lookup PersistenceBroker instances.
  +</p><p>
  +    The <a name="jdbc-connection-descriptor.platform"><code>platform</code></a>
  +    attribute is used to define the specific RDBMS Platform. This attribute
  +    corresponds to a <code>org.apache.ojb.broker.platforms.PlatformXXXImpl</code>
  +    class.
  +</p><p>
  +    The <a name="jdbc-connection-descriptor.jdbc-level"><code>jdbc-level</code></a>
  +    attribute is used to specify the Jdbc compliance level of the used Jdbc driver.
  +</p><p>
  +    The <a name="jdbc-connection-descriptor.eager-release"><code>eager-release</code></a>
  +    attribute was adopt to solve a problem occured when using OJB within JBoss
  +    (3.0 &lt;= version &lt; 3.2.2, seems to be fixed in jboss 3.2.2). Only use
  +    within JBoss.
  +</p><p>
  +    The <a name="jdbc-connection-descriptor.batch-mode"><code>batch-mode</code></a>
  +    attribute allow to set batch mode modus global from the used connection.
  +    It is also possible to change batch mode at runtime, using the
  +    <code>PB.serviceConnectionManager.setBatchMode(...)</code> method.
  +</p><p>
  +    The <a name="jdbc-connection-descriptor.useAutoCommit"><code>useAutoCommit</code></a>
  +    attribute allow to set how OJB uses the autoCommit state of the used
  +    connections. The default mode is 1. When using mode 0 or 2 with the
  +    PB-api, you must use PB transaction demarcation.<br/>
       <ul>
           <li>
  -    0 - OJB ignores the autoCommit setting of the connection and do not
  -        try to change it. This mode could be helpfully if the
  -        connection don't let you set the autoCommit state
  -        (e.g. using datasources from application server).
  +    0 - OJB ignores the autoCommit setting of the connection and does not
  +        try to change it. This mode could be helpful if the connection won't
  +        let you set the autoCommit state (e.g. using datasources within an
  +        application server).
           </li>
           <li>
  -    1 - set autoCommit explicit 'true' when connection was created
  -        and temporary set to 'false' when necessary (default mode).
  +    1 - Set autoCommit explicitly to <code>true</code> when a connection was created
  +        and temporary set to <code>false</code> when necessary (default mode).
           </li>
           <li>
  -    2 - set autoCommit explicit 'false' when connection was created.
  +    2 - Set autoCommit explicitly to <code>false</code> when a connection was created.
           </li>
       </ul>
   </p><p>
  -    If the <code>ignoreAutoCommitExceptions</code> attribute is set 'true', all
  -    exceptions caused by setting autocommit state, will be ignored.
  -    Default mode 'false'.
  -</p><p>
  -	If a <code>jndi-datasource-name</code> for JNDI based lookup of Jdbc
  -    connections is specified, the four attributes driver, protocol,
  -    subprotocol, dbalias used for Jdbc DriverManager based construction
  +    If the <a name="jdbc-connection-descriptor.ignoreAutoCommitExceptions"><code>ignoreAutoCommitExceptions</code></a>
  +    attribute is set to <code>true</code>, all exceptions caused by setting
  +    autocommit state, will be ignored. Default mode is <code>false</code>.
  +</p><p>
  +    If a <a name="jdbc-connection-descriptor.jndi-datasource-name"><code>jndi-datasource-name</code></a>
  +    for JNDI based lookup of Jdbc connections is specified, the four
  +    attributes <code>driver</code>, <code>protocol</code>, <code>subprotocol</code>,
  +    and <code>dbalias</code> used for Jdbc DriverManager based construction
       of Jdbc Connections must not be declared.
   </p><p>
  -    The <code>username</code> and <code>password</code> attributes are used as credentials
  -    for obtaining a jdbc connections.
  +    The <a name="jdbc-connection-descriptor.username"><code>username</code></a>
  +    and <a name="jdbc-connection-descriptor.password"><code>password</code></a>
  +    attributes are used as credentials for obtaining a jdbc connections.
       If users don't want to keep this information the
       repository.xml file, they could pass user/password
  -    using PBKey.java to obtain a PersistenceBroker
  +    using a <code>PBKey</code> to obtain a PersistenceBroker
   </p>
   <source><![CDATA[
   <!ATTLIST jdbc-connection-descriptor
  -	jcd-alias CDATA #REQUIRED
  -    default-connection (true | false) "false"
  -    platform (Db2 | Hsqldb | Informix | MsAccess | MsSQLServer |
  -	          MySQL | Oracle | PostgreSQL | Sybase | SybaseASE|
  -              SybaseASA | Sapdb) "Hsqldb"
  -	jdbc-level (1.0 | 2.0 | 3.0) "1.0"
  -	eager-release (true | false) "false"
  -    batch-mode (true | false) "false"
  -    useAutoCommit (0 | 1 | 2) "1"
  -    ignoreAutoCommitExceptions (true | false) "false"
  -
  -	jndi-datasource-name CDATA #IMPLIED
  -
  -	driver CDATA #IMPLIED
  -	protocol CDATA #IMPLIED
  -	subprotocol CDATA #IMPLIED
  -	dbalias CDATA #IMPLIED
  -
  -	username CDATA #IMPLIED
  -	password CDATA #IMPLIED
  +    jcd-alias                  CDATA #REQUIRED
  +    default-connection         ( true | false ) "false"
  +    platform                   ( Db2         |
  +                                 Hsqldb      |
  +                                 Informix    |
  +                                 MsAccess    |
  +                                 MsSQLServer |
  +                                 MySQL       |
  +                                 Oracle      |
  +                                 PostgreSQL  |
  +                                 Sybase      |
  +                                 SybaseASE   |
  +                                 SybaseASA   |
  +                                 Sapdb       ) "Hsqldb"
  +    jdbc-level                 ( 1.0 | 2.0 | 3.0 ) "1.0"
  +    eager-release              ( true | false ) "false"
  +    batch-mode                 ( true | false ) "false"
  +    useAutoCommit              ( 0 | 1 | 2 ) "1"
  +    ignoreAutoCommitExceptions ( true | false ) "false"
  +    jndi-datasource-name       CDATA #IMPLIED
  +    driver                     CDATA #IMPLIED
  +    protocol                   CDATA #IMPLIED
  +    subprotocol                CDATA #IMPLIED
  +    dbalias                    CDATA #IMPLIED
  +    username                   CDATA #IMPLIED
  +    password                   CDATA #IMPLIED
   >
   ]]></source>
  -
   </subsection>
  -
  -
  +<p/>
   <subsection name="connection-pool">
   <p>
  -	The connection-pool element specifies the connection pooling
  -	parameter.
  +    The <i>connection-pool</i> element specifies the connection pooling
  +    parameter.
   <source><![CDATA[
  -<!ELEMENT connection-pool EMPTY>
  +<!ELEMENT connection-pool (
  +    documentation? )
  +>
   ]]></source>
  -</p>
  -
  -<p>
  -Valid attributes for the <i>connection-pool</i> element are:
  -<ul>
  -<li>
  -maxActive<br/>
  -maximum number of connections that can be borrowed from the
  -pool at one time. When non-positive, there is no limit.
  -</li>
  -<li>
  -maxIdle<br/>
  -controls the maximum number of connections that can sit
  -idle in the pool at any time. When non-positive,
  -there is no limit
  -</li>
  -<li>
  -maxWait<br/>
  -max time block to get connection instance from pool,
  -after that exception is thrown.
  -When non-positive, block till last judgement
  -</li>
  -<li>
  -whenExhaustedAction<br/>
  -0 - fail when pool is exhausted
  -1 - block when pool is exhausted
  -2 - grow when pool is exhausted
  -</li>
  -<li>
  -testOnBorrow<br/>
  -The pool will attempt to validate each object before
  -it is returned from the pool
  -</li>
  -<li>
  -testOnReturn<br/>
  -The pool will attempt to validate each object
  -before it is returned to the pool
  -</li>
  -<li>
  -testWhileIdle<br/>
  -Indicates whether or not idle objects should be validated.
  -Objects that fail to validate will be dropped from the pool
  -</li>
  -<li>
  -timeBetweenEvictionRunsMillis<br/>
  -indicates how long the eviction thread should sleep before "runs"
  -of examining idle objects. When non-positive, no eviction
  -thread will be launched.
  -</li>
  -<li>
  -minEvictableIdleTimeMillis<br/>
  -specifies the minimum amount of time that a connection may sit idle
  -in the pool before it is eligable for eviction due to idle time.
  -When non-positive, no connection will be dropped from the pool due
  -to idle time alone (depends on timeBetweenEvictionRunsMillis > 0)
  -</li>
  -<li>
  -numTestsPerEvictionRun<br/>
  -The number of connections to examine during each run of the
  -idle object evictor thread (if any)
  -</li>
  -<li>
  -validationQuery<br/>
  -Here you could specify a validation query used by the ConnectionFactory
  -implementations using connection pooling,
  -to test a requested connection (e.g. "select 1 from dual") before
  -leave the pool (used by <code>ConnectionFactoryDBCPImpl</code>
  -and <code>ConnectionFactoryPooledImpl</code>).
  -<br/>
  -If not set, only <i>connection.isClosed()</i>
  -was called before connection was delivered.
  -</li>
  -<li>
  -logAbandoned<br/>
  -Only supported when using
  -org.apache.ojb.broker.accesslayer.ConnectionFactoryDBCPImpl
  -ConnectionFactory implementation.
  -Flag to log stack traces for application code which abandoned
  -a Statement or Connection. Defaults to false. Logging of
  -abandoned Statements and Connections adds overhead for
  -every Connection open or new Statement because a
  -stack trace has to be generated.
  -</li>
  -<li>
  -removeAbandoned/removeAbandonedTimeout<br/>
  -Only supported when using
  -org.apache.ojb.broker.accesslayer.ConnectionFactoryDBCPImpl
  -ConnectionFactory implementation.
  -Flag to remove abandoned connections if they exceed the
  -removeAbandonedTimeout. Set to true or false, default false.
  -If set to true a connection is considered abandoned and
  -eligible for removal if it has been idle longer than the
  -removeAbandonedTimeout. Setting this to true can recover
  -db connections from poorly written applications which
  -fail to close a connection.
  -</li>
  -</ul>
  +</p><p>
  +    Valid attributes for the <i>connection-pool</i> element are:
  +</p><p>
  +    <a name="connection-pool.maxActive"><code>maxActive</code></a> is the maximum
  +    number of connections that can be borrowed from the pool at one time. When
  +    non-positive, there is no limit.
  +</p><p>
  +    <a name="connection-pool.maxIdle"><code>maxIdle</code></a> controls the maximum
  +    number of connections that can sit idle in the pool at any time. When
  +    non-positive, there is no limit
  +</p><p>
  +    <a name="connection-pool.maxWait"><code>maxWait</code></a> - the maximum time
  +    block to get connection instance from pool, after that exception is thrown.
  +    When non-positive, block till last judgement
  +</p><p>
  +    <a name="connection-pool.whenExhaustedAction"><code>whenExhaustedAction</code></a><br/>
  +    <ul>
  +    <li>0 - fail when pool is exhausted</li>
  +    <li>1 - block when pool is exhausted</li>
  +    <li>2 - grow when pool is exhausted</li>
  +    </ul>
  +</p><p>
  +    <a name="connection-pool.testOnBorrow"><code>testOnBorrow</code></a>: when
  +    <code>true</code> the pool will attempt to validate each object before it
  +    is returned from the pool.
  +</p><p>
  +    <a name="connection-pool.testOnReturn"><code>testOnReturn</code></a> set to
  +    <code>true</code> will force the pool to attempt to validate each object before
  +    it is returned to the pool.
  +</p><p>
  +    <a name="connection-pool.testWhileIdle"><code>testWhileIdle</code></a> indicates
  +    whether or not idle objects should be validated. Objects that fail to validate
  +    will be dropped from the pool
  +</p><p>
  +    <a name="connection-pool.timeBetweenEvictionRunsMillis"><code>timeBetweenEvictionRunsMillis</code></a>
  +    indicates how long the eviction thread should sleep before "runs" of examining idle
  +    objects. When non-positive, no eviction thread will be launched.
  +</p><p>
  +    <a name="connection-pool.minEvictableIdleTimeMillis"><code>minEvictableIdleTimeMillis</code></a>
  +    specifies the minimum amount of time that a connection may sit idle in the
  +    pool before it is eligable for eviction due to idle time. When non-positive,
  +    no connection will be dropped from the pool due to idle time alone (depends
  +    on <code>timeBetweenEvictionRunsMillis</code> > 0)
  +</p><p>
  +    <a name="connection-pool.numTestsPerEvictionRun"><code>numTestsPerEvictionRun</code></a>
  +    - the number of connections to examine during each run of the idle object
  +    evictor thread (if any)
  +</p><p>
  +    <a name="connection-pool.validationQuery"><code>validationQuery</code></a>
  +    allows to specify a validation query used by the ConnectionFactory implementations
  +    using connection pooling, to test a requested connection (e.g. "select 1 from dual")
  +    before leave the pool (used by <code>ConnectionFactoryDBCPImpl</code>
  +    and <code>ConnectionFactoryPooledImpl</code>).<br/>
  +    If not set, only <code>connection.isClosed()</code>
  +    will have been called before the connection was delivered.
  +</p><p>
  +    <a name="connection-pool.logAbandoned"><code>logAbandoned</code></a> is only
  +    supported when using <code>org.apache.ojb.broker.accesslayer.ConnectionFactoryDBCPImpl</code>
  +    ConnectionFactory implementation.
  +    Then it is a flag to log stack traces for application code which abandoned
  +    a Statement or Connection. Defaults to false. Logging of
  +    abandoned Statements and Connections adds overhead for
  +    every Connection open or new Statement because a
  +    stack trace has to be generated.
  +</p><p>
  +    <a name="connection-pool.removeAbandoned"><code>removeAbandoned</code></a>/
  +    <a name="connection-pool.removeAbandonedTimeout"><code>removeAbandonedTimeout</code></a>
  +    When using <code>org.apache.ojb.broker.accesslayer.ConnectionFactoryDBCPImpl</code>
  +    ConnectionFactory implementation, the <code>removeAbandoned</code> flag
  +    controls the removal of abandoned connections if they exceed the
  +    <code>removeAbandonedTimeout</code>. Set to true or false, default false.
  +    If set to true a connection is considered abandoned and
  +    eligible for removal if it has been idle longer than the
  +    <code>removeAbandonedTimeout</code>. Setting this to true can recover
  +    db connections from poorly written applications which
  +    fail to close a connection.
   </p>
   
   <source><![CDATA[
   <!ATTLIST connection-pool
  -    maxActive                       CDATA #IMPLIED
  -    maxIdle                         CDATA #IMPLIED
  -    maxWait                         CDATA #IMPLIED
  -    minEvictableIdleTimeMillis      CDATA #IMPLIED
  -    numTestsPerEvictionRun          CDATA #IMPLIED
  -    testOnBorrow                    (true|false) #IMPLIED
  -    testOnReturn                    (true|false) #IMPLIED
  -    testWhileIdle                   (true|false) #IMPLIED
  -    timeBetweenEvictionRunsMillis   CDATA #IMPLIED
  -    whenExhaustedAction             (0|1|2) #IMPLIED
  -    validationQuery                 CDATA #IMPLIED
  -
  -    logAbandoned                    (true|false) #IMPLIED
  -    removeAbandoned                 (true|false) #IMPLIED
  -    removeAbandonedTimeout          CDATA #IMPLIED
  +    maxActive                     CDATA #IMPLIED
  +    maxIdle                       CDATA #IMPLIED
  +    maxWait                       CDATA #IMPLIED
  +    minEvictableIdleTimeMillis    CDATA #IMPLIED
  +    numTestsPerEvictionRun        CDATA #IMPLIED
  +    testOnBorrow                  ( true | false ) #IMPLIED
  +    testOnReturn                  ( true | false ) #IMPLIED
  +    testWhileIdle                 ( true | false ) #IMPLIED
  +    timeBetweenEvictionRunsMillis CDATA #IMPLIED
  +    whenExhaustedAction           ( 0 | 1 | 2 ) #IMPLIED
  +    validationQuery               CDATA #IMPLIED
  +    logAbandoned                  ( true | false ) #IMPLIED
  +    removeAbandoned               ( true | false ) #IMPLIED
  +    removeAbandonedTimeout        CDATA #IMPLIED
   >
   ]]></source>
  -
   </subsection>
  -
  -
  +<p/>
   <subsection name="sequence-manager">
   <p>
  -	The sequence-manager element specifies the sequence
  -    manager implementation used for key generation. All
  -    sequence manager implementations shipped with OJB
  -    you will find under org.apache.ojb.broker.util.sequence
  -    If no sequence-manager is defined, OJB use the default one.
  +    The <i>sequence-manager</i> element specifies the sequence manager
  +    implementation used for key generation. All sequence manager
  +    implementations shipped with OJB can be found in the
  +    <code>org.apache.ojb.broker.util.sequence</code> package.
  +    If no sequence manager is defined, OJB uses the default one.
   </p><p>
  -    Use the attribute element to pass implementation specific
  -    properties.
  +    Use the attribute element to pass implementation specific properties.
   </p>
   
   <source><![CDATA[
  -<!ELEMENT sequence-manager (documentation?, attribute*)>
  +<!ELEMENT sequence-manager (
  +    documentation?,
  +    attribute* )
  +>
   ]]></source>
   
   <p>
  -The className attribute represents the full qualified class name
  -of the desired sequence manager implementation - it is mandatory
  -when using the sequence-manager element.
  -All sequence manager implementations you find will under
  -org.apache.ojb.broker.util.sequence package named as SequenceManagerXXXImpl
  +    The <a name="sequence-manager.className"><code>className</code></a> attribute
  +    represents the full qualified class name of the desired sequence manager
  +    implementation - it is mandatory when using the sequence-manager element.
  +    All sequence manager implementations you find will under
  +    <code>org.apache.ojb.broker.util.sequence</code> package named as
  +    <code>SequenceManagerXXXImpl</code>
   </p>
   <p>
  -More info about the usage of the <a href="sequencemanager.html">Sequence Manager</a> implementations
  +    More info about the usage of the Sequence Manager implementations
  +    <a href="sequencemanager.html">can be found here.</a>
   </p>
   
   <source><![CDATA[
   <!ATTLIST sequence-manager
  -    className                       CDATA #REQUIRED
  +    className CDATA #REQUIRED
   >
   ]]></source>
  -
   </subsection>
  -
  +<p/>
   <subsection name="custom attribute">
   <p>
  -  An attribute element allows arbitrary name/value pairs to
  -  be represented in the repository. See <a href="repository.dtd.txt">repository.dtd</a>
  -  to find elements with <code>attribute</code> support.
  +    An <i>attribute</i> element allows arbitrary name/value pairs to
  +    be represented in the repository. See the <a href="repository.dtd.txt">repository.dtd</a>
  +    for details on which elements support it.
   </p>
   <source><![CDATA[
   <!ELEMENT attribute EMPTY>
   ]]></source>
   
   <p>
  -	The attribute-name identifies the name of the attribute.
  -	<br/>
  -	The attribute-value identifies the value of the attribute.
  +    The <a name="attribute.attribute-name"><code>attribute-name</code></a> identifies
  +    the name of the attribute.
  +</p><p>
  +    The <a name="attribute.attribute-value"><code>attribute-value</code></a> identifies
  +    the value of the attribute.
   </p>
   <source><![CDATA[
   <!ATTLIST attribute
  -	attribute-name CDATA #REQUIRED
  -	attribute-value CDATA #REQUIRED
  +    attribute-name CDATA #REQUIRED
  +    attribute-value CDATA #REQUIRED
   >
   ]]></source>
   </subsection>
  -
  -
  +<p/>
   <subsection name="class-descriptor">
   <p>
  -	For interfaces or abstract classes a <code>class-descriptor</code>
  -    holds a sequence of extent-class elements.
  +    For interfaces or abstract classes a <i>class-descriptor</i> holds a sequence
  +    of <i>extent-class</i> elements which specify the types extending this
  +    class.
  +    <br/>
  +    Concrete base classes may specify a sequence of extent-class elements,
  +    naming the derived classes.
   </p><p>
  -	For concrete classes it must have <code>field-descriptors</code> that
  +    For concrete classes it must have <i>field-descriptor</i>s that
       describe primitive typed instance variables.
  -	References to other persistent entity classes are specified by
  -	<code>reference-descriptor</code> elements.
  -	Collections or arrays attributes that contain other persistent entity
  -	classes are specified by <code>collection-descriptor</code> elements
  -	<br/>
  -	Concrete base classes, may specify a sequence of extent-class elements,
  -	naming the derived classes.
  -	<br/>
  -	A class-descriptor may contain user defined custom attribute elements.
  -</p>
  -<source><![CDATA[
  -<!ELEMENT class-descriptor
  -	((documentation?, extent-class+, attribute*) |
  -	(documentation?, extent-class*, field-descriptor+,
  -	 reference-descriptor*, collection-descriptor*, attribute*))>
  +    References to other persistent entity classes are specified by
  +    <i>reference-descriptor</i> elements.
  +    Collections or arrays attributes that contain other persistent entity
  +    classes are specified by <i>collection-descriptor</i> elements
  +    <br/>
  +    A class-descriptor may contain user defined custom attribute elements.
  +</p>
  +<source><![CDATA[
  +<!ELEMENT class-descriptor (
  +    (
  +        documentation?,
  +        extent-class+,
  +        attribute* ) |
  +    (
  +        documentation?,
  +        object-cache?,
  +        extent-class*,
  +        field-descriptor+,
  +        reference-descriptor*,
  +        collection-descriptor*,
  +        index-descriptor*,
  +        attribute*,
  +        insert-procedure?,
  +        update-procedure?,
  +        delete-procedure? )
  +    )
  +>
   ]]></source>
   
   <p>
  -	The class attribute contains the full qualified name of the
  -    specified class. As this attribute is of type ID there can
  -    only be one class-descriptor per class.
  -</p><p>
  -	The isolation-level attribute specifies the transactional
  -    isolation to be used for this class on ODMG-level (does not
  -    touch the jdbc-connection isolation level).
  -</p><p>
  -	If the proxy attribute is set, proxies are used for all loading
  -    operations of instances of this class. If set to "dynamic", dynamic
  -    proxies are used. If set to another value this value is interpreted
  -    as the full-qualified name of the proxy class to use.
  -</p><p>
  -    The proxy-prefetch-limit attribute specifies a limit to the number of
  -    elements loaded on a proxied reference. When the first proxied
  -    element is loaded, a number up to the proxy-prefetch-limit will
  -    be loaded in addition.
  -</p><p>
  -	The schema attribute may contain the database schema owning the table
  -	mapped to this class.
  -</p><p>
  -	The table attribute speciefies the table name this class is mapped to.
  -</p><p>
  -	The row-reader attribute may contain a full qualified class name.
  -	This class will be used as the RowReader implementation used to
  -	materialize instances of the persistent class.
  -</p><p>
  -	The accept-locks attribute specifies whether implicit locking should
  -	propagate to this class.  Currently relevant for the ODMG layer only.
  -</p><p>
  -	The optional initialization-method specifies a no-argument instance
  -	method that is invoked after reading an instnace from a database row.
  -	It can be used to do initialization and validations.
  -</p><p>
  -	The optional factory-class specifies a factory-class that
  -	that is to be used instead of a no argument constructor.
  -	If the factory-class is specified the factory-method
  -	also must be defined.
  -	factory-method refers to a static no-argument method
  -	of the factory-class class.
  -</p><p>
  -	The refresh attribute can be set to true to force OJB to refresh
  -	instances when loaded from cache. It's set to false by default.
  +    The <a name="class-descriptor.class"><code>class</code></a> attribute
  +    contains the full qualified name of the specified class. As this
  +    attribute is of the XML type ID there can only be one <i>class-descriptor</i>
  +    per class.
  +</p><p>
  +    The <a name="class-descriptor.isolation-level"><code>isolation-level</code></a>
  +    attribute specifies the transactional isolation to be used for this
  +    class on ODMG-level (does not touch the jdbc-connection isolation level).
  +</p><p>
  +    If the <a name="class-descriptor.proxy"><code>proxy</code></a> attribute
  +    is set, proxies are used for all loading operations of instances of this
  +    class. If set to <code>dynamic</code>, dynamic proxies are used.
  +    If set to another value this value is interpreted as the full-qualified
  +    name of the proxy class to use.
  +</p><p>
  +    The <a name="class-descriptor.proxy-prefetching-limit"><code>proxy-prefetching-limit</code></a>
  +    attribute specifies a limit to the number of elements loaded on a proxied
  +    reference. When the first proxied element is loaded, a number up to the
  +    proxy-prefetch-limit will be loaded in addition.
  +</p><p>
  +    The <a name="class-descriptor.schema"><code>schema</code></a> attribute
  +    may contain the database schema owning the table mapped to this class.
  +</p><p>
  +    The <a name="class-descriptor.table"><code>table</code></a> attribute
  +    speciefies the table name this class is mapped to.
  +</p><p>
  +    The <a name="class-descriptor.row-reader"><code>row-reader</code></a>
  +    attribute may contain a full qualified class name. This class will be
  +    used as the <code>RowReader</code> implementation used to materialize
  +    instances of the persistent class.
  +</p><p>
  +    The <a name="class-descriptor.accept-locks"><code>accept-locks</code></a>
  +    attribute specifies whether implicit locking should propagate to this class.
  +    Currently relevant for the ODMG layer only.
  +</p><p>
  +    The optional <a name="class-descriptor.initialization-method"><code>initialization-method</code></a>
  +    specifies a no-argument instance method that is invoked after reading
  +    an instance from a database row. It can be used to do initialization
  +    and validations.
  +</p><p>
  +    The optional <a name="class-descriptor.factory-class"><code>factory-class</code></a>
  +    specifies a factory class that that is to be used instead of a no
  +    argument constructor when new objects are created. If the factory class is
  +    specified, then the <a name="class-descriptor.factory-method"><code>factory-method</code></a>
  +    also must be defined. It refers to a static no-argument method of the factory
  +    class that returns a new instance.
  +</p><p>
  +    The <a name="class-descriptor.refresh"><code>refresh</code></a> attribute
  +    can be set to <code>true</code> to force OJB to refresh
  +    instances when loaded from cache. It's set to <code>false</code> by default.
   </p>
   <source><![CDATA[
   <!ATTLIST class-descriptor
  -	class ID #REQUIRED
  -	isolation-level (read-uncommitted | read-committed |
  +    class ID #REQUIRED
  +    isolation-level (read-uncommitted | read-committed |
           repeatable-read | serializable | optimistic) "read-uncommitted"
  -	proxy CDATA #IMPLIED
  -	proxy-prefetching-limit CDATA #IMPLIED
  -	schema CDATA #IMPLIED
  -	table CDATA #IMPLIED
  -	row-reader CDATA #IMPLIED
  +    proxy CDATA #IMPLIED
  +    proxy-prefetching-limit CDATA #IMPLIED
  +    schema CDATA #IMPLIED
  +    table CDATA #IMPLIED
  +    row-reader CDATA #IMPLIED
       extends IDREF #IMPLIED
  -	accept-locks (true | false) "true"
  -	initialization-method CDATA #IMPLIED
  -	factory-class CDATA #IMPLIED
  -	factory-method CDATA #IMPLIED
  -	refresh (true | false) "false"
  +    accept-locks (true | false) "true"
  +    initialization-method CDATA #IMPLIED
  +    factory-class CDATA #IMPLIED
  +    factory-method CDATA #IMPLIED
  +    refresh (true | false) "false"
   >
   ]]></source>
   
   </subsection>
   <subsection name="extent-class">
   <p>
  -	An extent-class element is used to specify an implementing class or a
  -	derived class that belongs to the extent of all instances of the
  +    An extent-class element is used to specify an implementing class or a
  +    derived class that belongs to the extent of all instances of the
       interface or base class.
   </p>
   <source><![CDATA[
  @@ -536,19 +566,16 @@
   ]]></source>
   
   <p>
  -	The class-ref attribute must contain a fully qualified classname.
  -	The repository file must contain a class-descriptor for this class.
  +    The class-ref attribute must contain a fully qualified classname.
  +    The repository file must contain a class-descriptor for this class.
   </p>
   <source><![CDATA[
   <!ATTLIST extent-class
  -	class-ref IDREF #REQUIRED
  +    class-ref IDREF #REQUIRED
   >
   ]]></source>
  -
   </subsection>
  -
  -
  -
  +<p/>
   <subsection name="field-descriptor">
   <p>
       A field descriptor contains mapping info for a primitive typed
  @@ -561,41 +588,41 @@
   ]]></source>
   
   <p>
  -	<b>The id attribute is optional.</b> If not specified, OJB internally
  -	sorts field-descriptors according to their order of appearance in the
  -	repository file.<br/>
  -	If a different sort order is intended the id attribute may be used to
  -	hold a unique number identifying the decriptors position in the sequence of
  -	field-descriptors.<br/>
  -	The order of the numbers for the field-descriptors must correspond to
  -	the order of columns in the mapped table.
  -</p><p>
  -	The name attribute holds the name of the persistent classes attribute.
  -	If the PersistentFieldDirectAccessImpl is used there must be an attribute
  -	in the persistent class with this name.
  -	If the PersistentFieldIntrospectorImpl is used there must be a JavaBeans
  -	compliant property of this name.
  +    <b>The id attribute is optional.</b> If not specified, OJB internally
  +    sorts field-descriptors according to their order of appearance in the
  +    repository file.<br/>
  +    If a different sort order is intended the id attribute may be used to
  +    hold a unique number identifying the decriptors position in the sequence of
  +    field-descriptors.<br/>
  +    The order of the numbers for the field-descriptors must correspond to
  +    the order of columns in the mapped table.
  +</p><p>
  +    The name attribute holds the name of the persistent classes attribute.
  +    If the PersistentFieldDirectAccessImpl is used there must be an attribute
  +    in the persistent class with this name.
  +    If the PersistentFieldIntrospectorImpl is used there must be a JavaBeans
  +    compliant property of this name.
       More info see javdoc of the PersistentField implementation classes
       in ...broker.metadata.fieldaccess package.
   </p><p>
  -	The table attribute may specify a table different from the mapped
  -	table for the persistent class. (currently not implemented).
  +    The table attribute may specify a table different from the mapped
  +    table for the persistent class. (currently not implemented).
   </p><p>
  -	The column attribute specifies the column the persistent classes field
  -	is mapped to.
  +    The column attribute specifies the column the persistent classes field
  +    is mapped to.
   </p><p>
  -	The optional jdbc-type attribute specifies the JDBC type of the column.
  -	If not specified OJB tries to identify the JDBC type by inspecting the
  -	Java attribute by reflection.
  +    The optional jdbc-type attribute specifies the JDBC type of the column.
  +    If not specified OJB tries to identify the JDBC type by inspecting the
  +    Java attribute by reflection.
   </p><p>
  -	The primarykey specifies if the column is a primary key column.
  +    The primarykey specifies if the column is a primary key column.
   </p><p>
  -	The nullable attribute specifies if the column may contain null values.
  +    The nullable attribute specifies if the column may contain null values.
   </p><p>
  -	The indexed attribute specifies if there is an index on this column
  +    The indexed attribute specifies if there is an index on this column
   </p><p>
  -	The autoincrement attribute specifies if the values for the persistent
  -	attribute are automatically generated by OJB.
  +    The autoincrement attribute specifies if the values for the persistent
  +    attribute are automatically generated by OJB.
   </p><p>
       The sequence-name attribute can be used to state explicitly a sequence
       name used by the sequence manager implementations. Check the docs/javadocs
  @@ -603,70 +630,69 @@
       is a mandatory attribute. OJB standard sequence manager implementations
       build a sequence name by its own, if the attribute was not set.
   </p><p>
  -	The locking attribute is set to true if the persistent attribute is
  -	used for optimistic locking. can only be set for TIMESTAMP and INTEGER
  -	columns.
  +    The locking attribute is set to true if the persistent attribute is
  +    used for optimistic locking. can only be set for TIMESTAMP and INTEGER
  +    columns.
   </p><p>
       The updatelock attribute is set to false if the persistent attribute is
  -	used for optimistic locking AND the dbms should update the lock column
  +    used for optimistic locking AND the dbms should update the lock column
       itself. The default is true which means that when locking is true then
       OJB will update the locking fields. Can only be set for TIMESTAMP and INTEGER
  -	columns.
  +    columns.
   </p><p>
  -	The default-fetch attribute specifies whether the persistent attribute
  -	belongs to the JDO default fetch group.
  +    The default-fetch attribute specifies whether the persistent attribute
  +    belongs to the JDO default fetch group.
   </p><p>
  -	The conversion attribute contains a fully qualified class name.
  -	This class must implement the interface
  -	org.apache.ojb.accesslayer.conversions.FieldConversion.
  -	A FieldConversion can be used to implement conversions between Java-
  -	attributes and database columns.
  -</p><p>
  -	The length attribute can be used to specify a length setting, if
  -	required by the jdbc-type of the underlying database column.
  -</p><p>
  -	The precision attribute can be used to specify a precision setting, if
  -	required by the jdbc-type of the underlying database column.
  -</p><p>
  -	The scale attribute can be used to specify a sclae setting, if
  -	required by the jdbc-type of the underlying database column.
  -</p><p>
  -	The access attribute specifies the accessibility of the field.
  -	"readonly" marks fields that are not to modified. "readwrite" marks
  -	fields that may be read and written to. "anonymous" marks anonymous fields.
  -	An anonymous field has a database representation (column) but no
  -	corresponding Java attribute. Hence the name of such a field does not
  -	refer to a Java attribute of the class, but is used as a unique
  -	identifier only.
  +    The conversion attribute contains a fully qualified class name.
  +    This class must implement the interface
  +    org.apache.ojb.accesslayer.conversions.FieldConversion.
  +    A FieldConversion can be used to implement conversions between Java-
  +    attributes and database columns.
  +</p><p>
  +    The length attribute can be used to specify a length setting, if
  +    required by the jdbc-type of the underlying database column.
  +</p><p>
  +    The precision attribute can be used to specify a precision setting, if
  +    required by the jdbc-type of the underlying database column.
  +</p><p>
  +    The scale attribute can be used to specify a sclae setting, if
  +    required by the jdbc-type of the underlying database column.
  +</p><p>
  +    The access attribute specifies the accessibility of the field.
  +    "readonly" marks fields that are not to modified. "readwrite" marks
  +    fields that may be read and written to. "anonymous" marks anonymous fields.
  +    An anonymous field has a database representation (column) but no
  +    corresponding Java attribute. Hence the name of such a field does not
  +    refer to a Java attribute of the class, but is used as a unique
  +    identifier only.
   </p>
   <source><![CDATA[
   <!ATTLIST field-descriptor
  -	id CDATA #IMPLIED
  -	name CDATA #REQUIRED
  -	table CDATA #IMPLIED
  -	column CDATA #REQUIRED
  -	jdbc-type (BIT | TINYINT | SMALLINT | INTEGER | BIGINT | DOUBLE |
  -	           FLOAT | REAL | NUMERIC | DECIMAL | CHAR | VARCHAR |
  -	           LONGVARCHAR | DATE | TIME | TIMESTAMP | BINARY |
  -	           VARBINARY | LONGVARBINARY | CLOB | BLOB) #REQUIRED
  -	primarykey (true | false) "false"
  -	nullable (true | false) "true"
  -	indexed (true | false) "false"
  -	autoincrement (true | false) "false"
  +    id CDATA #IMPLIED
  +    name CDATA #REQUIRED
  +    table CDATA #IMPLIED
  +    column CDATA #REQUIRED
  +    jdbc-type (BIT | TINYINT | SMALLINT | INTEGER | BIGINT | DOUBLE |
  +               FLOAT | REAL | NUMERIC | DECIMAL | CHAR | VARCHAR |
  +               LONGVARCHAR | DATE | TIME | TIMESTAMP | BINARY |
  +               VARBINARY | LONGVARBINARY | CLOB | BLOB) #REQUIRED
  +    primarykey (true | false) "false"
  +    nullable (true | false) "true"
  +    indexed (true | false) "false"
  +    autoincrement (true | false) "false"
       sequence-name CDATA #IMPLIED
  -	locking (true | false) "false"
  +    locking (true | false) "false"
       update-lock (true | false) "true"
  -	default-fetch (true | false) "false"
  -	conversion CDATA #IMPLIED
  -	length CDATA #IMPLIED
  -	precision CDATA #IMPLIED
  -	scale CDATA #IMPLIED
  -	access (readonly | readwrite | anonymous) "readwrite"
  +    default-fetch (true | false) "false"
  +    conversion CDATA #IMPLIED
  +    length CDATA #IMPLIED
  +    precision CDATA #IMPLIED
  +    scale CDATA #IMPLIED
  +    access (readonly | readwrite | anonymous) "readwrite"
   >
   ]]></source>
  -
   </subsection>
  -
  +<p/>
   <subsection name="reference-descriptor">
   <p>
       A reference-descriptor contains mapping info for an attribute of a
  @@ -681,21 +707,21 @@
   ]]></source>
   
   <p>
  -	The name attribute holds the name of the persistent classes attribute.
  -	If the PersistentFieldDefaultImpl is used there must be an attribute
  -	in the persistent class with this name.
  -	If the PersistentFieldPropertyImpl is used there must be a JavaBeans
  -	compliant property of this name.
  +    The name attribute holds the name of the persistent classes attribute.
  +    If the PersistentFieldDefaultImpl is used there must be an attribute
  +    in the persistent class with this name.
  +    If the PersistentFieldPropertyImpl is used there must be a JavaBeans
  +    compliant property of this name.
   </p>
   <p>
  -	The class-ref attribute contains a fully qualified class name.
  -	This class is the Object type of the persistent reference attribute.
  -	As this is an IDREF there must be a class-descriptor for this class
  -	in the repository too.
  +    The class-ref attribute contains a fully qualified class name.
  +    This class is the Object type of the persistent reference attribute.
  +    As this is an IDREF there must be a class-descriptor for this class
  +    in the repository too.
   </p>
   <p>
  -	The proxy attribute can be set to true to specify that proxy based
  -	lazy loading should be used for this attribute.
  +    The proxy attribute can be set to true to specify that proxy based
  +    lazy loading should be used for this attribute.
   </p>
   <p>
       The proxy-prefetch-limit attribute specifies a limit to the number of
  @@ -704,24 +730,24 @@
       be loaded in addition.
   </p>
   <p>
  -	The refresh attribute can be set to true to force OJB to refresh
  -	object references on instance loading.
  +    The refresh attribute can be set to true to force OJB to refresh
  +    object references on instance loading.
   </p>
   <p>
  -	The auto-retrieve attribute specifies whether OJB automatically retrieves
  -	this reference attribute on loading the persistent object.
  -	If set to false the reference attribute is set to null. In this case the
  -	user is responsible to fill the reference attribute.
  +    The auto-retrieve attribute specifies whether OJB automatically retrieves
  +    this reference attribute on loading the persistent object.
  +    If set to false the reference attribute is set to null. In this case the
  +    user is responsible to fill the reference attribute.
   </p>
    <p>
  -	The auto-update attribute specifies whether OJB automatically stores
  -	this reference attribute on storing the persistent object.
  -	This attribute must be set to false if using the OTM, ODMG or JDO layer.
  +    The auto-update attribute specifies whether OJB automatically stores
  +    this reference attribute on storing the persistent object.
  +    This attribute must be set to false if using the OTM, ODMG or JDO layer.
   </p>
   <p>
  -	The auto-delete attribute specifies whether OJB automatically deletes
  -	this reference attribute on deleting the persistent object.
  -	This attribute must be set to false if using the OTM, ODMG or JDO layer.
  +    The auto-delete attribute specifies whether OJB automatically deletes
  +    this reference attribute on deleting the persistent object.
  +    This attribute must be set to false if using the OTM, ODMG or JDO layer.
   </p>
   <p>
       The otm-dependent attribute specifies whether the OTM layer automatically
  @@ -745,8 +771,8 @@
       otm-dependent (true | false) "false"
   >
   ]]></source>
  -
   </subsection>
  +<p/>
   <subsection name="foreignkey">
   <p>
       A foreignkey element contains information on a foreign-key persistent
  @@ -759,17 +785,17 @@
   <p>
       The field-ref and field-id-ref attributes contain
       the name and the id attributes of the field-descriptor
  -	used as a foreign key.
  +    used as a foreign key.
       Exactly one of these attributes must be specified.
   </p>
   <source><![CDATA[
   <!ATTLIST foreignkey
  -	field-id-ref CDATA #IMPLIED
  -	field-ref CDATA #IMPLIED
  +    field-id-ref CDATA #IMPLIED
  +    field-ref CDATA #IMPLIED
   >
   ]]></source>
  -
   </subsection>
  +<p/>
   <subsection name="collection-descriptor">
   <p>
       A collection-descriptor contains mapping info for a Collection- or
  @@ -789,60 +815,60 @@
       documentation?,
       orderby*,
       inverse-foreignkey*,
  -	fk-pointing-to-this-class*,
  -	fk-pointing-to-element-class*,
  -	attribute*)>
  +    fk-pointing-to-this-class*,
  +    fk-pointing-to-element-class*,
  +    attribute*)>
   ]]></source>
   
   <p>
  -	The name attribute holds the name of the persistent classes attribute.
  -	If the PersistentFieldDefaultImpl is used there must be an attribute
  -	in the persistent class with this name.
  -	If the PersistentFieldPropertyImpl is used there must be a JavaBeans
  -	compliant property of this name.
  -</p><p>
  -	The collection-class may hold a fully qualified class name.
  -	This class must be the Java type of the Collection attribute.
  -	This attribute must only specified if the attribute type is not
  -	a java.util.Collection (or subclass) or Array type.
  -</p><p>
  -	The element-class-ref attribute contains a fully qualified class name.
  -	This class is the Object type of the elements of persistent collection
  -	or Array attribute.
  -	As this is an IDREF there must be a class-descriptor for this class
  -	in the repository too.
  -</p><p>
  -	The orderby attribute may specify a field of the element class.
  -	The Collection or Array will be sorted according to the specified attribute.
  -	The sort attribute may be used to specify ascending or descending order for
  -	this operation.
  +    The name attribute holds the name of the persistent classes attribute.
  +    If the PersistentFieldDefaultImpl is used there must be an attribute
  +    in the persistent class with this name.
  +    If the PersistentFieldPropertyImpl is used there must be a JavaBeans
  +    compliant property of this name.
  +</p><p>
  +    The collection-class may hold a fully qualified class name.
  +    This class must be the Java type of the Collection attribute.
  +    This attribute must only specified if the attribute type is not
  +    a java.util.Collection (or subclass) or Array type.
  +</p><p>
  +    The element-class-ref attribute contains a fully qualified class name.
  +    This class is the Object type of the elements of persistent collection
  +    or Array attribute.
  +    As this is an IDREF there must be a class-descriptor for this class
  +    in the repository too.
  +</p><p>
  +    The orderby attribute may specify a field of the element class.
  +    The Collection or Array will be sorted according to the specified attribute.
  +    The sort attribute may be used to specify ascending or descending order for
  +    this operation.
   </p><p>
  -	The indirection-table must specify the name of an intermediary table,
  -	if the persistent collection attribute implements a m:n association.
  +    The indirection-table must specify the name of an intermediary table,
  +    if the persistent collection attribute implements a m:n association.
   </p><p>
  -	The proxy attribute can be set to true to specify that proxy based
  -	lazy loading should be used for this attribute.
  +    The proxy attribute can be set to true to specify that proxy based
  +    lazy loading should be used for this attribute.
   </p><p>
       The proxy-prefetch-limit attribute specifies a limit to the number of
       elements loaded on a proxied reference. When the first proxied
       element is loaded, a number up to the proxy-prefetch-limit will
       be loaded in addition.
   </p><p>
  -	The refresh attribute can be set to true to force OJB to refresh
  -	object and collection references on instance loading.
  +    The refresh attribute can be set to true to force OJB to refresh
  +    object and collection references on instance loading.
   </p><p>
  -	The auto-retrieve attribute specifies whether OJB automatically retrieves
  -	this attribute on loading the persistent object.
  -	If set to false the persistent attribute is set to null. In this case the
  -	user is responsible to fill the persistent attribute.
  -</p><p>
  -	The auto-update attribute specifies whether OJB automatically stores
  -	this reference attribute on storing the persistent object.
  -	This attribute must be set to false if using the OTM, ODMG or JDO layer.
  -</p><p>
  -	The auto-delete attribute specifies whether OJB automatically deletes
  -	this reference attribute on deleting the persistent object.
  -	This attribute must be set to false if using the OTM, ODMG or JDO layer.
  +    The auto-retrieve attribute specifies whether OJB automatically retrieves
  +    this attribute on loading the persistent object.
  +    If set to false the persistent attribute is set to null. In this case the
  +    user is responsible to fill the persistent attribute.
  +</p><p>
  +    The auto-update attribute specifies whether OJB automatically stores
  +    this reference attribute on storing the persistent object.
  +    This attribute must be set to false if using the OTM, ODMG or JDO layer.
  +</p><p>
  +    The auto-delete attribute specifies whether OJB automatically deletes
  +    this reference attribute on deleting the persistent object.
  +    This attribute must be set to false if using the OTM, ODMG or JDO layer.
   </p>
   <p>
       The otm-dependent attribute specifies whether the OTM layer automatically
  @@ -854,26 +880,26 @@
   </p>
   <source><![CDATA[
   <!ATTLIST collection-descriptor
  -	name CDATA #IMPLIED
  -	collection-class CDATA #IMPLIED
  -	element-class-ref IDREF #REQUIRED
  -	orderby CDATA #IMPLIED
  -	sort (ASC | DESC) "ASC"
  -
  -	indirection-table CDATA #IMPLIED
  -
  -	proxy (true | false) "false"
  -	proxy-prefetching-limit CDATA #IMPLIED
  -	refresh (true | false) "false"
  -
  -	auto-retrieve (true | false) "true"
  -	auto-update (true | false) "false"
  -	auto-delete (true | false) "false"
  +    name CDATA #IMPLIED
  +    collection-class CDATA #IMPLIED
  +    element-class-ref IDREF #REQUIRED
  +    orderby CDATA #IMPLIED
  +    sort (ASC | DESC) "ASC"
  +
  +    indirection-table CDATA #IMPLIED
  +
  +    proxy (true | false) "false"
  +    proxy-prefetching-limit CDATA #IMPLIED
  +    refresh (true | false) "false"
  +
  +    auto-retrieve (true | false) "true"
  +    auto-update (true | false) "false"
  +    auto-delete (true | false) "false"
       otm-dependent (true | false) "false"
   >
   ]]></source>
  -
   </subsection>
  +<p/>
   <subsection name="inverse-foreignkey">
   <p>
       A inverse-foreignkey element contains information on a foreign-key
  @@ -886,17 +912,17 @@
   <p>
       The field-ref and field-id-ref attributes contain
       the name and the id attributes of the field-descriptor
  -	used as a foreign key.
  +    used as a foreign key.
       Exactly one of these attributes must be specified.
   </p>
   <source><![CDATA[
   <!ATTLIST inverse-foreignkey
  -	field-id-ref CDATA #IMPLIED
  -	field-ref CDATA #IMPLIED
  +    field-id-ref CDATA #IMPLIED
  +    field-ref CDATA #IMPLIED
   >
   ]]></source>
  -
   </subsection>
  +<p/>
   <subsection name="fk-pointing-to-this-class">
   <p>
       A fk-pointing-to-this-class element contains information on a foreign-key
  @@ -907,15 +933,15 @@
   ]]></source>
   
   <p>
  -	The column attribute specifies the foreign-key column in the intermediary
  -	table that points to the class holding the collection.
  +    The column attribute specifies the foreign-key column in the intermediary
  +    table that points to the class holding the collection.
   </p>
   <source><![CDATA[
   <!ATTLIST fk-pointing-to-this-class
  -	column CDATA #REQUIRED
  +    column CDATA #REQUIRED
   >]]></source>
  -
   </subsection>
  +<p/>
   <subsection name="fk-pointing-to-element-class">
   <p>
       A fk-pointing-to-element-class element contains information on a foreign-key
  @@ -926,28 +952,30 @@
   ]]></source>
   
   <p>
  -	The column attribute specifies the foreign-key column in the intermediary
  -	table that points to the class of the collection elements.
  +    The column attribute specifies the foreign-key column in the intermediary
  +    table that points to the class of the collection elements.
   </p>
   <source><![CDATA[
   <!ATTLIST fk-pointing-to-element-class
  -	column CDATA #REQUIRED
  +    column CDATA #REQUIRED
   >
   ]]></source>
   </subsection>
  +<p/>
   <subsection name="query-customizer">
   <p>
  -	a queryEnhancer element to enhance the 1:n query
  +    a queryEnhancer element to enhance the 1:n query
   </p>
   <source><![CDATA[
   <!ELEMENT query-customizer (
  -	documentation?,
  -	attribute*)>
  +    documentation?,
  +    attribute*)>
   <!ATTLIST query-customizer
  -	class CDATA #REQUIRED
  +    class CDATA #REQUIRED
   >
   ]]></source>
   </subsection>
  +<p/>
   <subsection name="index-descriptor">
   <p>
       An index-descriptor describes an index by listing its columns.  It may be
  @@ -960,6 +988,7 @@
       unique (true | false) "false">
   ]]></source>
   </subsection>
  +<p/>
   <subsection name="index-column">
   <p>
       An index-column is just the name of a column in an index.
  @@ -970,9 +999,10 @@
       name CDATA #REQUIRED>
   ]]></source>
   </subsection>
  +<p/>
   <subsection name="insert-procedure">
   <p>
  -	Identifies the procedure/function that should be used to handle
  +    Identifies the procedure/function that should be used to handle
       insertions for a specific class-descriptor.
   </p>
   <p>
  @@ -981,7 +1011,7 @@
   </p>
   <source><![CDATA[
   <!ELEMENT insert-procedure
  -	(documentation?, (runtime-argument | constant-argument)?, attribute*)>
  +    (documentation?, (runtime-argument | constant-argument)?, attribute*)>
   ]]></source>
   <p>
       The name attribute identifies the name of the procedure/function to use
  @@ -1003,15 +1033,16 @@
   </p>
   <source><![CDATA[
   <!ATTLIST insert-procedure
  -	name CDATA #REQUIRED
  +    name CDATA #REQUIRED
       return-field-ref CDATA #IMPLIED
       include-all-fields (true | false) "false"
   >
   ]]></source>
   </subsection>
  +<p/>
   <subsection name="update-procedure">
   <p>
  -	Identifies the procedure/function that should be used to handle
  +    Identifies the procedure/function that should be used to handle
       updates for a specific class-descriptor.
   </p><p>
       The nested 'argument' elements define the argument list for the
  @@ -1019,7 +1050,7 @@
   </p>
   <source><![CDATA[
   <!ELEMENT update-procedure
  -	(documentation?, (runtime-argument | constant-argument)?, attribute*)>
  +    (documentation?, (runtime-argument | constant-argument)?, attribute*)>
   ]]></source>
   <p>
       The name attribute identifies the name of the procedure/function to use
  @@ -1041,15 +1072,16 @@
   </p>
   <source><![CDATA[
   <!ATTLIST update-procedure
  -	name CDATA #REQUIRED
  +    name CDATA #REQUIRED
       return-field-ref CDATA #IMPLIED
       include-all-fields (true | false) "false"
   >
   ]]></source>
   </subsection>
  +<p/>
   <subsection name="delete-procedure">
   <p>
  -	Identifies the procedure/function that should be used to handle
  +    Identifies the procedure/function that should be used to handle
       deletions for a specific class-descriptor.
   </p><p>
       The nested 'runtime-argument' and 'constant-argument' elements define
  @@ -1058,7 +1090,7 @@
   </p>
   <source><![CDATA[
   <!ELEMENT delete-procedure
  -	(documentation?, (runtime-argument | constant-argument)?, attribute*)>
  +    (documentation?, (runtime-argument | constant-argument)?, attribute*)>
   ]]></source>
   <p>
       The name attribute identifies the name of the procedure/function to use
  @@ -1081,13 +1113,13 @@
   </p>
   <source><![CDATA[
   <!ATTLIST delete-procedure
  -	name CDATA #REQUIRED
  +    name CDATA #REQUIRED
       return-field-ref CDATA #IMPLIED
       include-pk-only (true | false) "false"
   >
   ]]></source>
  -
   </subsection>
  +<p/>
   <subsection name="runtime-argument">
   <p>
       Defines an argument that is passed to a procedure/function.  Each argument
  @@ -1095,7 +1127,7 @@
   </p>
   <source><![CDATA[
   <!ELEMENT runtime-argument
  -	(documentation?, attribute*)>
  +    (documentation?, attribute*)>
   ]]></source>
   <p>
       The field-ref attribute identifies the field-descriptor in the corresponding
  @@ -1104,18 +1136,19 @@
   </p>
   <source><![CDATA[
   <!ATTLIST runtime-argument
  -	field-ref CDATA #IMPLIED
  +    field-ref CDATA #IMPLIED
       return (true | false) "false"
   >
   ]]></source>
   </subsection>
  +<p/>
   <subsection name="runtime-argument">
   <p>
       Defines a constant value that is passed to a procedure/function.
   </p>
   <source><![CDATA[
   <!ELEMENT constant-argument
  -	(documentation?, attribute*)>
  +    (documentation?, attribute*)>
   ]]></source>
   <p>
       The value attribute identifies the value that is passed to the procedure/
  @@ -1127,9 +1160,8 @@
   >
   ]]></source>
   </subsection>
  -
   </section>
  -
  +<p/>
   <section name="the repository verifier">
   
   author:     <a href="mailto:daren@softwarearena.com">Daren Drummond</a>
  @@ -1195,13 +1227,13 @@
    </ol>
   
    <p>
  - 	The VerifyMappingTask is integrated into the OJB <code>build.xml</code>
  - 	file. You can invoke it manually by <code>build[.sh] verify</code>.
  - 	<br/>
  - 	On executing the junit regression tests by <code>build[.sh] junit</code>
  - 	the verify target is invoked implicitely.
  - 	It is invoked after compiling all code and setting up the testdatabase
  - 	 to verify correctness of the mapping file before running the test cases.
  +     The VerifyMappingTask is integrated into the OJB <code>build.xml</code>
  +     file. You can invoke it manually by <code>build[.sh] verify</code>.
  +     <br/>
  +     On executing the junit regression tests by <code>build[.sh] junit</code>
  +     the verify target is invoked implicitely.
  +     It is invoked after compiling all code and setting up the testdatabase
  +      to verify correctness of the mapping file before running the test cases.
    </p>
   
   </subsection>
  @@ -1296,14 +1328,14 @@
   <source><![CDATA[
   <!-- Define the classpath for the build -->
       <path id="runtime-classpath">
  -    	<path refid="compilation-classpath"/>
  +        <path refid="compilation-classpath"/>
           <pathelement path="${build.dir}/test/ojb"/>
       </path>
   
   <!-- Access the classpath as a property -->
       <property
  -    	name="runtime.classpath"
  -    	refid="runtime-classpath"
  +        name="runtime.classpath"
  +        refid="runtime-classpath"
       />
   
   <!-- Define the custom task -->
  @@ -1317,24 +1349,24 @@
       </target>
   
   <!-- set the verification options -->
  -	<target name="verify"
  -	        depends="declare"
  -	        description="Verifies the ojb mapping file."
  -	>
  -    	<verifymappings
  -    		propertiesFile="${build.dir}/test/ojb/OJB.properties"
  -        	repositoryFile="${build.dir}/test/ojb/repository.xml"
  -        	jdbcDriver="org.hsqldb.jdbcDriver"
  -        	url="jdbc:hsqldb:target/test/OJB"
  -        	logon="sa"
  -        	password=""
  -        	ignoreFieldNameCase="true"
  -        	useStrictTypeChecking="false"
  -        	verifyclasspath="${runtime.classpath}"
  -        	useXMLValidation="true"
  -        	failonerror="true"
  +    <target name="verify"
  +            depends="declare"
  +            description="Verifies the ojb mapping file."
  +    >
  +        <verifymappings
  +            propertiesFile="${build.dir}/test/ojb/OJB.properties"
  +            repositoryFile="${build.dir}/test/ojb/repository.xml"
  +            jdbcDriver="org.hsqldb.jdbcDriver"
  +            url="jdbc:hsqldb:target/test/OJB"
  +            logon="sa"
  +            password=""
  +            ignoreFieldNameCase="true"
  +            useStrictTypeChecking="false"
  +            verifyclasspath="${runtime.classpath}"
  +            useXMLValidation="true"
  +            failonerror="true"
           />
  -   	</target>
  +       </target>
   
   ]]></source>
   
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-dev-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-dev-help@db.apache.org