You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2014/02/12 00:31:04 UTC
[07/51] [partial] ISIS-694: mothballing the docbkx folders.
http://git-wip-us.apache.org/repos/asf/isis/blob/7a7836e3/mothballed/docbkx/mothballed/component/objectstore/sql/src/docbkx/guide/isis-sql-objectstore.xml
----------------------------------------------------------------------
diff --git a/mothballed/docbkx/mothballed/component/objectstore/sql/src/docbkx/guide/isis-sql-objectstore.xml b/mothballed/docbkx/mothballed/component/objectstore/sql/src/docbkx/guide/isis-sql-objectstore.xml
new file mode 100644
index 0000000..6858fe9
--- /dev/null
+++ b/mothballed/docbkx/mothballed/component/objectstore/sql/src/docbkx/guide/isis-sql-objectstore.xml
@@ -0,0 +1,886 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
+"file:./src/docbkx/dtd-4.5/docbookx.dtd">
+<book>
+ <bookinfo>
+ <title><?eval ${docbkxGuideTitle}?></title>
+
+ <subtitle><?eval ${docbkxGuideSubTitle}?></subtitle>
+
+ <releaseinfo><?eval ${project.version}?></releaseinfo>
+
+ <authorgroup>
+ <author>
+ <firstname>Kevin</firstname>
+
+ <surname>Meyer</surname>
+ </author>
+
+ <author>
+ <firstname>Robert</firstname>
+
+ <surname>Matthews</surname>
+ </author>
+ </authorgroup>
+
+ <legalnotice>
+ <para>Permission is granted to make and distribute verbatim copies of
+ this manual provided that the copyright notice and this permission
+ notice are preserved on all copies.</para>
+ </legalnotice>
+ </bookinfo>
+
+ <!-- front matter -->
+
+ <toc></toc>
+
+ <preface id="preface">
+ <title>Preface</title>
+
+ <para><emphasis>Apache Isis</emphasis> is designed to allow programmers
+ rapidly develop domain-driven applications following the <ulink
+ url="http://en.wikipedia.org/wiki/Naked_Objects">Naked Objects</ulink>
+ pattern. It is made up of a core framework plus a number of alternate
+ implementations, and supports various viewers and object stores. Apache
+ Isis is hosted at the <ulink url="http://incubator.apache.org/isis">Apache
+ Foundation</ulink>, and is licensed under <ulink
+ url="http://www.apache.org/licenses/LICENSE-2.0.html">Apache Software
+ License v2</ulink>.</para>
+
+ <para>This guide is written for programmers who want to use the
+ <emphasis>SQL Object Store</emphasis> to persist domain objects running
+ within the <emphasis>Apache Isis</emphasis> framework. Specifically, it
+ covers how to write repository implementations, how to configure the
+ object store, and how to deploy your applications using the object
+ store.</para>
+ </preface>
+
+ <!--main content -->
+
+ <chapter id="chp.Intro">
+ <title>Operation</title>
+
+ <abstract>
+ <para>What's it all about?</para>
+ </abstract>
+
+ <sect1>
+ <title>Background</title>
+
+ <para>The SQL objectstore provides a fully-automatic object store that
+ uses a jdbc SQL-compatible database server.</para>
+
+ <para>All domain objects (entities) are introspected during
+ initialisation, and have a 1-to-1 mapping onto a database table. All
+ properties (values) are mapped onto one or more columns with each
+ database table.</para>
+
+ <para>Domain object classes are introspected and all properties
+ recursively introspected to value types. Thus, if a property stores a
+ reference to a class, that class's properties are introspected,
+ etc.</para>
+ </sect1>
+
+ <sect1>
+ <title>Setup</title>
+
+ <sect2>
+ <title>Properties</title>
+
+ <para>The SQL objectstore is setup via the
+ <code>isis.properties</code> file. The required variables are given
+ below:</para>
+
+ <blockquote>
+ <para><property>isis.persistor.sql.jdbc.driver=org.hsqldb.jdbcDriver</property></para>
+
+ <para><property>isis.persistor.sql.jdbc.connection=jdbc:hsqldb:file:hsql-db/tests</property></para>
+
+ <para><property>isis.persistor.sql.jdbc.user=sa</property></para>
+
+ <para><property>isis.persistor.sql.jdbc.password=</property></para>
+ </blockquote>
+
+ <para>The driver property must contain the name of the jdbc driver
+ class that provides access to your SQL server. Known examples are
+ given below in <xref linkend="sec.servers.tested" />.</para>
+ </sect2>
+
+ <sect2>
+ <title>Table Creation</title>
+
+ <para>Missing database tables are automatically created when the SQL
+ objectstore is initialised.</para>
+
+ <para>Please note that changes to domain classes such as renaming
+ fields (properties) or the classes themselves, are
+ <emphasis>not</emphasis> automatically detected. If you rename a
+ property after a table has been created, you should use the
+ appropriate database administration tool to rename the column in the
+ containing table.</para>
+
+ <para>If you rename a domain class (entity), you must also rename the
+ appropriate table.</para>
+ </sect2>
+ </sect1>
+
+ <sect1>
+ <title>Mappers</title>
+
+ <para>The mappers take care of mapping a value type onto a SQL data
+ type. Default mappers are provided by
+ JdbcFieldMappingFactoryInstaller.</para>
+
+ <sect2>
+ <title id="sec.mappers.modifiable-values">Modifiable values</title>
+
+ <para>The following SQL datatypes can be overridden, if specified in
+ the properties file (the default value is given in parenthesis), [the
+ mapped value classes are given in square brackets]:<simplelist>
+ <member>isis.persistor.sql.datatypes.timestamp (DATETIME)
+ [TimeStamp, java.sql.Timestamp]</member>
+ </simplelist></para>
+
+ <para><simplelist>
+ <member>isis.persistor.sql.datatypes.datetime (DATETIME)
+ [DateTime]</member>
+ </simplelist></para>
+
+ <para><simplelist>
+ <member>isis.persistor.sql.datatypes.date (DATE) [Date,
+ java.sql.Date, java.util.Date]</member>
+ </simplelist></para>
+
+ <para><simplelist>
+ <member>isis.persistor.sql.datatypes.time (TIME) [Time]</member>
+ </simplelist></para>
+
+ <para><simplelist>
+ <member>isis.persistor.sql.datatypes.double (FLOAT)
+ [double]</member>
+ </simplelist></para>
+
+ <para><simplelist>
+ <member>isis.persistor.sql.datatypes.float (FLOAT)
+ [float]</member>
+ </simplelist></para>
+
+ <para><simplelist>
+ <member>isis.persistor.sql.datatypes.short (INT) [short]</member>
+ </simplelist></para>
+
+ <para><simplelist>
+ <member>isis.persistor.sql.datatypes.long (INT) [long,
+ Color]</member>
+ </simplelist></para>
+
+ <para><simplelist>
+ <member>isis.persistor.sql.datatypes.int (INT) [int]</member>
+ </simplelist></para>
+
+ <para><simplelist>
+ <member>isis.persistor.sql.datatypes.boolean (CHAR(1))
+ [boolean]</member>
+ </simplelist></para>
+
+ <para><simplelist>
+ <member>isis.persistor.sql.datatypes.string (VARCHAR(65))
+ [String]</member>
+ </simplelist></para>
+
+ <para><simplelist>
+ <member>isis.persistor.sql.datatypes.longstring (VARCHAR(128))
+ [String]</member>
+ </simplelist></para>
+
+ <para><simplelist>
+ <member>isis.persistor.sql.datatypes.password (VARCHAR(120))
+ [Password]</member>
+ </simplelist></para>
+
+ <para><simplelist>
+ <member>isis.persistor.sql.datatypes.default (VARCHAR(65))
+ [Everything else, e.g. Image]</member>
+ </simplelist></para>
+
+ <para><simplelist>
+ <member>isis.persistor.sql.datatypes.primarykey (INTEGER)
+ [IdMappingAbstract -> JdbcObjectReferenceMapping ->
+ JdbcObjectReferenceFieldMapping]</member>
+ </simplelist></para>
+
+ <para>The final value, primarykey, is a special value.</para>
+
+ <para>In general, be very careful about changing the SQL data type, as
+ the default value mappers are written assuming the default values.
+ Data parsing uses prepared statements and reads/writes values as
+ objects.</para>
+
+ <para>The datatype longstring is used to store classnames, required
+ for polymorphism.</para>
+ </sect2>
+
+ <sect2>
+ <title>Floating Point Value Limits</title>
+
+ <para><emphasis>Caution:</emphasis> Testing on certain database
+ servers (MySQL and PostgreSQL) has shown that <code>float</code>s and
+ <code>double</code>s (stored as <code>FLOAT</code> or <code>DOUBLE
+ PRECISION</code> respectively) are not stored to the same resolution
+ as supported by Java. The tested range of float is 1E-37 to 1E38, and
+ the tested range of double is 1E-307 to 1E308.</para>
+ </sect2>
+
+ <sect2>
+ <title>Fixed values</title>
+
+ <para>The following classes are not modifiable:</para>
+
+ <para>[char] is set to CHAR(1)</para>
+
+ <para>[Money] value is FLOAT, currency is VARCHAR(3)</para>
+
+ <para>[Percentage] is FLOAT</para>
+ </sect2>
+
+ <sect2>
+ <title>Modifying individual property types</title>
+
+ <para>By default, all property types will use the SQL datatype, as
+ determined above (see <xref
+ linkend="sec.mappers.modifiable-values" />), but it is possible to
+ override these values for individual object properties, by specifying
+ the following override in the properties file:</para>
+
+ <para><property>isis.persistor.sql.automapper.type.<object>.<property>=<SQL
+ data type></property></para>
+
+ <para>where</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>object is the final part of the domain object name (e.g. in
+ my.domain.Member, it'll be Member)</para>
+ </listitem>
+
+ <listitem>
+ <para>property is the lower case property name (e.g. in getName(),
+ it'll be name)</para>
+ </listitem>
+
+ <listitem>
+ <para>SQL data type is an acceptable datatype (e.g. VARCHAR(255)
+ )</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Again, please be very careful about changing the defaults as the
+ value mappers make assumptions about the underlying data type.</para>
+
+ <para>It is safe to change the size of VARCHAR() types, e.g. when you
+ know only a partcular field requires more that 65 characters, the
+ default String length.</para>
+ </sect2>
+ </sect1>
+
+ <sect1>
+ <title>Naming Conventions</title>
+
+ <para>While case is determined by the capabilities of the database
+ driver, all SQL names will be written in UPPER CASE, below.</para>
+
+ <sect2>
+ <title>Tables</title>
+
+ <para>By default, all Isis tables are preceded with "ISIS_". This
+ behaviour can be altered by specifying a replacement table prefix. See
+ <xref linkend="sec.defaults.tableprefix" />.</para>
+
+ <sect3>
+ <title>Internal Tables</title>
+
+ <para>ISIS_ADMIN_SERIAL_ID ISIS_ADMIN_SERVICES</para>
+ </sect3>
+
+ <sect3>
+ <title>Domain Tables</title>
+
+ <para>Only the "class" part of the package name is used. Thus a
+ domain class called "some.package.Client", will be mapped onto a
+ table "ISIS_CLIENT" (assuming that the default table prefix has not
+ been changed).</para>
+ </sect3>
+ </sect2>
+
+ <sect2>
+ <title>Columns</title>
+
+ <sect3>
+ <title>Internal column: pk_id</title>
+
+ <para>ID column: PK_ID</para>
+
+ <para>VERSION BIGINT,</para>
+
+ <para>MODIFIED_BY VARCHAR(32),</para>
+
+ <para>MODIFIED_ON TIMESTAMP</para>
+
+ <para>The default ID column name is "PK_ID", but this can be
+ over-ridden by specifying the new name in the properties
+ file:</para>
+
+ <para><property>isis.persistor.sql.pk_id=id</property></para>
+
+ <para><property>ID column: ID</property></para>
+
+ <para><property>Used internally by Isis to record services, in the
+ table "ISIS_ADMIN_SERVICES".</property></para>
+ </sect3>
+
+ <sect3>
+ <title>Properties</title>
+
+ <para>Most properties are named as per the class property. This
+ means you must take care not to use SQL reserved labels are property
+ names. The exceptions are collections and multi-field values (e.g.
+ Money).</para>
+ </sect3>
+
+ <sect3>
+ <title>Collections</title>
+
+ <para>Collections are mapped onto the child class:</para>
+
+ <para>If a parent class (some.package.Parent) has a collection of
+ (some.other.package.Child) named "children", the child table
+ (ISIS_CHILD) gets a column labeled "FK_PARENT_CHILDREN" of type
+ primarykey. The child property is assigned the ID of the parent
+ class.</para>
+
+ <para>This means that a given child can only appear in one parent's
+ collection of the same name.</para>
+ </sect3>
+
+ <sect3>
+ <title>Multi-field values</title>
+
+ <para>Some value types need more than 1 field to store their values,
+ e.g. Money - some.package.class#price.</para>
+
+ <para>In this case, the SQL objectstore creates 2 fields, price1 and
+ price2.</para>
+
+ <para>See "<code>JdbcMoneyValueMapper</code>", which extends
+ "<code>AbstractJdbcMultiFieldMapping</code>".</para>
+ </sect3>
+ </sect2>
+ </sect1>
+
+ <sect1>
+ <title>Number of instances returned by queries</title>
+
+ <para>By default, only up to 100 object instances are returned by
+ queries. This value can be changed by specifying:</para>
+
+ <para><property>isis.persistor.sql.maxinstances=100</property></para>
+ </sect1>
+
+ <sect1>
+ <title>Versioning</title>
+
+ <para>Isis uses a version number to assist in detecting concurrency
+ conflicts.</para>
+
+ <para>However, if you need to turn off versioning completely, or for a
+ particular table, you can control it with:</para>
+
+ <para><property>isis.persistor.sql.default.versioning=false</property></para>
+
+ <para>for global control, or by table:</para>
+
+ <para><property>isis.persistor.sql.default.versioning.members=false</property></para>
+ </sect1>
+
+ <sect1>
+ <title>Password values</title>
+
+ <para>The <code>JdbcPasswordValueMapper</code> value mapper has the
+ ability to (weakly) encode the password value strings stored in the
+ database tables.</para>
+
+ <para>By adding the following property values:</para>
+
+ <blockquote>
+ <para><property>isis.persistor.sql.default.password.seed=<random
+ string></property></para>
+
+ <para><property>isis.persistor.sql.default.password.length=<integer
+ length></property></para>
+ </blockquote>
+
+ <para>You can enable a weak password encoding/decoding scheme that will
+ obscure password values from casual browsers of your database
+ tables.</para>
+
+ <para>The length of all stored passwords is the same, and determined by
+ the <property>isis.persistor.sql.default.password.length</property>
+ property. This length must not exceed the SQL storage, as defined in
+ <xref linkend="sec.mappers.modifiable-values" />.</para>
+
+ <para>The passwords are convolved with the value of the string given by
+ the <property>isis.persistor.sql.default.password.seed</property>
+ property, and the resulting string is stored in the database
+ table.</para>
+
+ <para>If <property>isis.persistor.sql.default.password.seed</property>
+ is undefined (null), the passwords are stored as plain text.</para>
+ </sect1>
+ </chapter>
+
+ <chapter id="ch.supported.dbs">
+ <title>Supported Database Servers</title>
+
+ <abstract>
+ <para>Which SQL database servers have been used?</para>
+ </abstract>
+
+ <sect1>
+ <!--content: List of database servers tested.-->
+
+ <title id="sec.servers.tested">Tested</title>
+
+ <para>The following database servers are tested in the object store
+ integration tests:<itemizedlist>
+ <listitem>
+ <para>HSQLDB (tested against 1.8.0.10)</para>
+ </listitem>
+
+ <listitem>
+ <para>Postgresql (tested on 8.3.12-ubuntu9.04)</para>
+ </listitem>
+
+ <listitem>
+ <para>MySQL (tested on 5.1.31-1ubuntu2)</para>
+ </listitem>
+
+ <listitem>
+ <para>Microsoft SQL Server 2008 (Only from 2008 is DATE and TIME
+ supported)</para>
+ </listitem>
+ </itemizedlist></para>
+
+ <sect2>
+ <title>HSQLDB</title>
+
+ <para></para>
+ </sect2>
+
+ <sect2>
+ <title>Postgresql</title>
+
+ <para><blockquote>
+ <para><property>isis.persistor.sql.jdbc.driver=org.hsqldb.jdbcDriver</property></para>
+
+ <para><property>isis.persistor.sql.jdbc.connection=jdbc:hsqldb:file:hsql-db/tests</property></para>
+
+ <para><property>isis.persistor.sql.jdbc.user=sa</property></para>
+
+ <para><property>isis.persistor.sql.jdbc.password=</property></para>
+ </blockquote>The default <classname>TimeStamp</classname> and
+ <classname>DateTime</classname> SQL data class is DATETIME, which does
+ not work on Postgresql. Here, the default must be replaced with the
+ following properties file entries:</para>
+
+ <blockquote>
+ <para>isis.persistor.sql.datatypes.timestamp=TIMESTAMP</para>
+
+ <para>isis.persistor.sql.datatypes.datetme=TIMESTAMP</para>
+
+ <para>isis.persistor.sql.datatypes.double=DOUBLE PRECISION</para>
+ </blockquote>
+
+ <para></para>
+ </sect2>
+
+ <sect2>
+ <title>MySQL</title>
+
+ <para>There was an issue with storing and correctly retrieving date
+ (time) values - a special "try .. catch" has been used to ensure that
+ UTC temporal values are correctly retrieved.</para>
+
+ <para>The following data type overrides may be required:</para>
+
+ <blockquote>
+ <para>isis.persistor.sql.datatypes.double=DOUBLE PRECISION</para>
+ </blockquote>
+
+ <para></para>
+ </sect2>
+
+ <sect2>
+ <title>Microsoft SQL Server 2008</title>
+
+ <para>The sourceforge driver seemed to work well enough for
+ testing.</para>
+
+ <para>The tested connection parameters were:</para>
+
+ <para><blockquote>
+ <para># SQL Server </para>
+
+ <para>#isis.persistence.sql.jdbc.driver=com.microsoft.sqlserver.jdbc.SQLServerDriver</para>
+
+ <para>isis.persistence.sql.jdbc.driver=net.sourceforge.jtds.jdbc.Driver</para>
+
+ <para>isis.persistence.sql.jdbc.connection=jdbc:jtds:sqlserver://<server>;databaseName=<database></para>
+
+ <para>isis.persistence.sql.jdbc.user=<user></para>
+
+ <para>isis.persistence.sql.jdbc.password=<password></para>
+ </blockquote></para>
+
+ <para></para>
+ </sect2>
+
+ <sect2>
+ <title>IBM DB2 (v8)</title>
+
+ <para>Beware! This version of DB2 has a very small limit on table and
+ column names. You will have to keep your domain class and property
+ names short to suit, especially collections!</para>
+
+ <para>The tested connection parameters were:</para>
+
+ <blockquote>
+ <para># DB2 test</para>
+
+ <para>
+ isis.persistence.sql.jdbc.driver=com.ibm.db2.jcc.DB2Driver</para>
+
+ <para>
+ isis.persistence.sql.jdbc.connection=jdbc:db2://<host>:50000/<database></para>
+
+ <para> isis.persistence.sql.jdbc.user=<user></para>
+
+ <para> isis.persistence.sql.jdbc.password=<password></para>
+ </blockquote>
+ </sect2>
+ </sect1>
+
+ <sect1>
+ <title>Tested values</title>
+
+ <para>The following value types have been tested (stored and
+ retrieved):</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>standard values: integer, short, long (INT), float, double
+ (FLOAT), char (CHAR(2)).</para>
+ </listitem>
+
+ <listitem>
+ <para>standard classes: Money (FLOAT and VARCHAR(3)), Percentage
+ (FLOAT), Password (VARCHAR(12)), Color (INT), String (VARCHAR
+ (65)).</para>
+ </listitem>
+
+ <listitem>
+ <para>Special value mappers:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><code>org.apache.isis.applib.value.date</code> and
+ <code>java.sql.date</code> (DATE, via
+ <code>org.apache.isis.alternatives.objectstore.sql.jdbc.JdbcDateMapper</code>)</para>
+ </listitem>
+
+ <listitem>
+ <para>Time, DateTime (DATETIME), java.sql.Time, java.util.Date,
+ java.sql.Timestamp (DATETIME), TimeStamp (DATETIME) blah</para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+
+ <listitem>
+ <para></para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Default automapper is installed by
+ <code>org.apache.isis.alternatives.objectstore.sql.FieldMappingFactoryInstaller</code>
+ ..</para>
+
+ <para>Default automapper is
+ <code>org.apache.isis.objectstore.sql.jdbc.installer.JdbcFieldMappingFactoryInstaller</code></para>
+
+ <para></para>
+ </sect1>
+ </chapter>
+
+ <chapter>
+ <title id="sec.defaults">Defaults</title>
+
+ <para>The SQL objectstore exposes several defaults that can be replaced
+ either in configuration or at runtime.</para>
+
+ <para>The class
+ <code>org.apache.isis.objectstore.sql.Defaults</code>
+ contains the following:</para>
+
+ <para>Programmatic, at runtime:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>TimeZone: <code>setTimeZone(DateTimeZone.UTC)</code></para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Configuration, e.g. in isis.properties:</para>
+
+ <para><itemizedlist>
+ <listitem>
+ <para>Primary key column:</para>
+
+ <para><property>isis.persistor.sql.default.pk_id=pk_id</property></para>
+ </listitem>
+
+ <listitem>
+ <para>Service ID column:</para>
+
+ <para><property>isis.persistor.sql.default.id=id</property></para>
+ </listitem>
+
+ <listitem>
+ <para>Maximum records returned by objectstore methods that return a
+ list/collection, such as <code>allMatches()</code>, etc:</para>
+
+ <para><property><property>isis.persistor.sql.default.maxinstances=100</property></property></para>
+ </listitem>
+
+ <listitem>
+ <para id="sec.defaults.tableprefix" xreflabel="Table Prefix">Table
+ prefix. The default prefix "isis_" is added to all table created by
+ the object store. This prefix can be replaced, or left off entirely
+ by specifying an empty value, e.g.:</para>
+
+ <para><property>isis.persistor.sql.default.tableprefix=</property></para>
+ </listitem>
+
+ <listitem>
+ <para>See "Modifiable values", <link
+ linkend="sec.mappers.modifiable-values">above</link>.</para>
+ </listitem>
+ </itemizedlist></para>
+ </chapter>
+
+ <chapter>
+ <title>Polymorphism</title>
+
+ <para>The SQL Objectstore supports polymorphic classes. Both properties
+ and collections are supported.</para>
+
+ <sect1>
+ <title>Properties</title>
+
+ <para>Polymorphic properties are handled with
+ <classname>JdbcPolymorphicObjectReferenceMapping</classname>.</para>
+
+ <para>Two columns are created in the class table: The actual instance
+ class type, and the instance ID.</para>
+ </sect1>
+
+ <sect1>
+ <title>Collections</title>
+
+ <para>There are two implementations currently selectable by editting
+ <classname>AbstractAutoMapper</classname>.</para>
+
+ <para>The default implementation is
+ <classname>PolymorphicForeignKeyInChildCollectionBaseMapper</classname>.</para>
+
+ <sect2>
+ <title>PolymorphicForeignKeyInChildCollectionBaseMapper</title>
+
+ <para>Creates two columns in the child class table, to contain the
+ child class type and child class ID.</para>
+
+ <para>Used to map 1-to-many collections by creating, in the collection
+ child table (which may be an interface or abstract class), 2 columns
+ per parent collection.</para>
+
+ <para>The first column is the class type, the second is the entity
+ ID.</para>
+
+ <para>The columns are named by combining the final part of the parent
+ class name and the collection variable name.</para>
+
+ <para>Collection loading is a case of iterating through all collection
+ entries and adding the named class instance of the stored ID.</para>
+ </sect2>
+
+ <sect2>
+ <title>PolymorphicForeignKeyInChildCollectionMapper</title>
+
+ <para>Used to map 1-to-many collections by creating, in the child
+ table, 1 column per parent collection.</para>
+
+ <para>The column is named by combining the final part of the parent
+ class name and the collection variable name.</para>
+
+ <para>Collection loading is a case of iterating through all subclasses
+ of the collection type and adding class instances of the stored ID.
+ This could be problematic if different subclasses have the same
+ ID.</para>
+ </sect2>
+ </sect1>
+ </chapter>
+
+ <appendix>
+ <title>Example</title>
+
+ <para></para>
+
+ <para><property>isis.persistor.sql.jdbc.driver=com.mysql.jdbc.Driver</property></para>
+
+ <para><property>isis.persistor.sql.jdbc.connection=jdbc:mysql://localhost/isis_data</property></para>
+
+ <para><property>isis.persistor.sql.jdbc.user=isis</property></para>
+
+ <para><property>isis.persistor.sql.jdbc.password=noneofyourbusiness</property></para>
+
+ <para><property></property></para>
+
+ <para><property>isis.persistor.sql.default.versioning.Member=false
+ </property></para>
+
+ <para><property>isis.persistor.sql.automapper.type.Member.address=VARCHAR(255)
+ </property></para>
+
+ <para><property>isis.persistor.sql.automapper.type.Member.comments=VARCHAR(255)
+ </property></para>
+ </appendix>
+
+ <appendix>
+ <title>Correspondence</title>
+
+ <abstract>
+ <para>Who said what, when?</para>
+ </abstract>
+
+ <sect1 id="sec.module-ui">
+ <title>Email</title>
+
+ <para></para>
+
+ <sect2>
+ <title>2011/02/01, Response by Dan Haywood</title>
+
+ <para><remark>At the moment I'm just putting down whatever comes into
+ my head, with a view of later editting it into a coherent document,
+ but obviously there are questions of level of detail, etc. For
+ example, should I really bother with describing what persistance is,
+ and how the domain classes are introspected?! </remark></para>
+
+ <para>I don't think so, no.</para>
+
+ <para>That said, if you do find yourself writing "introductory"
+ material like this, we can always move it. The place for such stuff
+ should probably be the "core" documentation
+ (core/src/docbkx/guide/isis-core.xml), which is what I'm chipping away
+ at myself.</para>
+
+ <para><remark>Yes to: what SQL data types are used by default, yes to:
+ how to override the automappers and provide your own mapper, yes to:
+ how collections and parent/child relatonships are handled, etc.
+ </remark></para>
+
+ <para>It'd be worth showing examples of all the different types of
+ mappings supported, as well as those that are not supported.</para>
+
+ <para>For example:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Id generation - how is that supported?</para>
+ </listitem>
+
+ <listitem>
+ <para>optimistic locking - how supported?</para>
+ </listitem>
+
+ <listitem>
+ <para>one<->many</para>
+ </listitem>
+
+ <listitem>
+ <para>one<-many</para>
+ </listitem>
+
+ <listitem>
+ <para>one->many</para>
+ </listitem>
+
+ <listitem>
+ <para>two one<->many relationships between same types A and
+ B (if I recall, this isn't supported?)</para>
+ </listitem>
+
+ <listitem>
+ <para>many<->many</para>
+ </listitem>
+
+ <listitem>
+ <para>many->many - subtype relationships (roll-up, roll-down,
+ table per subtype)</para>
+ </listitem>
+
+ <listitem>
+ <para>polymorphic relationships to interfaces</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>You could also peruse some of the Hibernate ORM docs for
+ examples of mappings there; that might prompt you to consider some
+ additional scenarios.</para>
+
+ <para><remark>What else?</remark></para>
+
+ <para>Obviously, any additional entries required in isis.properties to
+ enable the SQL object store. In addition, as background it'd be worth
+ explaining about the different subcomponents used by the object store:
+ the OidGenerator, PersistAlgorithm, TransactionManager Also, I know
+ that the JPA object store has to configure a different
+ ClassSubstitutor/ObjectFactory, because it leaves the ORM to perform
+ cglib proxying. I don't think you have any similar restrictions, but
+ it might be worth saying so.</para>
+ </sect2>
+ </sect1>
+
+ <sect1>
+ <title>Edit History</title>
+
+ <para>Last editted: Kevin, 17/10/2011.<!--dd/mm/yyyy--></para>
+ </sect1>
+ </appendix>
+</book>
http://git-wip-us.apache.org/repos/asf/isis/blob/7a7836e3/mothballed/docbkx/mothballed/component/viewer/html/impl/src/docbkx/guide/isis-html-viewer.xml
----------------------------------------------------------------------
diff --git a/mothballed/docbkx/mothballed/component/viewer/html/impl/src/docbkx/guide/isis-html-viewer.xml b/mothballed/docbkx/mothballed/component/viewer/html/impl/src/docbkx/guide/isis-html-viewer.xml
new file mode 100644
index 0000000..ad4f63f
--- /dev/null
+++ b/mothballed/docbkx/mothballed/component/viewer/html/impl/src/docbkx/guide/isis-html-viewer.xml
@@ -0,0 +1,226 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
+"file:./src/docbkx/dtd-4.5/docbookx.dtd">
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+<book>
+ <bookinfo>
+ <title><?eval ${docbkxGuideTitle}?></title>
+
+ <subtitle><?eval ${docbkxGuideSubTitle}?></subtitle>
+
+ <releaseinfo><?eval ${project.version}?></releaseinfo>
+
+ <authorgroup>
+ <author>
+ <firstname>Robert</firstname>
+
+ <surname>Matthews</surname>
+ </author>
+ </authorgroup>
+
+ <legalnotice>
+ <para>Permission is granted to make and distribute verbatim copies of
+ this manual provided that the copyright notice and this permission
+ notice are preserved on all copies.</para>
+ </legalnotice>
+ </bookinfo>
+
+ <!-- front matter -->
+
+ <toc></toc>
+
+ <preface id="preface">
+ <title>Preface</title>
+
+ <para><emphasis>Apache Isis</emphasis> is designed to allow programmers
+ rapidly develop domain-driven applications following the <ulink
+ url="http://en.wikipedia.org/wiki/Naked_Objects">Naked Objects</ulink>
+ pattern. It is made up of a core framework plus a number of alternate
+ implementations, and supports various viewers and object stores. Apache
+ Isis is hosted at the <ulink url="http://incubator.apache.org/isis">Apache
+ Foundation</ulink>, and is licensed under <ulink
+ url="http://www.apache.org/licenses/LICENSE-2.0.html">Apache Software
+ License v2</ulink>.</para>
+
+ <para>This guide is written for programmers looking to customize,
+ configure and deploy <emphasis>Apache Isis</emphasis> applications using
+ the <emphasis>HTML viewer</emphasis> as the primary user interface.</para>
+ </preface>
+
+ <!-- main content -->
+
+ <chapter id="chp.Intro">
+ <title>Introduction</title>
+
+ <abstract>
+ <para>*** yada yada</para>
+ </abstract>
+
+ <sect1>
+ <title>***</title>
+
+ <para><emphasis>*** yada yada</emphasis></para>
+ </sect1>
+ </chapter>
+
+ <chapter>
+ <title>***</title>
+
+ <abstract>
+ <para>*** yada yada</para>
+ </abstract>
+
+ <sect1>
+ <title>***</title>
+
+ <para><emphasis>*** yada yada</emphasis></para>
+
+ <sect2>
+ <title>Properties</title>
+
+ <para>The html viewer has only two properties</para>
+
+ <programlisting format="linespecific">isis.viewer.html.debug=true</programlisting>
+
+ <para>Which enables debugging on the web controller.</para>
+
+ <programlisting format="linespecific">isis.viewer.html.encoding=UTF-8</programlisting>
+
+ <para>Which enables the character set encoding used by the
+ HTTPServletRequest. This is ISO-8859-1 by default.</para>
+
+ <para></para>
+
+ <para></para>
+ </sect2>
+
+ <sect2>
+ <title>Reading HTML viewer specific properties</title>
+
+ <para></para>
+
+ <para></para>
+
+ <programlisting><web.xml>
+ ...
+ <context-param>
+ <param-name>isis.viewers</param-name>
+ <param-value>html</param-value>
+ </context-param>
+ ...
+</web.xml></programlisting>
+
+ <para>This will cause the viewer_html.properties file to be read if it
+ is present.</para>
+
+ <para></para>
+
+ <para></para>
+
+ <para>NB: the value for this parameter is actually comma-separated, to
+ allow for multiple viewers to be configured in the same webapp.</para>
+
+ <para></para>
+ </sect2>
+
+ <sect2>
+ <title>Hosting multiple viewers at the same time</title>
+
+ <para></para>
+
+ <para>*** combine the servlet, filter and listener entries.</para>
+
+ <para></para>
+
+ <para></para>
+
+ <para></para>
+
+ <para>By default the htmlviewer uses ".app" as the suffix for its .
+ this can be changed using the viewer-html.suffix init-param in
+ web.xml:</para>
+
+ <para></para>
+
+ <para>avoid name clashes.</para>
+
+ <para></para>
+
+ <para></para>
+
+ <para></para>
+
+ <programlisting><web.xml>
+ ...
+ <context-param>
+ <param-name>viewer-html.suffix</param-name>
+ <param-value>htmlviewer</param-value>
+ </context-param>
+ ...
+</web.xml></programlisting>
+
+ <para></para>
+
+ <para></para>
+
+ <para></para>
+ </sect2>
+
+ <sect2>
+ <title>Debugging</title>
+
+ <para>To turn on debuging use the debugon command, e.g.,</para>
+
+ <programlisting>http://localhost:8080/debugon.app</programlisting>
+
+ <para>A control bar appears a the bottom of the page allowing you to
+ display the object graph, specification, connection details and so on.
+ To turn it off use the debugoff command:</para>
+
+ <programlisting>http://localhost:8080/debugoff.app</programlisting>
+
+ <para>The debug pages can be displayed directly by providing the
+ commands: debug; spec and dump - along with a object id if necessary.
+ For example to view the details about the specification for object 28
+ use:</para>
+
+ <programlisting>http://localhost:8080/spec.app?id=28</programlisting>
+
+ <para></para>
+
+ <para></para>
+ </sect2>
+ </sect1>
+ </chapter>
+
+ <appendix>
+ <title>***</title>
+
+ <abstract>
+ <para>*** yada yada</para>
+ </abstract>
+
+ <sect1 id="sec.module-ui">
+ <title>***</title>
+
+ <para>*** yada yada</para>
+ </sect1>
+ </appendix>
+</book>
http://git-wip-us.apache.org/repos/asf/isis/blob/7a7836e3/mothballed/docbkx/src/docbkx/dtd-4.5/ChangeLog
----------------------------------------------------------------------
diff --git a/mothballed/docbkx/src/docbkx/dtd-4.5/ChangeLog b/mothballed/docbkx/src/docbkx/dtd-4.5/ChangeLog
new file mode 100644
index 0000000..06f59ce
--- /dev/null
+++ b/mothballed/docbkx/src/docbkx/dtd-4.5/ChangeLog
@@ -0,0 +1,106 @@
+2006-10-03 13:23 nwalsh
+
+ * trunk/docbook/sgml/catalog.xml, trunk/docbook/sgml/docbook.cat,
+ trunk/docbook/sgml/docbook.dcl, trunk/docbook/sgml/docbook.dtd,
+ calstblx.dtd, catalog.xml, dbcentx.mod, dbgenent.mod,
+ dbhierx.mod, dbnotnx.mod, dbpoolx.mod, docbook.cat,
+ docbookx.dtd, htmltblx.mod: DocBook V4.5 released
+
+2006-06-02 11:28 nwalsh
+
+ * calstblx.dtd, catalog.xml, dbcentx.mod, dbgenent.mod,
+ dbhierx.mod, dbnotnx.mod, dbpoolx.mod, docbook.cat,
+ docbookx.dtd, freshmeat.xsl, htmltblx.mod: Changed copyright
+ dates and version numbers
+
+2006-05-30 20:58 nwalsh
+
+ * htmltblx.mod: Supply tag omission markers in SGML; suppress
+ xml:lang in SGML
+
+2006-03-07 13:11 nwalsh
+
+ * trunk/docbook/sgml/catalog.xml, trunk/docbook/sgml/docbook.cat,
+ trunk/docbook/sgml/docbook.dcl, trunk/docbook/sgml/docbook.dtd,
+ calstblx.dtd, catalog.xml, dbcentx.mod, dbgenent.mod,
+ dbhierx.mod, dbnotnx.mod, dbpoolx.mod, docbook.cat,
+ docbookx.dtd, freshmeat.xsl, htmltblx.mod: Change version
+ numbers to 4.5CR2
+
+2006-03-07 13:03 nwalsh
+
+ * dbpoolx.mod: Allow citebiblioid anywhere the other citation
+ elements are allowed
+
+2006-02-16 21:12 nwalsh
+
+ * calstblx.dtd, catalog.xml, dbcentx.mod, dbgenent.mod,
+ dbhierx.mod, dbnotnx.mod, dbpoolx.mod, docbook.cat,
+ docbookx.dtd, freshmeat.xsl, htmltblx.mod: DocBook V4.5 released
+
+2005-06-29 10:59 nwalsh
+
+ * trunk/docbook/sgml/docbook.dtd, docbookx.dtd: DocBook V4.5CR1
+ Released
+
+2005-06-29 10:58 nwalsh
+
+ * trunk/docbook/sgml/catalog.xml, trunk/docbook/sgml/docbook.cat,
+ trunk/docbook/sgml/docbook.dcl, calstblx.dtd, catalog.xml,
+ dbcentx.mod, dbgenent.mod, dbhierx.mod, dbnotnx.mod,
+ dbpoolx.mod, docbook.cat, htmltblx.mod: Updated version number
+
+2005-06-29 10:53 nwalsh
+
+ * freshmeat.xsl: Tweaked freshmeat changes
+
+2005-06-24 21:09 nwalsh
+
+ * calstblx.dtd, dbhierx.mod, dbpoolx.mod, htmltblx.mod,
+ soextblx.dtd: Added doc: structured comments
+
+2005-05-05 11:41 nwalsh
+
+ * trunk/docbook/sgml/docbook.dtd, docbookx.dtd: DocBook V4.5b1
+ Released
+
+2005-05-05 11:40 nwalsh
+
+ * trunk/docbook/sgml/catalog.xml, trunk/docbook/sgml/docbook.cat,
+ trunk/docbook/sgml/docbook.dcl, calstblx.dtd, catalog.xml,
+ dbcentx.mod, dbgenent.mod, dbhierx.mod, dbnotnx.mod,
+ dbpoolx.mod, docbook.cat, htmltblx.mod: Updated version number
+
+2005-05-05 11:37 nwalsh
+
+ * freshmeat.xsl: Prepare for 4.5b1
+
+2005-05-05 10:59 nwalsh
+
+ * dbpoolx.mod: RFE 1055480: Make revnumber optional
+
+2005-05-05 10:54 nwalsh
+
+ * dbpoolx.mod, htmltblx.mod: Allow common attributes on HTML table
+ elements
+
+2005-05-05 10:48 nwalsh
+
+ * dbpoolx.mod: Added termdef
+
+2005-05-05 10:39 nwalsh
+
+ * dbpoolx.mod: Added mathphrase
+
+2005-05-05 10:33 nwalsh
+
+ * dbhierx.mod: RFE 1070458: Allow colophon in article
+
+2005-05-05 10:32 nwalsh
+
+ * dbpoolx.mod: RFE 1070770: Allow procedure in example
+
+2005-05-05 10:21 nwalsh
+
+ * dbpoolx.mod: Add isrn to list of biblioid class attribute values
+
http://git-wip-us.apache.org/repos/asf/isis/blob/7a7836e3/mothballed/docbkx/src/docbkx/dtd-4.5/README
----------------------------------------------------------------------
diff --git a/mothballed/docbkx/src/docbkx/dtd-4.5/README b/mothballed/docbkx/src/docbkx/dtd-4.5/README
new file mode 100644
index 0000000..6fc60c4
--- /dev/null
+++ b/mothballed/docbkx/src/docbkx/dtd-4.5/README
@@ -0,0 +1,8 @@
+README for the DocBook XML DTD
+
+For more information about DocBook, please see
+
+ http://www.oasis-open.org/docbook/
+
+Please send all questions, comments, concerns, and bug reports to the
+DocBook mailing list: docbook@lists.oasis-open.org
http://git-wip-us.apache.org/repos/asf/isis/blob/7a7836e3/mothballed/docbkx/src/docbkx/dtd-4.5/calstblx.dtd
----------------------------------------------------------------------
diff --git a/mothballed/docbkx/src/docbkx/dtd-4.5/calstblx.dtd b/mothballed/docbkx/src/docbkx/dtd-4.5/calstblx.dtd
new file mode 100644
index 0000000..fac58d7
--- /dev/null
+++ b/mothballed/docbkx/src/docbkx/dtd-4.5/calstblx.dtd
@@ -0,0 +1,215 @@
+<!-- ...................................................................... -->
+<!-- DocBook CALS Table Model V4.5 ........................................ -->
+<!-- File calstblx.mod .................................................... -->
+
+<!-- Copyright 1992-2002 HaL Computer Systems, Inc.,
+ O'Reilly & Associates, Inc., ArborText, Inc., Fujitsu Software
+ Corporation, Norman Walsh, Sun Microsystems, Inc., and the
+ Organization for the Advancement of Structured Information
+ Standards (OASIS).
+
+ This DTD is based on the CALS Table Model
+ PUBLIC "-//USA-DOD//DTD Table Model 951010//EN"
+
+ $Id: calstblx.dtd 6340 2006-10-03 13:23:24Z nwalsh $
+
+ Permission to use, copy, modify and distribute the DocBook DTD
+ and its accompanying documentation for any purpose and without fee
+ is hereby granted in perpetuity, provided that the above copyright
+ notice and this paragraph appear in all copies. The copyright
+ holders make no representation about the suitability of the DTD for
+ any purpose. It is provided "as is" without expressed or implied
+ warranty.
+
+ If you modify the DocBook DTD in any way, except for declaring and
+ referencing additional sets of general entities and declaring
+ additional notations, label your DTD as a variant of DocBook. See
+ the maintenance documentation for more information.
+
+ Please direct all questions, bug reports, or suggestions for
+ changes to the docbook@lists.oasis-open.org mailing list. For more
+ information, see http://www.oasis-open.org/docbook/.
+-->
+
+<!-- ...................................................................... -->
+
+<!-- This module contains the definitions for the CALS Table Model
+ converted to XML. It has been modified slightly for use in the
+ combined HTML/CALS models supported by DocBook V4.5.
+-->
+
+<!-- These definitions are not directly related to the table model, but are
+ used in the default CALS table model and are usually defined elsewhere
+ (and prior to the inclusion of this table module) in a CALS DTD. -->
+
+<!ENTITY % bodyatt "">
+<!ENTITY % secur "">
+
+<!-- no if zero(s),
+ yes if any other digits value -->
+
+<!ENTITY % yesorno 'CDATA'>
+<!ENTITY % titles 'title?'>
+
+<!-- default for use in entry content -->
+
+<!ENTITY % paracon '#PCDATA'>
+
+<!--
+The parameter entities as defined below provide the CALS table model
+as published (as part of the Example DTD) in MIL-HDBK-28001.
+
+These following declarations provide the CALS-compliant default definitions
+for these entities. However, these entities can and should be redefined
+(by giving the appropriate parameter entity declaration(s) prior to the
+reference to this Table Model declaration set entity) to fit the needs
+of the current application.
+-->
+
+<!ENTITY % tbl.table.name "(table|chart)">
+<!ENTITY % tbl.table-titles.mdl "%titles;,">
+<!ENTITY % tbl.table-main.mdl "(tgroup+|graphic+)">
+<!ENTITY % tbl.table.mdl "%tbl.table-titles.mdl; %tbl.table-main.mdl;">
+<!ENTITY % tbl.table.att '
+ tabstyle CDATA #IMPLIED
+ tocentry %yesorno; #IMPLIED
+ shortentry %yesorno; #IMPLIED
+ orient (port|land) #IMPLIED
+ pgwide %yesorno; #IMPLIED '>
+<!ENTITY % tbl.tgroup.mdl "colspec*,spanspec*,thead?,tfoot?,tbody">
+<!ENTITY % tbl.tgroup.att '
+ tgroupstyle CDATA #IMPLIED '>
+<!ENTITY % tbl.hdft.mdl "colspec*,row+">
+<!ENTITY % tbl.row.mdl "(entry|entrytbl)+">
+<!ENTITY % tbl.entrytbl.mdl "colspec*,spanspec*,thead?,tbody">
+<!ENTITY % tbl.entry.mdl "(para|warning|caution|note|legend|%paracon;)*">
+
+<!ENTITY % tbl.frame.attval "top|bottom|topbot|all|sides|none">
+<!ENTITY % tbl.tbody.mdl "row+">
+
+<!-- ===== Element and attribute declarations follow. ===== -->
+
+<!--doc:A formal table in a document.-->
+<!ELEMENT table %ho; (%tbl.table.mdl;)>
+
+<!ATTLIST table
+ frame (%tbl.frame.attval;) #IMPLIED
+ colsep %yesorno; #IMPLIED
+ rowsep %yesorno; #IMPLIED
+ %tbl.table.att;
+ %bodyatt;
+ %secur;
+>
+
+<!--doc:A wrapper for the main content of a table, or part of a table.-->
+<!ELEMENT tgroup %ho; (%tbl.tgroup.mdl;) >
+
+<!ATTLIST tgroup
+ cols CDATA #REQUIRED
+ %tbl.tgroup.att;
+ colsep %yesorno; #IMPLIED
+ rowsep %yesorno; #IMPLIED
+ align (left|right|center|justify|char) #IMPLIED
+ char CDATA #IMPLIED
+ charoff CDATA #IMPLIED
+ %secur;
+>
+
+<!--doc:Specifications for a column in a table.-->
+<!ELEMENT colspec %ho; EMPTY >
+
+<!ATTLIST colspec
+ colnum CDATA #IMPLIED
+ colname CDATA #IMPLIED
+ colwidth CDATA #IMPLIED
+ colsep %yesorno; #IMPLIED
+ rowsep %yesorno; #IMPLIED
+ align (left|right|center|justify|char) #IMPLIED
+ char CDATA #IMPLIED
+ charoff CDATA #IMPLIED
+>
+
+<!--doc:Formatting information for a spanned column in a table.-->
+<!ELEMENT spanspec %ho; EMPTY >
+
+<!ATTLIST spanspec
+ namest CDATA #REQUIRED
+ nameend CDATA #REQUIRED
+ spanname CDATA #REQUIRED
+ colsep %yesorno; #IMPLIED
+ rowsep %yesorno; #IMPLIED
+ align (left|right|center|justify|char) #IMPLIED
+ char CDATA #IMPLIED
+ charoff CDATA #IMPLIED
+>
+
+<!--doc:A table header consisting of one or more rows.-->
+<!ELEMENT thead %ho; (%tbl.hdft.mdl;)>
+<!ATTLIST thead
+ valign (top|middle|bottom) #IMPLIED
+ %secur;
+>
+
+<!--doc:A table footer consisting of one or more rows.-->
+<!ELEMENT tfoot %ho; (%tbl.hdft.mdl;)>
+<!ATTLIST tfoot
+ valign (top|middle|bottom) #IMPLIED
+ %secur;
+>
+
+<!--doc:A wrapper for the rows of a table or informal table.-->
+<!ELEMENT tbody %ho; (%tbl.tbody.mdl;)>
+
+<!ATTLIST tbody
+ valign (top|middle|bottom) #IMPLIED
+ %secur;
+>
+
+<!--doc:A row in a table.-->
+<!ELEMENT row %ho; (%tbl.row.mdl;)>
+
+<!ATTLIST row
+ rowsep %yesorno; #IMPLIED
+ valign (top|middle|bottom) #IMPLIED
+ %secur;
+>
+
+<!--doc:A subtable appearing in place of an Entry in a table.-->
+<!ELEMENT entrytbl %ho; (%tbl.entrytbl.mdl;)>
+
+<!ATTLIST entrytbl
+ cols CDATA #REQUIRED
+ %tbl.tgroup.att;
+ colname CDATA #IMPLIED
+ spanname CDATA #IMPLIED
+ namest CDATA #IMPLIED
+ nameend CDATA #IMPLIED
+ colsep %yesorno; #IMPLIED
+ rowsep %yesorno; #IMPLIED
+ align (left|right|center|justify|char) #IMPLIED
+ char CDATA #IMPLIED
+ charoff CDATA #IMPLIED
+ %secur;
+>
+
+<!--doc:A cell in a table.-->
+<!ELEMENT entry %ho; (%tbl.entry.mdl;)*>
+
+<!ATTLIST entry
+ colname CDATA #IMPLIED
+ namest CDATA #IMPLIED
+ nameend CDATA #IMPLIED
+ spanname CDATA #IMPLIED
+ morerows CDATA #IMPLIED
+ colsep %yesorno; #IMPLIED
+ rowsep %yesorno; #IMPLIED
+ align (left|right|center|justify|char) #IMPLIED
+ char CDATA #IMPLIED
+ charoff CDATA #IMPLIED
+ rotate %yesorno; #IMPLIED
+ valign (top|middle|bottom) #IMPLIED
+ %secur;
+>
+
+<!-- End of DocBook CALS Table Model V4.5 ................................. -->
+<!-- ...................................................................... -->
http://git-wip-us.apache.org/repos/asf/isis/blob/7a7836e3/mothballed/docbkx/src/docbkx/dtd-4.5/catalog.xml
----------------------------------------------------------------------
diff --git a/mothballed/docbkx/src/docbkx/dtd-4.5/catalog.xml b/mothballed/docbkx/src/docbkx/dtd-4.5/catalog.xml
new file mode 100644
index 0000000..f75c1d7
--- /dev/null
+++ b/mothballed/docbkx/src/docbkx/dtd-4.5/catalog.xml
@@ -0,0 +1,124 @@
+<?xml version='1.0'?>
+<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog" prefer="public">
+
+<!-- ...................................................................... -->
+<!-- XML Catalog data for DocBook XML V4.5 ................................ -->
+<!-- File catalog.xml ..................................................... -->
+
+<!-- Please direct all questions, bug reports, or suggestions for
+ changes to the docbook@lists.oasis-open.org mailing list. For more
+ information, see http://www.oasis-open.org/.
+ -->
+
+<!-- This is the catalog data file for DocBook V4.5. It is provided as
+ a convenience in building your own catalog files. You need not use
+ the filenames listed here, and need not use the filename method of
+ identifying storage objects at all. See the documentation for
+ detailed information on the files associated with the DocBook DTD.
+ See XML Catalogs at http://www.oasis-open.org/committees/entity/ for
+ detailed information on supplying and using catalog data.
+ -->
+
+<!-- ...................................................................... -->
+<!-- DocBook driver file .................................................. -->
+
+<public publicId="-//OASIS//DTD DocBook XML V4.5//EN"
+ uri="docbookx.dtd"/>
+
+<system systemId="http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"
+ uri="docbookx.dtd"/>
+
+<system systemId="http://docbook.org/xml/4.5/docbookx.dtd"
+ uri="docbookx.dtd"/>
+
+<!-- ...................................................................... -->
+<!-- DocBook modules ...................................................... -->
+
+<public publicId="-//OASIS//DTD DocBook CALS Table Model V4.5//EN"
+ uri="calstblx.dtd"/>
+
+<public publicId="-//OASIS//ELEMENTS DocBook XML HTML Tables V4.5//EN"
+ uri="htmltblx.mod"/>
+
+<public publicId="-//OASIS//DTD XML Exchange Table Model 19990315//EN"
+ uri="soextblx.dtd"/>
+
+<public publicId="-//OASIS//ELEMENTS DocBook Information Pool V4.5//EN"
+ uri="dbpoolx.mod"/>
+
+<public publicId="-//OASIS//ELEMENTS DocBook Document Hierarchy V4.5//EN"
+ uri="dbhierx.mod"/>
+
+<public publicId="-//OASIS//ENTITIES DocBook Additional General Entities V4.5//EN"
+ uri="dbgenent.mod"/>
+
+<public publicId="-//OASIS//ENTITIES DocBook Notations V4.5//EN"
+ uri="dbnotnx.mod"/>
+
+<public publicId="-//OASIS//ENTITIES DocBook Character Entities V4.5//EN"
+ uri="dbcentx.mod"/>
+
+<!-- ...................................................................... -->
+<!-- ISO entity sets ...................................................... -->
+
+<public publicId="ISO 8879:1986//ENTITIES Diacritical Marks//EN//XML"
+ uri="ent/isodia.ent"/>
+
+<public publicId="ISO 8879:1986//ENTITIES Numeric and Special Graphic//EN//XML"
+ uri="ent/isonum.ent"/>
+
+<public publicId="ISO 8879:1986//ENTITIES Publishing//EN//XML"
+ uri="ent/isopub.ent"/>
+
+<public publicId="ISO 8879:1986//ENTITIES General Technical//EN//XML"
+ uri="ent/isotech.ent"/>
+
+<public publicId="ISO 8879:1986//ENTITIES Added Latin 1//EN//XML"
+ uri="ent/isolat1.ent"/>
+
+<public publicId="ISO 8879:1986//ENTITIES Added Latin 2//EN//XML"
+ uri="ent/isolat2.ent"/>
+
+<public publicId="ISO 8879:1986//ENTITIES Greek Letters//EN//XML"
+ uri="ent/isogrk1.ent"/>
+
+<public publicId="ISO 8879:1986//ENTITIES Monotoniko Greek//EN//XML"
+ uri="ent/isogrk2.ent"/>
+
+<public publicId="ISO 8879:1986//ENTITIES Greek Symbols//EN//XML"
+ uri="ent/isogrk3.ent"/>
+
+<public publicId="ISO 8879:1986//ENTITIES Alternative Greek Symbols//EN//XML"
+ uri="ent/isogrk4.ent"/>
+
+<public publicId="ISO 8879:1986//ENTITIES Added Math Symbols: Arrow Relations//EN//XML"
+ uri="ent/isoamsa.ent"/>
+
+<public publicId="ISO 8879:1986//ENTITIES Added Math Symbols: Binary Operators//EN//XML"
+ uri="ent/isoamsb.ent"/>
+
+<public publicId="ISO 8879:1986//ENTITIES Added Math Symbols: Delimiters//EN//XML"
+ uri="ent/isoamsc.ent"/>
+
+<public publicId="ISO 8879:1986//ENTITIES Added Math Symbols: Negated Relations//EN//XML"
+ uri="ent/isoamsn.ent"/>
+
+<public publicId="ISO 8879:1986//ENTITIES Added Math Symbols: Ordinary//EN//XML"
+ uri="ent/isoamso.ent"/>
+
+<public publicId="ISO 8879:1986//ENTITIES Added Math Symbols: Relations//EN//XML"
+ uri="ent/isoamsr.ent"/>
+
+<public publicId="ISO 8879:1986//ENTITIES Box and Line Drawing//EN//XML"
+ uri="ent/isobox.ent"/>
+
+<public publicId="ISO 8879:1986//ENTITIES Russian Cyrillic//EN//XML"
+ uri="ent/isocyr1.ent"/>
+
+<public publicId="ISO 8879:1986//ENTITIES Non-Russian Cyrillic//EN//XML"
+ uri="ent/isocyr2.ent"/>
+
+<!-- End of catalog data for DocBook XML V4.5 ............................. -->
+<!-- ...................................................................... -->
+
+</catalog>
http://git-wip-us.apache.org/repos/asf/isis/blob/7a7836e3/mothballed/docbkx/src/docbkx/dtd-4.5/dbcentx.mod
----------------------------------------------------------------------
diff --git a/mothballed/docbkx/src/docbkx/dtd-4.5/dbcentx.mod b/mothballed/docbkx/src/docbkx/dtd-4.5/dbcentx.mod
new file mode 100644
index 0000000..60de99f
--- /dev/null
+++ b/mothballed/docbkx/src/docbkx/dtd-4.5/dbcentx.mod
@@ -0,0 +1,384 @@
+<!-- ...................................................................... -->
+<!-- DocBook character entities module V4.5 ............................... -->
+<!-- File dbcentx.mod ..................................................... -->
+
+<!-- Copyright 1992-2004 HaL Computer Systems, Inc.,
+ O'Reilly & Associates, Inc., ArborText, Inc., Fujitsu Software
+ Corporation, Norman Walsh, Sun Microsystems, Inc., and the
+ Organization for the Advancement of Structured Information
+ Standards (OASIS).
+
+ $Id: dbcentx.mod 6340 2006-10-03 13:23:24Z nwalsh $
+
+ Permission to use, copy, modify and distribute the DocBook DTD
+ and its accompanying documentation for any purpose and without fee
+ is hereby granted in perpetuity, provided that the above copyright
+ notice and this paragraph appear in all copies. The copyright
+ holders make no representation about the suitability of the DTD for
+ any purpose. It is provided "as is" without expressed or implied
+ warranty.
+
+ If you modify the DocBook DTD in any way, except for declaring and
+ referencing additional sets of general entities and declaring
+ additional notations, label your DTD as a variant of DocBook. See
+ the maintenance documentation for more information.
+
+ Please direct all questions, bug reports, or suggestions for
+ changes to the docbook@lists.oasis-open.org mailing list. For more
+ information, see http://www.oasis-open.org/docbook/.
+-->
+
+<!-- ...................................................................... -->
+
+<!-- This module contains the entity declarations for the standard ISO
+ entity sets used by DocBook.
+
+ In DTD driver files referring to this module, please use an entity
+ declaration that uses the public identifier shown below:
+
+ <!ENTITY % dbcent PUBLIC
+ "-//OASIS//ENTITIES DocBook Character Entities V4.5//EN"
+ "dbcentx.mod">
+ %dbcent;
+
+ See the documentation for detailed information on the parameter
+ entity and module scheme used in DocBook, customizing DocBook and
+ planning for interchange, and changes made since the last release
+ of DocBook.
+-->
+
+<!-- ...................................................................... -->
+
+<![%sgml.features;[
+
+<!ENTITY % ISOamsa.module "INCLUDE">
+<![ %ISOamsa.module; [
+<!ENTITY % ISOamsa PUBLIC
+"ISO 8879:1986//ENTITIES Added Math Symbols: Arrow Relations//EN">
+<!--end of ISOamsa.module-->]]>
+
+<!ENTITY % ISOamsb.module "INCLUDE">
+<![ %ISOamsb.module; [
+<!ENTITY % ISOamsb PUBLIC
+"ISO 8879:1986//ENTITIES Added Math Symbols: Binary Operators//EN">
+<!--end of ISOamsb.module-->]]>
+
+<!ENTITY % ISOamsc.module "INCLUDE">
+<![ %ISOamsc.module; [
+<!ENTITY % ISOamsc PUBLIC
+"ISO 8879:1986//ENTITIES Added Math Symbols: Delimiters//EN">
+<!--end of ISOamsc.module-->]]>
+
+<!ENTITY % ISOamsn.module "INCLUDE">
+<![ %ISOamsn.module; [
+<!ENTITY % ISOamsn PUBLIC
+"ISO 8879:1986//ENTITIES Added Math Symbols: Negated Relations//EN">
+<!--end of ISOamsn.module-->]]>
+
+<!ENTITY % ISOamso.module "INCLUDE">
+<![ %ISOamso.module; [
+<!ENTITY % ISOamso PUBLIC
+"ISO 8879:1986//ENTITIES Added Math Symbols: Ordinary//EN">
+<!--end of ISOamso.module-->]]>
+
+<!ENTITY % ISOamsr.module "INCLUDE">
+<![ %ISOamsr.module; [
+<!ENTITY % ISOamsr PUBLIC
+"ISO 8879:1986//ENTITIES Added Math Symbols: Relations//EN">
+<!--end of ISOamsr.module-->]]>
+
+<!ENTITY % ISObox.module "INCLUDE">
+<![ %ISObox.module; [
+<!ENTITY % ISObox PUBLIC
+"ISO 8879:1986//ENTITIES Box and Line Drawing//EN">
+<!--end of ISObox.module-->]]>
+
+<!ENTITY % ISOcyr1.module "INCLUDE">
+<![ %ISOcyr1.module; [
+<!ENTITY % ISOcyr1 PUBLIC
+"ISO 8879:1986//ENTITIES Russian Cyrillic//EN">
+<!--end of ISOcyr1.module-->]]>
+
+<!ENTITY % ISOcyr2.module "INCLUDE">
+<![ %ISOcyr2.module; [
+<!ENTITY % ISOcyr2 PUBLIC
+"ISO 8879:1986//ENTITIES Non-Russian Cyrillic//EN">
+<!--end of ISOcyr2.module-->]]>
+
+<!ENTITY % ISOdia.module "INCLUDE">
+<![ %ISOdia.module; [
+<!ENTITY % ISOdia PUBLIC
+"ISO 8879:1986//ENTITIES Diacritical Marks//EN">
+<!--end of ISOdia.module-->]]>
+
+<!ENTITY % ISOgrk1.module "INCLUDE">
+<![ %ISOgrk1.module; [
+<!ENTITY % ISOgrk1 PUBLIC
+"ISO 8879:1986//ENTITIES Greek Letters//EN">
+<!--end of ISOgrk1.module-->]]>
+
+<!ENTITY % ISOgrk2.module "INCLUDE">
+<![ %ISOgrk2.module; [
+<!ENTITY % ISOgrk2 PUBLIC
+"ISO 8879:1986//ENTITIES Monotoniko Greek//EN">
+<!--end of ISOgrk2.module-->]]>
+
+<!ENTITY % ISOgrk3.module "INCLUDE">
+<![ %ISOgrk3.module; [
+<!ENTITY % ISOgrk3 PUBLIC
+"ISO 8879:1986//ENTITIES Greek Symbols//EN">
+<!--end of ISOgrk3.module-->]]>
+
+<!ENTITY % ISOgrk4.module "INCLUDE">
+<![ %ISOgrk4.module; [
+<!ENTITY % ISOgrk4 PUBLIC
+"ISO 8879:1986//ENTITIES Alternative Greek Symbols//EN">
+<!--end of ISOgrk4.module-->]]>
+
+<!ENTITY % ISOlat1.module "INCLUDE">
+<![ %ISOlat1.module; [
+<!ENTITY % ISOlat1 PUBLIC
+"ISO 8879:1986//ENTITIES Added Latin 1//EN">
+<!--end of ISOlat1.module-->]]>
+
+<!ENTITY % ISOlat2.module "INCLUDE">
+<![ %ISOlat2.module; [
+<!ENTITY % ISOlat2 PUBLIC
+"ISO 8879:1986//ENTITIES Added Latin 2//EN">
+<!--end of ISOlat2.module-->]]>
+
+<!ENTITY % ISOnum.module "INCLUDE">
+<![ %ISOnum.module; [
+<!ENTITY % ISOnum PUBLIC
+"ISO 8879:1986//ENTITIES Numeric and Special Graphic//EN">
+<!--end of ISOnum.module-->]]>
+
+<!ENTITY % ISOpub.module "INCLUDE">
+<![ %ISOpub.module; [
+<!ENTITY % ISOpub PUBLIC
+"ISO 8879:1986//ENTITIES Publishing//EN">
+<!--end of ISOpub.module-->]]>
+
+<!ENTITY % ISOtech.module "INCLUDE">
+<![ %ISOtech.module; [
+<!ENTITY % ISOtech PUBLIC
+"ISO 8879:1986//ENTITIES General Technical//EN">
+<!--end of ISOtech.module-->]]>
+
+<!--end of sgml.features-->]]>
+
+<![%xml.features;[
+
+<!ENTITY % ISOamsa.module "INCLUDE">
+<![%ISOamsa.module;[
+<!ENTITY % ISOamsa PUBLIC
+"ISO 8879:1986//ENTITIES Added Math Symbols: Arrow Relations//EN//XML"
+"ent/isoamsa.ent">
+<!--end of ISOamsa.module-->]]>
+
+<!ENTITY % ISOamsb.module "INCLUDE">
+<![%ISOamsb.module;[
+<!ENTITY % ISOamsb PUBLIC
+"ISO 8879:1986//ENTITIES Added Math Symbols: Binary Operators//EN//XML"
+"ent/isoamsb.ent">
+<!--end of ISOamsb.module-->]]>
+
+<!ENTITY % ISOamsc.module "INCLUDE">
+<![%ISOamsc.module;[
+<!ENTITY % ISOamsc PUBLIC
+"ISO 8879:1986//ENTITIES Added Math Symbols: Delimiters//EN//XML"
+"ent/isoamsc.ent">
+<!--end of ISOamsc.module-->]]>
+
+<!ENTITY % ISOamsn.module "INCLUDE">
+<![%ISOamsn.module;[
+<!ENTITY % ISOamsn PUBLIC
+"ISO 8879:1986//ENTITIES Added Math Symbols: Negated Relations//EN//XML"
+"ent/isoamsn.ent">
+<!--end of ISOamsn.module-->]]>
+
+<!ENTITY % ISOamso.module "INCLUDE">
+<![%ISOamso.module;[
+<!ENTITY % ISOamso PUBLIC
+"ISO 8879:1986//ENTITIES Added Math Symbols: Ordinary//EN//XML"
+"ent/isoamso.ent">
+<!--end of ISOamso.module-->]]>
+
+<!ENTITY % ISOamsr.module "INCLUDE">
+<![%ISOamsr.module;[
+<!ENTITY % ISOamsr PUBLIC
+"ISO 8879:1986//ENTITIES Added Math Symbols: Relations//EN//XML"
+"ent/isoamsr.ent">
+<!--end of ISOamsr.module-->]]>
+
+<!ENTITY % ISObox.module "INCLUDE">
+<![%ISObox.module;[
+<!ENTITY % ISObox PUBLIC
+"ISO 8879:1986//ENTITIES Box and Line Drawing//EN//XML"
+"ent/isobox.ent">
+<!--end of ISObox.module-->]]>
+
+<!ENTITY % ISOcyr1.module "INCLUDE">
+<![%ISOcyr1.module;[
+<!ENTITY % ISOcyr1 PUBLIC
+"ISO 8879:1986//ENTITIES Russian Cyrillic//EN//XML"
+"ent/isocyr1.ent">
+<!--end of ISOcyr1.module-->]]>
+
+<!ENTITY % ISOcyr2.module "INCLUDE">
+<![%ISOcyr2.module;[
+<!ENTITY % ISOcyr2 PUBLIC
+"ISO 8879:1986//ENTITIES Non-Russian Cyrillic//EN//XML"
+"ent/isocyr2.ent">
+<!--end of ISOcyr2.module-->]]>
+
+<!ENTITY % ISOdia.module "INCLUDE">
+<![%ISOdia.module;[
+<!ENTITY % ISOdia PUBLIC
+"ISO 8879:1986//ENTITIES Diacritical Marks//EN//XML"
+"ent/isodia.ent">
+<!--end of ISOdia.module-->]]>
+
+<!ENTITY % ISOgrk1.module "INCLUDE">
+<![%ISOgrk1.module;[
+<!ENTITY % ISOgrk1 PUBLIC
+"ISO 8879:1986//ENTITIES Greek Letters//EN//XML"
+"ent/isogrk1.ent">
+<!--end of ISOgrk1.module-->]]>
+
+<!ENTITY % ISOgrk2.module "INCLUDE">
+<![%ISOgrk2.module;[
+<!ENTITY % ISOgrk2 PUBLIC
+"ISO 8879:1986//ENTITIES Monotoniko Greek//EN//XML"
+"ent/isogrk2.ent">
+<!--end of ISOgrk2.module-->]]>
+
+<!ENTITY % ISOgrk3.module "INCLUDE">
+<![%ISOgrk3.module;[
+<!ENTITY % ISOgrk3 PUBLIC
+"ISO 8879:1986//ENTITIES Greek Symbols//EN//XML"
+"ent/isogrk3.ent">
+<!--end of ISOgrk3.module-->]]>
+
+<!ENTITY % ISOgrk4.module "INCLUDE">
+<![%ISOgrk4.module;[
+<!ENTITY % ISOgrk4 PUBLIC
+"ISO 8879:1986//ENTITIES Alternative Greek Symbols//EN//XML"
+"ent/isogrk4.ent">
+<!--end of ISOgrk4.module-->]]>
+
+<!ENTITY % ISOlat1.module "INCLUDE">
+<![%ISOlat1.module;[
+<!ENTITY % ISOlat1 PUBLIC
+"ISO 8879:1986//ENTITIES Added Latin 1//EN//XML"
+"ent/isolat1.ent">
+<!--end of ISOlat1.module-->]]>
+
+<!ENTITY % ISOlat2.module "INCLUDE">
+<![%ISOlat2.module;[
+<!ENTITY % ISOlat2 PUBLIC
+"ISO 8879:1986//ENTITIES Added Latin 2//EN//XML"
+"ent/isolat2.ent">
+<!--end of ISOlat2.module-->]]>
+
+<!ENTITY % ISOnum.module "INCLUDE">
+<![%ISOnum.module;[
+<!ENTITY % ISOnum PUBLIC
+"ISO 8879:1986//ENTITIES Numeric and Special Graphic//EN//XML"
+"ent/isonum.ent">
+<!--end of ISOnum.module-->]]>
+
+<!ENTITY % ISOpub.module "INCLUDE">
+<![%ISOpub.module;[
+<!ENTITY % ISOpub PUBLIC
+"ISO 8879:1986//ENTITIES Publishing//EN//XML"
+"ent/isopub.ent">
+<!--end of ISOpub.module-->]]>
+
+<!ENTITY % ISOtech.module "INCLUDE">
+<![%ISOtech.module;[
+<!ENTITY % ISOtech PUBLIC
+"ISO 8879:1986//ENTITIES General Technical//EN//XML"
+"ent/isotech.ent">
+<!--end of ISOtech.module-->]]>
+
+<!--end of xml.features-->]]>
+
+<![ %ISOamsa.module; [
+%ISOamsa;
+]]>
+
+<![ %ISOamsb.module; [
+%ISOamsb;
+]]>
+
+<![ %ISOamsc.module; [
+%ISOamsc;
+]]>
+
+<![ %ISOamsn.module; [
+%ISOamsn;
+]]>
+
+<![ %ISOamso.module; [
+%ISOamso;
+]]>
+
+<![ %ISOamsr.module; [
+%ISOamsr;
+]]>
+
+<![ %ISObox.module; [
+%ISObox;
+]]>
+
+<![ %ISOcyr1.module; [
+%ISOcyr1;
+]]>
+
+<![ %ISOcyr2.module; [
+%ISOcyr2;
+]]>
+
+<![ %ISOdia.module; [
+%ISOdia;
+]]>
+
+<![ %ISOgrk1.module; [
+%ISOgrk1;
+]]>
+
+<![ %ISOgrk2.module; [
+%ISOgrk2;
+]]>
+
+<![ %ISOgrk3.module; [
+%ISOgrk3;
+]]>
+
+<![ %ISOgrk4.module; [
+%ISOgrk4;
+]]>
+
+<![ %ISOlat1.module; [
+%ISOlat1;
+]]>
+
+<![ %ISOlat2.module; [
+%ISOlat2;
+]]>
+
+<![ %ISOnum.module; [
+%ISOnum;
+]]>
+
+<![ %ISOpub.module; [
+%ISOpub;
+]]>
+
+<![ %ISOtech.module; [
+%ISOtech;
+]]>
+
+<!-- End of DocBook character entity sets module V4.5 ..................... -->
+<!-- ...................................................................... -->
http://git-wip-us.apache.org/repos/asf/isis/blob/7a7836e3/mothballed/docbkx/src/docbkx/dtd-4.5/dbgenent.mod
----------------------------------------------------------------------
diff --git a/mothballed/docbkx/src/docbkx/dtd-4.5/dbgenent.mod b/mothballed/docbkx/src/docbkx/dtd-4.5/dbgenent.mod
new file mode 100644
index 0000000..ff5ba90
--- /dev/null
+++ b/mothballed/docbkx/src/docbkx/dtd-4.5/dbgenent.mod
@@ -0,0 +1,41 @@
+<!-- ...................................................................... -->
+<!-- DocBook additional general entities V4.5 ............................. -->
+
+<!-- Copyright 1992-2004 HaL Computer Systems, Inc.,
+ O'Reilly & Associates, Inc., ArborText, Inc., Fujitsu Software
+ Corporation, Norman Walsh, Sun Microsystems, Inc., and the
+ Organization for the Advancement of Structured Information
+ Standards (OASIS).
+
+ In DTD driver files referring to this module, please use an entity
+ declaration that uses the public identifier shown below:
+
+ <!ENTITY % dbgenent PUBLIC
+ "-//OASIS//ENTITIES DocBook Additional General Entities V4.5//EN"
+ "dbgenent.mod">
+ %dbgenent;
+-->
+
+<!-- File dbgenent.mod .................................................... -->
+
+<!-- You can edit this file to add the following:
+
+ o General entity declarations of any kind. For example:
+
+ <!ENTITY productname "WinWidget"> (small boilerplate)
+ <!ENTITY legal-notice SYSTEM "notice.sgm"> (large boilerplate)
+
+ o Notation declarations. For example:
+
+ <!NOTATION chicken-scratch SYSTEM>
+
+ o Declarations for and references to external parameter entities
+ containing collections of any of the above. For example:
+
+ <!ENTITY % all-titles PUBLIC "-//DocTools//ELEMENTS Book Titles//EN"
+ "booktitles.ent">
+ %all-titles;
+-->
+
+<!-- End of DocBook additional general entities V4.5 ...................... -->
+<!-- ...................................................................... -->