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 2005/10/03 14:20:15 UTC

cvs commit: db-ojb/src/test/org/apache/ojb repository.dtd

tomdz       2005/10/03 05:20:15

  Modified:    src/test/org/apache/ojb repository.dtd
  Log:
  Replaced tabs by spaces
  Unified indentation
  
  Revision  Changes    Path
  1.67      +721 -716  db-ojb/src/test/org/apache/ojb/repository.dtd
  
  Index: repository.dtd
  ===================================================================
  RCS file: /home/cvs/db-ojb/src/test/org/apache/ojb/repository.dtd,v
  retrieving revision 1.66
  retrieving revision 1.67
  diff -u -r1.66 -r1.67
  --- repository.dtd	1 Oct 2005 13:50:34 -0000	1.66
  +++ repository.dtd	3 Oct 2005 12:20:15 -0000	1.67
  @@ -16,450 +16,449 @@
   # */
   -->
   <!--
  -	ObJectRelationalBridge - Bridging Java objects and relational dabatases
  -	This DTD describes the grammar of the Descriptor repository
  -	Author: Thomas Mahler, (c) 2000-2005
  +  ObJectRelationalBridge - Bridging Java objects and relational dabatases
  +  This DTD describes the grammar of the Descriptor repository
  +  Author: Thomas Mahler, (c) 2000-2005
     -->
   
   <!--
  -	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 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 attribute element allows to add custom attributes.
  +  The attribute element allows to add custom attributes.
   
  -    The jdbc-connection-descriptor element specifies the default jdbc
  -	connection for the repository.
  +  The jdbc-connection-descriptor element specifies the default and optional
  +  jdbc connections for the repository.
   
  -	class-descriptor elements specify o/r mapping information for
  -	persistent classes.
  +  class-descriptor elements specify o/r mapping information for
  +  persistent classes.
     -->
   <!ELEMENT descriptor-repository (documentation?, attribute*,
           jdbc-connection-descriptor*, class-descriptor*)>
   
   <!--
  -	The version attribute is used to bind a repository.xml
  -    file to a given version of this dtd. This will help to
  -    avoid versions conflicts.
  -
  -    The isolation-level attribute defines the default locking isolation level used
  -    by OJB's pessimistic locking api. All jdbc-connection-descriptor or class-descriptor
  -    that do not define a specific isolation level will use this.
  -    Note: This does NOT touch the jdbc-level of the connection.
  +  The version attribute is used to bind a repository.xml
  +  file to a given version of this dtd. This will help to
  +  avoid versions conflicts.
  +  
  +  The isolation-level attribute defines the default locking isolation level used
  +  by OJB's pessimistic locking api. All jdbc-connection-descriptor or class-descriptor
  +  that do not define a specific isolation level will use this.
  +  Note: This does NOT touch the jdbc-level of the connection.
     -->
   <!ATTLIST descriptor-repository
  -	version (1.1) #REQUIRED
  -	isolation-level (read-uncommitted | read-committed | repeatable-read |
  -	                 serializable | optimistic | no-lock) "read-uncommitted"
  -	proxy-prefetching-limit CDATA "50"
  +  version (1.1) #REQUIRED
  +  isolation-level (read-uncommitted | read-committed | repeatable-read |
  +                   serializable | optimistic | no-lock) "read-uncommitted"
  +  proxy-prefetching-limit CDATA "50"
   >
   
   <!--
  -	The documentation element can be used to store arbitrary
  -	information on all repository entries.
  +  The documentation element can be used to store arbitrary
  +  information on all repository entries.
   -->
   <!ELEMENT documentation (#PCDATA)>
   
   <!--
  -	The attribute element allows to add custom attributes.
  +  The attribute element allows to add custom attributes.
   
  -    The jdbc-connection-descriptor element specifies the a jdbc
  -	connection for the repository.
  +  The jdbc-connection-descriptor element specifies the a jdbc
  +  connection for the repository.
   
  -    The object-cache element specifies the object-cache implementation
  -    class associated with this class.
  +  The object-cache element specifies the object-cache implementation
  +  class associated with this class.
   
  -	A connection-factory element may be used to define connection pool
  -	properties for the specified JDBC connection.
  +  A connection-factory element may be used to define connection pool
  +  properties for the specified JDBC connection.
   
  -    A sequence-manager element may be used to
  -    define which sequence manager implementation should be used within
  -    the defined connection.
  +  A sequence-manager element may be used to
  +  define which sequence manager implementation should be used within
  +  the defined connection.
     -->
   <!ELEMENT jdbc-connection-descriptor (documentation?, connection-factory?,
               batch?, object-cache?, sequence-manager?, attribute*)>
   
   <!--
  -    The jcdAlias attribute is a shortcut name for the defined connection
  -    descriptor. OJB use jcdAlias as key for the defined connections.
  -
  -    The default-connection 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.
  -
  -    The platform attribute is used to define the specific RDBMS
  -    Platform. This attribute corresponds to a
  -	org.apache.ojb.broker.platforms.PlatformXXXImpl class.
  -
  -	The jdbc-level attribute is used to specify the Jdbc compliance
  -	level of the used Jdbc driver.
  -
  -    The eager-release attribute was adopt to solve a problem occured when
  -    using OJB within JBoss (3.0 <= version < 3.2.2, seems to be fixed in jboss 3.2.2).
  -    Only use within JBoss.
  -
  -    The batch-mode attribute allow to enable JDBC connection batch support
  -    (if supported by used database), 'true' value allows to enable per-session
  -    batch mode, whereas 'false' prohibits it.
  -    PB.serviceConnectionManager.setBatchMode(...) method can be used
  -    to switch on/off batch modus, if batch-mode was enabled. On PB.close()
  -    OJB switch off batch modus, thus you have to do '...setBatchMode(true)' on each
  -    obtained PB instance.
  -
  -    The useAutoCommit attribute allow to set how OJB uses
  -    the autoCommit state of the used connections. The default mode
  -    was 1.
  -    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).
  -    1 - [default mode] set the connection's autoCommit state temporary to 'false' if needed
  -        (when using transaction) and restore the old state after use. In
  -        versions before OJB 1.0.4 the autoCommit state was explicit set 'true'
  -        when connection was created, now OJB expect that this was done by
  -        the jdbc-driver configuration. To enable old behavior set a custom attribute
  -        'initializationCheck' to 'true'.
  -    2 - this setting set autoCommit explicit 'false' when connection was created.
  -
  -    If the ignoreAutoCommitExceptions attribute is set 'true', all
  -    exceptions caused by setting autocommit state, will be ignored.
  -    Default mode 'false'.
  -
  -	If a jndi-datasource-name for JNDI based lookup of Jdbc
  -    connections is specified, the four attributes driver, protocol,
  -    subprotocol, dbalias used for Jdbc DriverManager based construction
  -    of Jdbc Connections must not be declared.
  -
  -    The username and password 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
  +  The jcdAlias attribute is a shortcut name for the defined connection
  +  descriptor. OJB use jcdAlias as key for the defined connections.
  +  
  +  The default-connection 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.
  +  
  +  The platform attribute is used to define the specific RDBMS
  +  Platform. This attribute corresponds to a
  +  org.apache.ojb.broker.platforms.PlatformXXXImpl class.
  +
  +  The jdbc-level attribute is used to specify the Jdbc compliance
  +  level of the used Jdbc driver.
  +
  +  The eager-release attribute was adopt to solve a problem occured when
  +  using OJB within JBoss (3.0 <= version < 3.2.2, seems to be fixed in jboss 3.2.2).
  +  Only use within JBoss.
  +  
  +  The batch-mode attribute allow to enable JDBC connection batch support
  +  (if supported by used database), 'true' value allows to enable per-session
  +  batch mode, whereas 'false' prohibits it.
  +  PB.serviceConnectionManager.setBatchMode(...) method can be used
  +  to switch on/off batch modus, if batch-mode was enabled. On PB.close()
  +  OJB switch off batch modus, thus you have to do '...setBatchMode(true)' on each
  +  obtained PB instance.
  +  
  +  The useAutoCommit attribute allow to set how OJB uses
  +  the autoCommit state of the used connections. The default mode
  +  was 1.
  +  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).
  +  1 - [default mode] set the connection's autoCommit state temporary to 'false' if needed
  +      (when using transaction) and restore the old state after use. In
  +      versions before OJB 1.0.4 the autoCommit state was explicit set 'true'
  +      when connection was created, now OJB expect that this was done by
  +      the jdbc-driver configuration. To enable old behavior set a custom attribute
  +      'initializationCheck' to 'true'.
  +  2 - this setting set autoCommit explicit 'false' when connection was created.
  +  
  +  If the ignoreAutoCommitExceptions attribute is set 'true', all
  +  exceptions caused by setting autocommit state, will be ignored.
  +  Default mode 'false'.
  +
  +  If a jndi-datasource-name for JNDI based lookup of Jdbc
  +  connections is specified, the four attributes driver, protocol,
  +  subprotocol, dbalias used for Jdbc DriverManager based construction
  +  of Jdbc Connections must not be declared.
  +  
  +  The username and password 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
     -->
   <!ATTLIST jdbc-connection-descriptor
  -	jcd-alias CDATA #REQUIRED
  -    default-connection (true | false) "false"
  -    platform (Db2 | Hsqldb | Informix | MsAccess | MsSQLServer |
  -	          MySQL | Oracle | PostgreSQL | Sybase | SybaseASE |
  +  jcd-alias CDATA #REQUIRED
  +  default-connection (true | false) "false"
  +  platform (Db2 | Hsqldb | Informix | MsAccess | MsSQLServer |
  +            MySQL | Oracle | PostgreSQL | Sybase | SybaseASE |
                 SybaseASA | Sapdb | Firebird | Axion | NonstopSql |
                 Oracle9i | MaxDB ) "Hsqldb"
  -	jdbc-level (1.0 | 2.0 | 3.0) "1.0"
  -    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
  +  jdbc-level (1.0 | 2.0 | 3.0) "1.0"
  +  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
   >
   
   
   <!--
  -    The object-cache element can be used to specify the ObjectCache
  -    implementation used by OJB. There are three levels of
  -    declaration:
  -        1. in OJB.properties file, to declare the standard (default)
  -        ObjectCache implementation.
  -        2. on jdbc-connection-descriptor level, to declare ObjectCache implementation
  -        on a per connection/user level
  -        3. on class-descriptor level, to declare ObjectCache implementation
  -        on a per class level
  -
  -    The priority of the declared object-cache elements are:
  -    per class > per jdbc descriptor > standard
  -
  -    E.g. if you declare ObjectCache 'cacheDef' as standard, set
  -    ObjectCache 'cacheA' in class-descriptor for class A and class B
  -    does not declare an object-cache element. Then OJB use cacheA as ObjectCache
  -    for class A and cacheDef for class B
  +  The object-cache element can be used to specify the ObjectCache
  +  implementation used by OJB. There are three levels of
  +  declaration:
  +    1. in OJB.properties file, to declare the standard (default)
  +    ObjectCache implementation.
  +    2. on jdbc-connection-descriptor level, to declare ObjectCache implementation
  +    on a per connection/user level
  +    3. on class-descriptor level, to declare ObjectCache implementation
  +    on a per class level
  +  
  +  The priority of the declared object-cache elements are:
  +  per class > per jdbc descriptor > standard
  +  
  +  E.g. if you declare ObjectCache 'cacheDef' as standard, set
  +  ObjectCache 'cacheA' in class-descriptor for class A and class B
  +  does not declare an object-cache element. Then OJB use cacheA as ObjectCache
  +  for class A and cacheDef for class B
   -->
   <!ELEMENT object-cache (documentation?, attribute*)>
   
   <!--
  -    Attribute 'class' specifies the full qualified class name of
  -    the used ObjectCache implementation.
  +  Attribute 'class' specifies the full qualified class name of
  +  the used ObjectCache implementation.
   -->
   <!ATTLIST object-cache
  -    class                          CDATA #IMPLIED
  -    strategy                       CDATA #IMPLIED
  +  class                          CDATA #IMPLIED
  +  strategy                       CDATA #IMPLIED
   >
   
   <!--
  -    The batch element specifies the used batch manger and -strategy.
  +  The batch element specifies the used batch manger and -strategy.
   -->
   <!ELEMENT batch (documentation?, attribute*)>
   
   <!--
  -    The 'class' attribute specifies the full qualified class name of
  -    the used BatchManager implementation.
  +  The 'class' attribute specifies the full qualified class name of
  +  the used BatchManager implementation.
   
  -    The 'strategy' attribute specifies the full qualified class name of
  -    the used BatchStrategy implementation.
  +  The 'strategy' attribute specifies the full qualified class name of
  +  the used BatchStrategy implementation.
   
  -    The 'limit' attribute specifies the maximum allowed number of
  -    batch entries. If the maximum is reached all batch statements
  -    will be executed.
  +  The 'limit' attribute specifies the maximum allowed number of
  +  batch entries. If the maximum is reached all batch statements
  +  will be executed.
   
  -    The 'validator' attribute specifies the class used to validate
  -    the batch statement execution return value array.
  +  The 'validator' attribute specifies the class used to validate
  +  the batch statement execution return value array.
   -->
   <!ATTLIST batch
  -    class                          CDATA #IMPLIED
  -    strategy                       CDATA #IMPLIED
  -    limit                          CDATA #IMPLIED
  -    validator                      CDATA #IMPLIED
  +  class                          CDATA #IMPLIED
  +  strategy                       CDATA #IMPLIED
  +  limit                          CDATA #IMPLIED
  +  validator                      CDATA #IMPLIED
   >
   
   <!--
  -	The connection-factory element specifies the connection factory used
  -	to manage the connections.
  +  The connection-factory element specifies the connection factory used
  +  to manage the connections.
   -->
   <!ELEMENT connection-factory (documentation?, attribute*)>
   
   
   <!--
  -	The 'class' attribute specifies the full qualified class name of
  -    the used ConnectionFactory implementation.
  +  The 'class' attribute specifies the full qualified class name of
  +  the used ConnectionFactory implementation.
   
  -    validationQuery
  -    Here you could specify a validation query used by pool to test a
  -    obtained connection (e.g. "select 1 from dual"), else a default query was
  -    used - if defined in the platform class for your database.
  +  validationQuery
  +  Here you could specify a validation query used by pool to test a
  +  obtained connection (e.g. "select 1 from dual"), else a default query was
  +  used - if defined in the platform class for your database.
   -->
   <!ATTLIST connection-factory
  -    class                           CDATA #IMPLIED
  -    validationQuery                 CDATA #IMPLIED
  +  class                          CDATA #IMPLIED
  +  validationQuery                CDATA #IMPLIED
   >
   
   
   
   <!--
  -	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 a default one.
  -    For configuration examples please consult documentation.
  +  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 a default one.
  +  For configuration examples please consult documentation.
   
  -    Use the attribute element to pass implementation specific
  -    properties. This depends on the used implementation class.
  +  Use the attribute element to pass implementation specific
  +  properties. This depends on the used implementation class.
   -->
   <!ELEMENT sequence-manager (documentation?, attribute*)>
   
   <!--
  -    The 'class' attribute specifies 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.
  -    For configuration examples please consult documentation.
  +  The 'class' attribute specifies 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.
  +  For configuration examples please consult documentation.
   -->
   <!ATTLIST sequence-manager
  -    class                       CDATA #IMPLIED
  +  class                        CDATA #IMPLIED
   >
   
   
   
   <!--
  -	For interfaces or abstract classes a class-descriptor holds a sequence of
  -	extent-class elements.
  +  For interfaces or abstract classes a class-descriptor holds a sequence of
  +  extent-class elements.
   
  -	For concrete classes it must have field-descriptors that describe primitive
  -	typed instance variables.
  -	References to other persistent entity classes are specified by
  -	reference-descriptor elements.
  -	Collections or arrays attributes that contain other persistent entity
  -	classes are specified by collection-descriptor elements
  +  For concrete classes it must have field-descriptors that describe primitive
  +  typed instance variables.
  +  References to other persistent entity classes are specified by
  +  reference-descriptor elements.
  +  Collections or arrays attributes that contain other persistent entity
  +  classes are specified by collection-descriptor elements
   
  -	Concrete base classes, may specify a sequence of extent-class elements,
  -	naming the derived classes.
  +  Concrete base classes, may specify a sequence of extent-class elements,
  +  naming the derived classes.
   
  -	A class-descriptor may contain user defined custom attribute elements.
  +  A class-descriptor may contain user defined custom attribute elements.
   
  -    The insert-procedure, update-procedure and delete-procedure elements
  -    identify the procedure/function that is defined in the database which
  -    will handle the insertion, update or deletion of an instance of this
  -    class.  These elements are all optional.  If they are absent then basic
  -    sql statements (INSERT INTO xxx..., UPDATE xxx, DELETE FROM xxx) will
  -    be utilized.
  -
  -    The select-by-pk-procedure specifies the database procedure to be used
  -    when objects of this class shall be retrieved by identity (i.e. by the
  -    primary key values). Likewise, the select-by-fk-procedure is used for
  -    retrieving objects of this class that based on foreignkey field values
  -    in the object. This for instance is the case when fetching the elements
  -    of a collection.
  +  The insert-procedure, update-procedure and delete-procedure elements
  +  identify the procedure/function that is defined in the database which
  +  will handle the insertion, update or deletion of an instance of this
  +  class.  These elements are all optional.  If they are absent then basic
  +  sql statements (INSERT INTO xxx..., UPDATE xxx, DELETE FROM xxx) will
  +  be utilized.
  +  
  +  The select-by-pk-procedure specifies the database procedure to be used
  +  when objects of this class shall be retrieved by identity (i.e. by the
  +  primary key values). Likewise, the select-by-fk-procedure is used for
  +  retrieving objects of this class that based on foreignkey field values
  +  in the object. This for instance is the case when fetching the elements
  +  of a collection.
     -->
   <!ELEMENT class-descriptor
  -	((documentation?, object-cache?, extent-class+, attribute*) |
  -	(documentation?, object-cache?, extent-class*, creation-descriptor?, discriminator-descriptor?,
  -	 field-descriptor+, reference-descriptor*, collection-descriptor*,
  +  ((documentation?, object-cache?, extent-class+, attribute*) |
  +  (documentation?, object-cache?, extent-class*, creation-descriptor?, discriminator-descriptor?,
  +   field-descriptor+, reference-descriptor*, collection-descriptor*,
        index-descriptor*, insert-procedure?, update-procedure?, delete-procedure?,
        select-by-pk-procedure?, select-by-fk-procedure?, attribute*))>
   
   
   <!--
  -	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.
  -
  -	The isolation-level attribute defines the locking isolation level of the
  -    specified class (used by OJB's pessimistic locking api). Default is "global"
  -    to signal the use of the isolation-level defined on "descriptor-repository" level.
  -    Note: This does NOT touch the jdbc-level of the connection.
  -
  -	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.
  -
  -    If the proxy-prefetching-limit attribute (used with the proxy attribute)
  -    is set to the value > 0, the collections of objects of this class are materialized
  -    by groups of the specified size, say when user tries to access the first
  -    object of the collection, next proxy-prefetching-limit objects are loaded
  -    by one database query.
  -    Set this parameter to 0 if you want to turn this feature off.
  -
  -	The schema attribute may contain the database schema owning the table
  -	mapped to this class.
  -
  -	The table attribute specifies the table name this class is mapped to.
  -
  -	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.
  -
  -    The extends attribute is deprecated and will be removed or reintroduced
  -    with changed funcitonality in future. DON'T USE IT!
  -
  -	The accept-locks attribute specifies whether implicit locking should
  -	propagate to this class.  Currently relevant for the ODMG layer only.
  -
  -	The optional initialization-method 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.
  -
  -	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.
  -
  -	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 'batchable' attribute signal whether or not it is allowed to bunch this class
  -    in a sql-batch. Note: Be aware of side-effects when mix batchable
  -    and non batchable classes, e.g. class non batchable, reference batchable
  -    - mixing is not allowed for all sorts of references. A non-batchable object
  -    will immediately performed, other objects in batch will stand still.
  +  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.
  +
  +  The isolation-level attribute defines the locking isolation level of the
  +  specified class (used by OJB's pessimistic locking api). Default is "global"
  +  to signal the use of the isolation-level defined on "descriptor-repository" level.
  +  Note: This does NOT touch the jdbc-level of the connection.
  +
  +  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.
  +
  +  If the proxy-prefetching-limit attribute (used with the proxy attribute)
  +  is set to the value > 0, the collections of objects of this class are materialized
  +  by groups of the specified size, say when user tries to access the first
  +  object of the collection, next proxy-prefetching-limit objects are loaded
  +  by one database query.
  +  Set this parameter to 0 if you want to turn this feature off.
  +
  +  The schema attribute may contain the database schema owning the table
  +  mapped to this class.
  +
  +  The table attribute specifies the table name this class is mapped to.
  +
  +  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.
  +
  +  The extends attribute is deprecated and will be removed or reintroduced
  +  with changed funcitonality in future. DON'T USE IT!
  +
  +  The accept-locks attribute specifies whether implicit locking should
  +  propagate to this class.  Currently relevant for the ODMG layer only.
  +
  +  The optional initialization-method 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.
  +
  +  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.
  +
  +  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 'batchable' attribute signal whether or not it is allowed to bunch this class
  +  in a sql-batch. Note: Be aware of side-effects when mix batchable
  +  and non batchable classes, e.g. class non batchable, reference batchable
  +  - mixing is not allowed for all sorts of references. A non-batchable object
  +  will immediately performed, other objects in batch will stand still.
     -->
   <!ATTLIST class-descriptor
  -	class ID #REQUIRED
  -	isolation-level (read-uncommitted | read-committed | repeatable-read |
  -	                 serializable | optimistic | no-lock | global) "global"
  -	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"
  -    batchable (true | false) "true"
  +  class ID #REQUIRED
  +  isolation-level (read-uncommitted | read-committed | repeatable-read |
  +                   serializable | optimistic | no-lock | global) "global"
  +  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"
  +  batchable (true | false) "true"
   >
   
   
   <!--
  -	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.
  +  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.
     -->
   <!ELEMENT extent-class (documentation?)>
   <!--
  -	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.
     -->
   <!ATTLIST extent-class
  -	class-ref IDREF #REQUIRED
  +  class-ref IDREF #REQUIRED
   >
   
   <!--
  -	Describes how to create instances for the owning class descriptor.
  +  Describes how to create instances for the owning class descriptor.
     -->
   <!ELEMENT creation-descriptor (documentation?, parameter*)>
   <!--
     The type specifies whether the instances are created via constructors or a factory.
   
  -	The factory-class attribute specifies a factory class that that is to be used for creation.
  -	This attribute is ignored if the type is 'constructor'.
  +  The factory-class attribute specifies a factory class that that is to be used for creation.
  +  This attribute is ignored if the type is 'constructor'.
   
  -	If the factory-class is specified, the factory-method attribute also must be defined which
  -	specifies the instance or static method for creating the instance. If the method is a
  -	non-static method, then the factory class must be creatable via a no-args or default constructor.
  +  If the factory-class is specified, the factory-method attribute also must be defined which
  +  specifies the instance or static method for creating the instance. If the method is a
  +  non-static method, then the factory class must be creatable via a no-args or default constructor.
     -->
   <!ATTLIST creation-descriptor
  -	type (constructor | factory) #REQUIRED
  -	factory-class CDATA #IMPLIED
  -	factory-method CDATA #IMPLIED
  +  type (constructor | factory) #REQUIRED
  +  factory-class CDATA #IMPLIED
  +  factory-method CDATA #IMPLIED
   >
   
   <!--
  -	Specifies a parameter for the constructor/factory method. Such a parameter either
  -	refers to a field whose value is used as the argument, or a constant value which
  -	must be convertible to the type of the parameter.
  +  Specifies a parameter for the constructor/factory method. Such a parameter either
  +  refers to a field whose value is used as the argument, or a constant value which
  +  must be convertible to the type of the parameter.
     -->
   <!ELEMENT parameter EMPTY>
   <!--
  -	field-ref specifies the field in the owning class descriptor that gives the value.
  +  field-ref specifies the field in the owning class descriptor that gives the value.
   
  -	value specifies the constant value to be used as the argument.
  +  value specifies the constant value to be used as the argument.
   
  -	type allows to specify the parameter type which helps OJB in determining the
  -	constructor/method. For primitive types, simply state the type, eg. int or char[].
  -	For reference type, specify the fully qualified type name, for instance
  -	java.lang.Object or java.lang.String[][].
  +  type allows to specify the parameter type which helps OJB in determining the
  +  constructor/method. For primitive types, simply state the type, eg. int or char[].
  +  For reference type, specify the fully qualified type name, for instance
  +  java.lang.Object or java.lang.String[][].
     -->
   <!ATTLIST parameter
  -	field-ref CDATA #IMPLIED
  -	value CDATA #IMPLIED
  -	type CDATA #IMPLIED
  +  field-ref CDATA #IMPLIED
  +  value CDATA #IMPLIED
  +  type CDATA #IMPLIED
   >
   
   <!--
  -	The discriminator is used to discriminate the classes when multiple classes
  -	are mapped to the same table.
  +  The discriminator is used to discriminate the classes when multiple classes
  +  are mapped to the same table.
     -->
   <!ELEMENT discriminator-descriptor (documentation?, attribute*)>
   <!--
  -	The optional value attribute may be used to set a discriminator ie. 'my_class_a'.
  -	The default for this attribute is the name of the class taken
  -	from the class-descriptor ie 'com.myself.MyClassMappedToA'.
  +  The optional value attribute may be used to set a discriminator ie. 'my_class_a'.
  +  The default for this attribute is the name of the class taken
  +  from the class-descriptor ie 'com.myself.MyClassMappedToA'.
     -->
   <!ATTLIST discriminator-descriptor
  -	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 | STRUCT |
  +  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 | STRUCT |
                  ARRAY | REF | BOOLEAN | DATALINK) #IMPLIED
  -	value CDATA #IMPLIED
  -	primarykey (true | false) "false"
  +  value CDATA #IMPLIED
  +  primarykey (true | false) "false"
   >
   
   <!--
  @@ -470,106 +469,106 @@
     -->
   <!ELEMENT field-descriptor (documentation?, attribute*)>
   <!--
  -	<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.
  -	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.
  -	The order of the numbers for the field-descriptors must correspond to
  -	the order of columns in the mapped table.
  -
  -	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 table attribute may specify a table different from the mapped
  -	table for the persistent class. (currently not implemented).
  -
  -	The column attribute specifies the column the persistent classes field
  -	is mapped to.
  -
  -	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 primarykey specifies if the column is a primary key column.
  -
  -	The nullable attribute specifies if the column may contain null values.
  -
  -	The indexed attribute specifies if there is an index on this column
  -
  -	The autoincrement attribute specifies if the values for the persistent
  -	attribute are automatically generated by OJB.
  -
  -    The sequence-name attribute can be used to state explicitly a sequence
  -    name used by the sequence manager implementations. Check the docs/javadocs
  -    of the used sequence manager implementation to get information if this
  -    is a mandatory attribute. OJB standard sequence manager implementations
  -    build a sequence name by its own, if the attribute was not set.
  -
  -	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 update-lock attribute is set to false if the persistent attribute is
  -	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.
  -
  -	The default-fetch attribute specifies whether the persistent attribute
  -	belongs to the JDO default fetch group.
  -
  -	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.
  -
  -	The length attribute can be used to specify a length setting, if
  -	required by the jdbc-type of the underlying database column.
  -
  -	The precision attribute can be used to specify a precision setting, if
  -	required by the jdbc-type of the underlying database column.
  -
  -	The scale attribute can be used to specify a scale setting, if
  -	required by the jdbc-type of the underlying database column.
  -
  -	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.
  +  <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.
  +  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.
  +  The order of the numbers for the field-descriptors must correspond to
  +  the order of columns in the mapped table.
  +
  +  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 table attribute may specify a table different from the mapped
  +  table for the persistent class. (currently not implemented).
  +
  +  The column attribute specifies the column the persistent classes field
  +  is mapped to.
  +
  +  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 primarykey specifies if the column is a primary key column.
  +
  +  The nullable attribute specifies if the column may contain null values.
  +
  +  The indexed attribute specifies if there is an index on this column
  +
  +  The autoincrement attribute specifies if the values for the persistent
  +  attribute are automatically generated by OJB.
  +
  +  The sequence-name attribute can be used to state explicitly a sequence
  +  name used by the sequence manager implementations. Check the docs/javadocs
  +  of the used sequence manager implementation to get information if this
  +  is a mandatory attribute. OJB standard sequence manager implementations
  +  build a sequence name by its own, if the attribute was not set.
  +
  +  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 update-lock attribute is set to false if the persistent attribute is
  +  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.
  +
  +  The default-fetch attribute specifies whether the persistent attribute
  +  belongs to the JDO default fetch group.
  +
  +  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.
  +
  +  The length attribute can be used to specify a length setting, if
  +  required by the jdbc-type of the underlying database column.
  +
  +  The precision attribute can be used to specify a precision setting, if
  +  required by the jdbc-type of the underlying database column.
  +
  +  The scale attribute can be used to specify a scale setting, if
  +  required by the jdbc-type of the underlying database column.
  +
  +  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.
   
     -->
   <!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 | STRUCT |
  -               ARRAY | REF | BOOLEAN | DATALINK) #IMPLIED
  -	primarykey (true | false) "false"
  -	nullable (true | false) "true"
  -	indexed (true | false) "false"
  -	autoincrement (true | false) "false"
  -    sequence-name CDATA #IMPLIED
  -	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"
  +  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 | STRUCT |
  +             ARRAY | REF | BOOLEAN | DATALINK) #IMPLIED
  +  primarykey (true | false) "false"
  +  nullable (true | false) "true"
  +  indexed (true | false) "false"
  +  autoincrement (true | false) "false"
  +  sequence-name CDATA #IMPLIED
  +  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"
   >
   
   
  @@ -580,444 +579,450 @@
   <!ELEMENT attribute (documentation?)>
   
   <!--
  -	The attribute-name identifies the name of the attribute.
  -	The attribute-value identifies the value of the attribute.
  +  The attribute-name identifies the name of the attribute.
  +  The attribute-value identifies the value of the attribute.
   -->
   <!ATTLIST attribute
  -	attribute-name CDATA #REQUIRED
  -	attribute-value CDATA #REQUIRED
  +  attribute-name CDATA #REQUIRED
  +  attribute-value CDATA #REQUIRED
   >
   
   <!--
  -    A reference-descriptor contains mapping info for an attribute of a
  -    persistent class that is not primitive but references another
  -    persistent entity Object.
  +  A reference-descriptor contains mapping info for an attribute of a
  +  persistent class that is not primitive but references another
  +  persistent entity Object.
   
  -    A foreignkey element contains information on foreign key columns that
  -    implement the association on the database level.
  +  A foreignkey element contains information on foreign key columns that
  +  implement the association on the database level.
   
  -    A reference-decriptor may contain user defined attribute elements.
  +  A reference-decriptor may contain user defined attribute elements.
     -->
   <!ELEMENT reference-descriptor (documentation?, foreignkey+, attribute*)>
  +
   <!--
  -	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 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 proxy attribute can be set to true to specify that proxy based
  -	lazy loading should be used for this attribute.
  -
  -    If the proxy-prefetching-limit attribute (used with the proxy attribute)
  -    is set to the value > 0, then loading of the reference for the first
  -    object of some collection causes loading of the references for
  -    the next proxy-prefetching-limit objects.
  -    Set this parameter to 0 if you want to turn this feature off.
  -
  -	The refresh attribute can be set to true to force OJB to refresh
  -	object references on instance loading.
  -
  -	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-update attribute specifies whether OJB automatically stores
  -	this reference attribute on storing the persistent object or not or only
  -    link the reference.
  -	This attribute must be set to 'false' if using the OTM or JDO layer.
  -    For ODMG it must be 'none' (since OJB 1.0.2). More info see OJB documentation.
  -
  -	The auto-delete attribute specifies whether OJB automatically deletes
  -	this reference attribute on deleting the persistent object or not.
  -	This attribute must be set to 'false' if using the OTM or JDO layer.
  -    For ODMG it must be 'none' (since OJB 1.0.2). More info see OJB documentation.
  -
  -	The otm-dependent attribute specifies whether the OTM layer automatically
  -    creates the referred object or deletes it if the reference field is set to null.
  -    Also otm-dependent references behave as if auto-update and auto-delete
  -    were set to true, but the auto-update and auto-delete attributes themself
  -    must be always set to false for use with OTM layer.
  +  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 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 proxy attribute can be set to true to specify that proxy based
  +  lazy loading should be used for this attribute.
  +
  +  If the proxy-prefetching-limit attribute (used with the proxy attribute)
  +  is set to the value > 0, then loading of the reference for the first
  +  object of some collection causes loading of the references for
  +  the next proxy-prefetching-limit objects.
  +  Set this parameter to 0 if you want to turn this feature off.
  +
  +  The refresh attribute can be set to true to force OJB to refresh
  +  object references on instance loading.
  +
  +  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-update attribute specifies whether OJB automatically stores
  +  this reference attribute on storing the persistent object or not or only
  +  link the reference.
  +  This attribute must be set to 'false' if using the OTM or JDO layer.
  +  For ODMG it must be 'none' (since OJB 1.0.2). More info see OJB documentation.
  +
  +  The auto-delete attribute specifies whether OJB automatically deletes
  +  this reference attribute on deleting the persistent object or not.
  +  This attribute must be set to 'false' if using the OTM or JDO layer.
  +  For ODMG it must be 'none' (since OJB 1.0.2). More info see OJB documentation.
  +
  +  The otm-dependent attribute specifies whether the OTM layer automatically
  +  creates the referred object or deletes it if the reference field is set to null.
  +  Also otm-dependent references behave as if auto-update and auto-delete
  +  were set to true, but the auto-update and auto-delete attributes themself
  +  must be always set to false for use with OTM layer.
   
     -->
   <!ATTLIST reference-descriptor
  -	name CDATA #REQUIRED
  -	class-ref IDREF #REQUIRED
  +  name CDATA #REQUIRED
  +  class-ref IDREF #REQUIRED
   
  -	proxy (true | false) "false"
  -	proxy-prefetching-limit CDATA #IMPLIED
  -	refresh (true | false) "false"
  +  proxy (true | false) "false"
  +  proxy-prefetching-limit CDATA #IMPLIED
  +  refresh (true | false) "false"
   
  -	auto-retrieve (true | false) "true"
  -	auto-update (none | link | object | true | false) "false"
  -	auto-delete (none | link | object | true | false) "false"
  -	otm-dependent (true | false) "false"
  +  auto-retrieve (true | false) "true"
  +  auto-update (none | link | object | true | false) "false"
  +  auto-delete (none | link | object | true | false) "false"
  +  otm-dependent (true | false) "false"
   >
   
   <!--
  -    A foreignkey element contains information on a foreign-key persistent
  -    attribute that implement the association on the database level.
  +  A foreignkey element contains information on a foreign-key persistent
  +  attribute that implement the association on the database level.
     -->
   <!ELEMENT foreignkey (documentation?)>
  +
   <!--
  -	The field-id-ref contains the id attribute of the field-descriptor
  -	used as a foreign key.
  +  The field-id-ref contains the id attribute of the field-descriptor
  +  used as a foreign key.
     -->
   <!ATTLIST foreignkey
  -	field-id-ref CDATA #IMPLIED
  -	field-ref CDATA #IMPLIED
  -	target-field-ref CDATA #IMPLIED	
  +  field-id-ref CDATA #IMPLIED
  +  field-ref CDATA #IMPLIED
  +  target-field-ref CDATA #IMPLIED  
   >
   
   
   <!--
  -    A collection-descriptor contains mapping info for a Collection- or
  -    Array-attribute of a  persistent class that contains persistent
  -    entity Objects.
  +  A collection-descriptor contains mapping info for a Collection- or
  +  Array-attribute of a  persistent class that contains persistent
  +  entity Objects.
   
  -    The inverse-foreignkey elements contains information on foreign-key
  -    attributes that implement the association on the database level.
  +  The inverse-foreignkey elements contains information on foreign-key
  +  attributes that implement the association on the database level.
   
  -    The fk-pointing-to-this-class and fk-pointing-to-element-class elements
  -    are only needed if the Collection or array implements a m:n association.
  -    In this case they contain information on the foreign-key columns of
  -    the intermediary table.
  +  The fk-pointing-to-this-class and fk-pointing-to-element-class elements
  +  are only needed if the Collection or array implements a m:n association.
  +  In this case they contain information on the foreign-key columns of
  +  the intermediary table.
   
  -    A collection-descriptor may contain user defined attribute elements.
  +  A collection-descriptor may contain user defined attribute elements.
     -->
   <!ELEMENT collection-descriptor (
  -    documentation?,
  -    orderby*,
  -    inverse-foreignkey*,
  -	fk-pointing-to-this-class*,
  -	fk-pointing-to-element-class*,
  -	query-customizer?,
  -	attribute*)>
  -
  -
  -<!--
  -	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 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. The declared
  -    (none java.util.Collection or non Array) class must implement
  -    ManageableCollection to let OJB handle this type of collection.
  -
  -	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.
  -
  -	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 indirection-table must specify the name of an intermediary table,
  -	if the persistent collection attribute implements a m:n association.
  -
  -	The proxy attribute can be set to true to specify that proxy based
  -	lazy loading should be used for this attribute.
  -
  -    If the proxy-prefetching-limit attribute (used with the proxy attribute)
  -    is set to the value > 0, then loading of the collection for the first
  -    object of some other collection causes loading of the collections for
  -    the next proxy-prefetching-limit objects.
  -    Set this parameter to 0 if you want to turn this feature off.
  -
  -	The refresh attribute can be set to true to force OJB to refresh
  -	object and collection references on instance loading.
  -
  -	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.
  -
  -	The auto-update attribute specifies whether OJB automatically stores
  -	the referenced objects on storing the persistent object or not or only link.
  -	This attribute must be set to 'false' if using the OTM or JDO layer.
  -    For ODMG it must be 'none' (since OJB 1.0.2). More info see OJB documentation.
  -
  -	The auto-delete attribute specifies whether OJB automatically deletes
  -	the referenced objects on deleting the persistent object or not.
  -	This attribute must be set to 'false' if using the OTM or JDO layer.
  -    For ODMG it must be 'none' (since OJB 1.0.2). More info see OJB documentation.
  -
  -	The otm-dependent attribute specifies whether the OTM layer automatically
  -    creates collection elements that were included into the collectionelements
  -    and deletes collection elements that were excluded from the collection.
  -    Also otm-dependent references behave as if auto-update and auto-delete
  -    were set to true, but the auto-update and auto-delete attributes themself
  -    must be always set to false for use with OTM layer.
  +  documentation?,
  +  orderby*,
  +  inverse-foreignkey*,
  +  fk-pointing-to-this-class*,
  +  fk-pointing-to-element-class*,
  +  query-customizer?,
  +  attribute*)>
  +
  +
  +<!--
  +  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 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. The declared
  +  (none java.util.Collection or non Array) class must implement
  +  ManageableCollection to let OJB handle this type of collection.
  +
  +  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.
  +
  +  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 indirection-table must specify the name of an intermediary table,
  +  if the persistent collection attribute implements a m:n association.
  +
  +  The proxy attribute can be set to true to specify that proxy based
  +  lazy loading should be used for this attribute.
  +
  +  If the proxy-prefetching-limit attribute (used with the proxy attribute)
  +  is set to the value > 0, then loading of the collection for the first
  +  object of some other collection causes loading of the collections for
  +  the next proxy-prefetching-limit objects.
  +  Set this parameter to 0 if you want to turn this feature off.
  +
  +  The refresh attribute can be set to true to force OJB to refresh
  +  object and collection references on instance loading.
  +
  +  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.
  +
  +  The auto-update attribute specifies whether OJB automatically stores
  +  the referenced objects on storing the persistent object or not or only link.
  +  This attribute must be set to 'false' if using the OTM or JDO layer.
  +  For ODMG it must be 'none' (since OJB 1.0.2). More info see OJB documentation.
  +
  +  The auto-delete attribute specifies whether OJB automatically deletes
  +  the referenced objects on deleting the persistent object or not.
  +  This attribute must be set to 'false' if using the OTM or JDO layer.
  +  For ODMG it must be 'none' (since OJB 1.0.2). More info see OJB documentation.
  +
  +  The otm-dependent attribute specifies whether the OTM layer automatically
  +  creates collection elements that were included into the collectionelements
  +  and deletes collection elements that were excluded from the collection.
  +  Also otm-dependent references behave as if auto-update and auto-delete
  +  were set to true, but the auto-update and auto-delete attributes themself
  +  must be always set to false for use with OTM layer.
   
   
     -->
   <!ATTLIST collection-descriptor
  -	name CDATA #IMPLIED
  -	collection-class CDATA #IMPLIED
  -	element-class-ref IDREF #REQUIRED
  -	orderby CDATA #IMPLIED
  -	sort (ASC | DESC) "ASC"
  +  name CDATA #IMPLIED
  +  collection-class CDATA #IMPLIED
  +  element-class-ref IDREF #REQUIRED
  +  orderby CDATA #IMPLIED
  +  sort (ASC | DESC) "ASC"
   
  -	indirection-table CDATA #IMPLIED
  +  indirection-table CDATA #IMPLIED
   
  -	proxy (true | false) "false"
  -	proxy-prefetching-limit CDATA #IMPLIED
  -	refresh (true | false) "false"
  +  proxy (true | false) "false"
  +  proxy-prefetching-limit CDATA #IMPLIED
  +  refresh (true | false) "false"
   
  -	auto-retrieve (true | false) "true"
  -	auto-update (none | link | object | true | false) "false"
  -	auto-delete (none | link | object | true | false) "false"
  -	otm-dependent (true | false) "false"
  +  auto-retrieve (true | false) "true"
  +  auto-update (none | link | object | true | false) "false"
  +  auto-delete (none | link | object | true | false) "false"
  +  otm-dependent (true | false) "false"
   >
   
   <!--
  -	an OrderBy elemnent contains an attribute name and a sort order
  +  An orderby elemnent contains an attribute name and a sort order
     -->
   <!ELEMENT orderby (documentation?)>
   <!ATTLIST orderby
  -	name CDATA #REQUIRED
  -	sort (ASC | DESC) "ASC"
  +  name CDATA #REQUIRED
  +  sort (ASC | DESC) "ASC"
   >
   
   <!--
  -    A inverse-foreignkey element contains information on a foreign-key
  -    persistent attribute that implement the association on the database level.
  +  A inverse-foreignkey element contains information on a foreign-key
  +  persistent attribute that implement the association on the database level.
     -->
   <!ELEMENT inverse-foreignkey (documentation?)>
  +
   <!--
  -	The field-id-ref contains the id attribute of the field-descriptor
  -	in the class of the collection elements that is used as a foreign key.
  +  The field-id-ref contains the id attribute of the field-descriptor
  +  in the class of the collection elements that is used as a foreign key.
     -->
   <!ATTLIST inverse-foreignkey
  -	field-id-ref CDATA #IMPLIED
  -	field-ref CDATA #IMPLIED
  -	target-field-ref CDATA #IMPLIED
  +  field-id-ref CDATA #IMPLIED
  +  field-ref CDATA #IMPLIED
  +  target-field-ref CDATA #IMPLIED
   >
   
   <!--
  -    A fk-pointing-to-this-class element contains information on a foreign-key
  -    column of an intermediary table in a m:n scenario.
  +  A fk-pointing-to-this-class element contains information on a foreign-key
  +  column of an intermediary table in a m:n scenario.
     -->
   <!ELEMENT fk-pointing-to-this-class (documentation?)>
  +
   <!--
  -	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.
     -->
   <!ATTLIST fk-pointing-to-this-class
  -	column CDATA #REQUIRED
  +  column CDATA #REQUIRED
   >
   
   <!--
  -    A fk-pointing-to-element-class element contains information on a foreign-key
  -    column of an intermediary table in a m:n scenario.
  +  A fk-pointing-to-element-class element contains information on a foreign-key
  +  column of an intermediary table in a m:n scenario.
     -->
   <!ELEMENT fk-pointing-to-element-class (documentation?)>
  +
   <!--
  -	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.
     -->
   <!ATTLIST fk-pointing-to-element-class
  -	column CDATA #REQUIRED
  +  column CDATA #REQUIRED
   >
   
   
   <!--
  -	a queryEnhancer element to enhance the 1:n query
  +  A queryEnhancer element to enhance the 1:n query
     -->
   <!ELEMENT query-customizer (
  -	documentation?,
  -	attribute*)>
  +  documentation?,
  +  attribute*)>
   <!ATTLIST query-customizer
  -	class CDATA #REQUIRED
  +  class CDATA #REQUIRED
   >
   
   <!--
  -    An index-descriptor describes an index by listing its columns.  It may be
  -    unique or not.
  +  An index-descriptor describes an index by listing its columns.  It may be
  +  unique or not.
   -->
   <!ELEMENT index-descriptor (documentation?, index-column+)>
   <!ATTLIST index-descriptor
  -    name CDATA #REQUIRED
  -    unique (true | false) "false">
  +  name CDATA #REQUIRED
  +  unique (true | false) "false">
   
   <!--
  -    An index-column is just the name of a column in an index.
  +  An index-column is just the name of a column in an index.
   -->
   <!ELEMENT index-column (documentation?)>
   <!ATTLIST index-column
  -    name CDATA #REQUIRED>
  +  name CDATA #REQUIRED>
   
   <!--
  -	Identifies the procedure/function that should be used to handle
  -    insertions for a specific class-descriptor.
  +  Identifies the procedure/function that should be used to handle
  +  insertions for a specific class-descriptor.
   
  -    The nested 'argument' elements define the argument list for the
  -    procedure/function as well as the source for each argument.
  +  The nested 'argument' elements define the argument list for the
  +  procedure/function as well as the source for each argument.
   
  -    The name attribute identifies the name of the procedure/function to use
  -
  -    The return-field-ref identifies the field-descriptor that will receive
  -    the value that is returned by the procedure/function.  If the procedure/
  -    function does not include a return value, then do not specify a value
  -    for this attribute.
  -
  -    The include-all-fields attribute indicates if all field-descriptors in
  -    the corresponding class-descriptor are to be passed to the procedure/
  -    function.  If include-all-fields is 'true', any nested 'argument'
  -    elements will be ignored.  In this case, values for all field-descriptors
  -    will be passed to the procedure/function.  The order of values that are
  -    passed to the procedure/function will match the order of field-descriptors
  -    on the corresponding class-descriptor.  If include-all-fields is false,
  -    then values will be passed to the procedure/function based on the
  -    information in the nested 'argument' elements.
  -  -->
  +  The name attribute identifies the name of the procedure/function to use
  +
  +  The return-field-ref identifies the field-descriptor that will receive
  +  the value that is returned by the procedure/function.  If the procedure/
  +  function does not include a return value, then do not specify a value
  +  for this attribute.
  +
  +  The include-all-fields attribute indicates if all field-descriptors in
  +  the corresponding class-descriptor are to be passed to the procedure/
  +  function.  If include-all-fields is 'true', any nested 'argument'
  +  elements will be ignored.  In this case, values for all field-descriptors
  +  will be passed to the procedure/function.  The order of values that are
  +  passed to the procedure/function will match the order of field-descriptors
  +  on the corresponding class-descriptor.  If include-all-fields is false,
  +  then values will be passed to the procedure/function based on the
  +  information in the nested 'argument' elements.
  +-->
   <!ELEMENT insert-procedure
  -	(documentation?, (runtime-argument | constant-argument)*, attribute*)>
  +  (documentation?, (runtime-argument | constant-argument)*, attribute*)>
   <!ATTLIST insert-procedure
  -	name CDATA #REQUIRED
  -    return-field-ref CDATA #IMPLIED
  -    include-all-fields (true | false) "false"
  +  name CDATA #REQUIRED
  +  return-field-ref CDATA #IMPLIED
  +  include-all-fields (true | false) "false"
   >
   
   <!--
  -	Identifies the procedure/function that should be used to handle
  -    updates for a specific class-descriptor.
  -
  -    The nested 'argument' elements define the argument list for the
  -    procedure/function as well as the source for each argument.
  -
  -    The name attribute identifies the name of the procedure/function to use
  -
  -    The return-field-ref identifies the field-descriptor that will receive
  -    the value that is returned by the procedure/function.  If the procedure/
  -    function does not include a return value, then do not specify a value
  -    for this attribute.
  -
  -    The include-all-fields attribute indicates if all field-descriptors in
  -    the corresponding class-descriptor are to be passed to the procedure/
  -    function.  If include-all-fields is 'true', any nested 'argument'
  -    elements will be ignored.  In this case, values for all field-descriptors
  -    will be passed to the procedure/function.  The order of values that are
  -    passed to the procedure/function will match the order of field-descriptors
  -    on the corresponding class-descriptor.  If include-all-fields is false,
  -    then values will be passed to the procedure/function based on the
  -    information in the nested 'argument' elements.
  -  -->
  +  Identifies the procedure/function that should be used to handle
  +  updates for a specific class-descriptor.
  +
  +  The nested 'argument' elements define the argument list for the
  +  procedure/function as well as the source for each argument.
  +
  +  The name attribute identifies the name of the procedure/function to use
  +
  +  The return-field-ref identifies the field-descriptor that will receive
  +  the value that is returned by the procedure/function.  If the procedure/
  +  function does not include a return value, then do not specify a value
  +  for this attribute.
  +
  +  The include-all-fields attribute indicates if all field-descriptors in
  +  the corresponding class-descriptor are to be passed to the procedure/
  +  function.  If include-all-fields is 'true', any nested 'argument'
  +  elements will be ignored.  In this case, values for all field-descriptors
  +  will be passed to the procedure/function.  The order of values that are
  +  passed to the procedure/function will match the order of field-descriptors
  +  on the corresponding class-descriptor.  If include-all-fields is false,
  +  then values will be passed to the procedure/function based on the
  +  information in the nested 'argument' elements.
  +-->
   <!ELEMENT update-procedure
  -	(documentation?, (runtime-argument | constant-argument)*, attribute*)>
  +  (documentation?, (runtime-argument | constant-argument)*, attribute*)>
   <!ATTLIST update-procedure
  -	name CDATA #REQUIRED
  -    return-field-ref CDATA #IMPLIED
  -    include-all-fields (true | false) "false"
  +  name CDATA #REQUIRED
  +  return-field-ref CDATA #IMPLIED
  +  include-all-fields (true | false) "false"
   >
   
   <!--
  -	Identifies the procedure/function that should be used to handle
  -    deletions for a specific class-descriptor.
  -
  -    The nested 'runtime-argument' and 'constant-argument' elements define
  -    the argument list for the procedure/function as well as the source
  -    for each argument.
  -
  -    The name attribute identifies the name of the procedure/function to use
  -
  -    The return-field-ref identifies the field-descriptor that will receive
  -    the value that is returned by the procedure/function.  If the procedure/
  -    function does not include a return value, then do not specify a value
  -    for this attribute.
  -
  -    The include-pk-only attribute indicates if all field-descriptors in
  -    the corresponding class-descriptor that are identified as being part of
  -    the primary key are to be passed to the procedure/function.  If
  -    include-pk-only is 'true', any nested 'argument' elements will be
  -    ignored.  In this case, values for all field-descriptors that are identified
  -    as being part of the primary key will be passed to the procedure/function.
  -    The order of values that are passed to the procedure/function will match
  -    the order of field-descriptors on the corresponding class-descriptor.
  -    If include-pk-only is false, then values will be passed to the procedure/
  -    function based on the information in the nested 'argument' elements.
  -  -->
  +  Identifies the procedure/function that should be used to handle
  +  deletions for a specific class-descriptor.
  +
  +  The nested 'runtime-argument' and 'constant-argument' elements define
  +  the argument list for the procedure/function as well as the source
  +  for each argument.
  +
  +  The name attribute identifies the name of the procedure/function to use
  +
  +  The return-field-ref identifies the field-descriptor that will receive
  +  the value that is returned by the procedure/function.  If the procedure/
  +  function does not include a return value, then do not specify a value
  +  for this attribute.
  +
  +  The include-pk-only attribute indicates if all field-descriptors in
  +  the corresponding class-descriptor that are identified as being part of
  +  the primary key are to be passed to the procedure/function.  If
  +  include-pk-only is 'true', any nested 'argument' elements will be
  +  ignored.  In this case, values for all field-descriptors that are identified
  +  as being part of the primary key will be passed to the procedure/function.
  +  The order of values that are passed to the procedure/function will match
  +  the order of field-descriptors on the corresponding class-descriptor.
  +  If include-pk-only is false, then values will be passed to the procedure/
  +  function based on the information in the nested 'argument' elements.
  +-->
   <!ELEMENT delete-procedure
  -	(documentation?, (runtime-argument | constant-argument)*, attribute*)>
  +  (documentation?, (runtime-argument | constant-argument)*, attribute*)>
   <!ATTLIST delete-procedure
  -	name CDATA #REQUIRED
  -    return-field-ref CDATA #IMPLIED
  -    include-pk-only (true | false) "false"
  +  name CDATA #REQUIRED
  +  return-field-ref CDATA #IMPLIED
  +  include-pk-only (true | false) "false"
   >
  +
   <!--
  -    Defines an argument that is passed to a procedure/function.  Each argument
  -    will be set to a value from a field-descriptor or null.
  +  Defines an argument that is passed to a procedure/function.  Each argument
  +  will be set to a value from a field-descriptor or null.
   
  -    The field-ref attribute identifies the field-descriptor in the corresponding
  -    class-descriptor that provides the value for this argument.  If this attribute
  -    is unspecified, then this argument will be set to null.
  +  The field-ref attribute identifies the field-descriptor in the corresponding
  +  class-descriptor that provides the value for this argument.  If this attribute
  +  is unspecified, then this argument will be set to null.
   -->
   <!ELEMENT runtime-argument
  -	(documentation?, attribute*)>
  +  (documentation?, attribute*)>
   <!ATTLIST runtime-argument
  -	field-ref CDATA #IMPLIED
  -    return (true | false) "false"
  +  field-ref CDATA #IMPLIED
  +  return (true | false) "false"
   >
   <!--
  -    Defines a constant value that is passed to a procedure/function.
  +  Defines a constant value that is passed to a procedure/function.
   
  -    The value attribute identifies the value that is passed to the procedure/
  -    function.
  +  The value attribute identifies the value that is passed to the procedure/
  +  function.
   -->
   <!ELEMENT constant-argument
  -	(documentation?, attribute*)>
  +  (documentation?, attribute*)>
   <!ATTLIST constant-argument
  -    value CDATA #REQUIRED
  +  value CDATA #REQUIRED
   >
   
   <!--
  -	Identifies the procedure/function that should be used to handle
  -    selects based on the identity (primary key values) for this class
  -    descriptor.
  +  Identifies the procedure/function that should be used to handle
  +  selects based on the identity (primary key values) for this class
  +  descriptor.
   
  -    The return-field-ref identifies the field-descriptor that will receive
  -    the value that is returned by the procedure/function.  If the procedure/
  -    function does not include a return value, then do not specify a value
  -    for this attribute.
  +  The return-field-ref identifies the field-descriptor that will receive
  +  the value that is returned by the procedure/function.  If the procedure/
  +  function does not include a return value, then do not specify a value
  +  for this attribute.
   
  -    The name attribute identifies the name of the procedure/function to use
  +  The name attribute identifies the name of the procedure/function to use
     -->
   <!ELEMENT select-by-pk-procedure
  -	(documentation?, attribute*)>
  +  (documentation?, attribute*)>
   <!ATTLIST insert-procedure
  -	name CDATA #REQUIRED
  -    return-field-ref CDATA #IMPLIED
  +  name CDATA #REQUIRED
  +  return-field-ref CDATA #IMPLIED
   >
   
   <!--
  -	Identifies the procedure/function that should be used to handle
  -    selects based on the values of foreign key fields in the objects of
  -    this type. It will e.g. be used for retrieving collection elements.
  +  Identifies the procedure/function that should be used to handle
  +  selects based on the values of foreign key fields in the objects of
  +  this type. It will e.g. be used for retrieving collection elements.
   
  -    The return-field-ref identifies the field-descriptor that will receive
  -    the value that is returned by the procedure/function.  If the procedure/
  -    function does not include a return value, then do not specify a value
  -    for this attribute.
  +  The return-field-ref identifies the field-descriptor that will receive
  +  the value that is returned by the procedure/function.  If the procedure/
  +  function does not include a return value, then do not specify a value
  +  for this attribute.
   
  -    The name attribute identifies the name of the procedure/function to use
  -  -->
  +  The name attribute identifies the name of the procedure/function to use
  +-->
   <!ELEMENT select-by-fk-procedure
  -	(documentation?, attribute*)>
  +  (documentation?, attribute*)>
   <!ATTLIST insert-procedure
  -	name CDATA #REQUIRED
  -    return-field-ref CDATA #IMPLIED
  +  name CDATA #REQUIRED
  +  return-field-ref CDATA #IMPLIED
   >
  
  
  

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