From 55ef98782bd7a276b05e2d94f55cfc46155e7444 Mon Sep 17 00:00:00 2001
From: Mark Craig <mark.craig@forgerock.com>
Date: Fri, 25 Nov 2011 16:15:15 +0000
Subject: [PATCH] Unsatisfying hack to workaround COMMWEB-35: Allow inter-document links in core doc sources

---
 opendj3/src/main/docbkx/admin-guide/chap-admin-tools.xml     |   92 +++++++++++------
 opendj3/src/main/docbkx/targetdatabase.dtd                   |   49 +++++++++
 opendj3/src/main/docbkx/admin-guide/chap-account-lockout.xml |    7 
 opendj3/src/main/docbkx/shared/man-dsconfig.xml              |   16 +-
 opendj3/src/main/docbkx/admin-guide/chap-server-process.xml  |    4 
 opendj3/src/main/docbkx/olinkdb-single-html-pages.xml        |   47 +++++++++
 opendj3/src/main/docbkx/admin-guide/appendix-standards.xml   |    2 
 opendj3/src/main/docbkx/install-guide/chap-install-cli.xml   |    5 
 opendj3/src/main/docbkx/release-notes/chap-whats-new.xml     |    5 
 opendj3/src/main/docbkx/admin-guide/appendix-l10n.xml        |    2 
 opendj3/pom.xml                                              |   61 ++++++++++++
 11 files changed, 240 insertions(+), 50 deletions(-)

diff --git a/opendj3/pom.xml b/opendj3/pom.xml
index 1a906eb..ba6e750 100644
--- a/opendj3/pom.xml
+++ b/opendj3/pom.xml
@@ -302,6 +302,66 @@
             </configuration>
           </execution>
           <execution>
+           <id>olinkdb-admin-guide</id>
+           <phase>process-resources</phase>
+           <configuration>
+            <includes>*/OpenDJ-Admin-Guide.xml</includes>
+            <collectXrefTargets>only</collectXrefTargets>
+            <targetsFilename>${basedir}/target/admin-guide.target.db</targetsFilename>
+            <postProcess>
+             <delete dir="${docbkx-out}/html/admin-guide"/>
+            </postProcess>
+           </configuration>
+           <goals>
+            <goal>generate-html</goal>
+           </goals>
+          </execution>
+          <execution>
+           <id>olinkdb-dev-guide</id>
+           <phase>process-resources</phase>
+           <configuration>
+            <includes>*/OpenDJ-Dev-Guide.xml</includes>
+            <collectXrefTargets>only</collectXrefTargets>
+            <targetsFilename>${basedir}/target/dev-guide.target.db</targetsFilename>
+            <postProcess>
+             <delete dir="${docbkx-out}/html/dev-guide"/>
+            </postProcess>
+           </configuration>
+           <goals>
+            <goal>generate-html</goal>
+           </goals>
+          </execution>
+          <execution>
+           <id>olinkdb-install-guide</id>
+           <phase>process-resources</phase>
+           <configuration>
+            <includes>*/OpenDJ-Install-Guide.xml</includes>
+            <collectXrefTargets>only</collectXrefTargets>
+            <targetsFilename>${basedir}/target/install-guide.target.db</targetsFilename>
+            <postProcess>
+             <delete dir="${docbkx-out}/html/install-guide"/>
+            </postProcess>
+           </configuration>
+           <goals>
+            <goal>generate-html</goal>
+           </goals>
+          </execution>
+          <execution>
+           <id>olinkdb-release-notes</id>
+           <phase>process-resources</phase>
+           <configuration>
+            <includes>*/OpenDJ-Release-Notes.xml</includes>
+            <collectXrefTargets>only</collectXrefTargets>
+            <targetsFilename>${basedir}/target/release-notes.target.db</targetsFilename>
+            <postProcess>
+             <delete dir="${docbkx-out}/html/release-notes"/>
+            </postProcess>
+           </configuration>
+           <goals>
+            <goal>generate-html</goal>
+           </goals>
+          </execution>
+          <execution>
             <id>doc-single-html</id>
             <phase>pre-site</phase>
             <goals>
@@ -311,6 +371,7 @@
               <chunkedOutput>false</chunkedOutput>
               <htmlCustomization>${dbstyle-dir}/html/coredoc.xsl</htmlCustomization>
 
+              <targetDatabaseDocument>${docbkx-src}/olinkdb-single-html-pages.xml</targetDatabaseDocument>
               <!-- Resources required but not copied by DocBook.xsl. -->
               <preProcess>
                 <copy todir='${docbkx-out}/html/admin-guide/images'>
diff --git a/opendj3/src/main/docbkx/admin-guide/appendix-l10n.xml b/opendj3/src/main/docbkx/admin-guide/appendix-l10n.xml
index 4a02eb3..68350f5 100644
--- a/opendj3/src/main/docbkx/admin-guide/appendix-l10n.xml
+++ b/opendj3/src/main/docbkx/admin-guide/appendix-l10n.xml
@@ -39,7 +39,7 @@
  <section xml:id="supported-languages">
   <title>OpenDJ Languages</title>
   <indexterm><primary>Languages</primary></indexterm>
-  <para>OpenDJ <?eval ${product.version}?> software has been localized
+  <para>OpenDJ <?eval ${docTargetVersion}?> software has been localized
   in the following languages.</para>
   
   <itemizedlist>
diff --git a/opendj3/src/main/docbkx/admin-guide/appendix-standards.xml b/opendj3/src/main/docbkx/admin-guide/appendix-standards.xml
index db1bdc5..9cd35e1 100644
--- a/opendj3/src/main/docbkx/admin-guide/appendix-standards.xml
+++ b/opendj3/src/main/docbkx/admin-guide/appendix-standards.xml
@@ -31,7 +31,7 @@
  xmlns:xinclude='http://www.w3.org/2001/XInclude'>
  <title>Standards, RFCs, &amp; Internet-Drafts</title>
 
- <para>OpenDJ <?eval ${product.version}?> software implements the following
+ <para>OpenDJ <?eval ${docTargetVersion}?> software implements the following
  RFCs, Internet-Drafts, and standards.</para>
 
  <!-- Document [link], description -->
diff --git a/opendj3/src/main/docbkx/admin-guide/chap-account-lockout.xml b/opendj3/src/main/docbkx/admin-guide/chap-account-lockout.xml
index 5b9c433..c7ffa70 100644
--- a/opendj3/src/main/docbkx/admin-guide/chap-account-lockout.xml
+++ b/opendj3/src/main/docbkx/admin-guide/chap-account-lockout.xml
@@ -203,15 +203,16 @@
   to the entry. OpenDJ generates password expiration notifications when a
   user tries to bind.</para>
   
-  <!-- TODO: olink to the controls appendix. -->
   <para>For example, if you set up OpenDJ to send a notification about password
   expiration, that notification gets triggered when the user authenticates
   during the password expiration warning interval. OpenDJ does not
   automatically scan entries to send password expiry notifications. OpenDJ does
   implement controls that you can pass in an LDAP search to determine whether a
   user's password is about to expire. See the appendix on
-  <citetitle>LDAP Controls</citetitle> for a list. You can send notifications
-  then based on the results of your search.</para>
+  <link xlink:href="admin-guide#appendix-controls"
+  xlink:role="http://docbook.org/xlink/role/olink"><citetitle>LDAP
+  Controls</citetitle></link> for a list. You can send notifications then
+  based on the results of your search.</para>
   
   <procedure xml:id="mail-account-status-notifications">
    <title>To Mail Users About Account Status</title>
diff --git a/opendj3/src/main/docbkx/admin-guide/chap-admin-tools.xml b/opendj3/src/main/docbkx/admin-guide/chap-admin-tools.xml
index ee5cff9..28b0166 100644
--- a/opendj3/src/main/docbkx/admin-guide/chap-admin-tools.xml
+++ b/opendj3/src/main/docbkx/admin-guide/chap-admin-tools.xml
@@ -184,19 +184,17 @@
   <para>The following list uses the UNIX names for the tools. On Windows
   all command-line tools have the extension .bat.</para>
   
-  <!-- TODO: Add olinks for all tools at least to the reference documentation
-       and perhaps also to the Admin Guide chapters that show how the tools
-       are used. For example, the ldap* tools could have links into
-       chap-ldap-operations. -->
   <variablelist>
    <varlistentry>
-    <term>backup</term>
+    <term><link xlink:href="admin-guide#backup-1"
+    xlink:role="http://docbook.org/xlink/role/olink">backup</link></term>
     <listitem>
      <para>Backup or schedule backup of directory data.</para>
     </listitem>
    </varlistentry>
    <varlistentry>
-    <term>base64</term>
+    <term><link xlink:href="admin-guide#base64-1"
+    xlink:role="http://docbook.org/xlink/role/olink">base64</link></term>
     <listitem>
      <para>Encode and decode data in base64 format.</para>
      <para>Base64 encoding represents binary data in ASCII, and can be used to
@@ -204,7 +202,9 @@
     </listitem>
    </varlistentry>
    <varlistentry>
-    <term>create-rc-script (UNIX)</term>
+    <term><link xlink:href="admin-guide#create-rc-script-1"
+    xlink:role="http://docbook.org/xlink/role/olink">create-rc-script</link>
+    (UNIX)</term>
     <listitem>
      <para>Generate a script you can use to start, stop, and restart the server
      either directly or at system boot and shutdown. Use create-rc-script -f
@@ -212,13 +212,15 @@
     </listitem>
    </varlistentry>
    <varlistentry>
-    <term>dbtest</term>
+    <term><link xlink:href="admin-guide#dbtest-1"
+    xlink:role="http://docbook.org/xlink/role/olink">dbtest</link></term>
     <listitem>
      <para>Debug JE databases.</para>
     </listitem>
    </varlistentry>
    <varlistentry>
-    <term>dsconfig</term>
+    <term><link xlink:href="admin-guide#dsconfig-1"
+    xlink:role="http://docbook.org/xlink/role/olink">dsconfig</link></term>
     <listitem>
      <para>The dsconfig command is the primary command-line tool for viewing
      and editing OpenDJ configuration. When started without arguments, dsconfig
@@ -236,63 +238,72 @@
     </listitem>
    </varlistentry>
    <varlistentry>
-    <term>dsframework</term>
+    <term><link xlink:href="admin-guide#dsframework-1"
+    xlink:role="http://docbook.org/xlink/role/olink">dsframework</link></term>
     <listitem>
      <para>Manage server registration, server groups, and administrative
      users.</para>
     </listitem>
    </varlistentry>
    <varlistentry>
-    <term>dsjavaproperties</term>
+    <term><link xlink:href="admin-guide#dsjavaproperties-1"
+    xlink:role="http://docbook.org/xlink/role/olink">dsjavaproperties</link></term>
     <listitem>
      <para>Apply changes you make to OpenDJ/config/java.properties, which sets
      JVM runtime options.</para>
     </listitem>
    </varlistentry>
    <varlistentry>
-    <term>dsreplication</term>
+    <term><link xlink:href="admin-guide#dsreplication-1"
+    xlink:role="http://docbook.org/xlink/role/olink">dsreplication</link></term>
     <listitem>
      <para>Configure data replication between directory servers to keep their
      contents in sync.</para>
     </listitem>
    </varlistentry>
    <varlistentry>
-    <term>encode-password</term>
+    <term><link xlink:href="admin-guide#encode-password-1"
+    xlink:role="http://docbook.org/xlink/role/olink">encode-password</link></term>
     <listitem>
      <para>Encode a clear text password according to one of the available
      storage schemes.</para>
     </listitem>
    </varlistentry>
    <varlistentry>
-    <term>export-ldif</term>
+    <term><link xlink:href="admin-guide#export-ldif-1"
+    xlink:role="http://docbook.org/xlink/role/olink">export-ldif</link></term>
     <listitem>
      <para>Export directory data to LDAP Data Interchange Format, a standard,
      portable, text-based representation of directory content.</para>
     </listitem>
    </varlistentry>
    <varlistentry>
-    <term>import-ldif</term>
+    <term><link xlink:href="admin-guide#import-ldif-1"
+    xlink:role="http://docbook.org/xlink/role/olink">import-ldif</link></term>
     <listitem>
      <para>Load LDIF content into the directory, overwriting existing
      data.</para>
     </listitem>
    </varlistentry>
    <varlistentry>
-    <term>ldapcompare</term>
+    <term><link xlink:href="admin-guide#ldapcompare-1"
+    xlink:role="http://docbook.org/xlink/role/olink">ldapcompare</link></term>
     <listitem>
      <para>Compare the attribute values you specify with those stored on
      entries in the directory.</para>
     </listitem>
    </varlistentry>
    <varlistentry>
-    <term>ldapdelete</term>
+    <term><link xlink:href="admin-guide#ldapdelete-1"
+    xlink:role="http://docbook.org/xlink/role/olink">ldapdelete</link></term>
     <listitem>
      <para>Delete one entry or an entire branch of subordinate entries in the
      directory.</para>
     </listitem>
    </varlistentry>
    <varlistentry>
-    <term>ldapmodify</term>
+    <term><link xlink:href="admin-guide#ldapmodify-1"
+    xlink:role="http://docbook.org/xlink/role/olink">ldapmodify</link></term>
     <listitem>
      <para>Modify the specified attribute values for the specified
      entries.</para>
@@ -301,47 +312,54 @@
     </listitem>
    </varlistentry>
    <varlistentry>
-    <term>ldappasswordmodify</term>
+    <term><link xlink:href="admin-guide#ldappasswordmodify-1"
+    xlink:role="http://docbook.org/xlink/role/olink">ldappasswordmodify</link></term>
     <listitem>
      <para>Modify user passwords.</para>
     </listitem>
    </varlistentry>
    <varlistentry>
-    <term>ldapsearch</term>
+    <term><link xlink:href="admin-guide#ldapsearch-1"
+    xlink:role="http://docbook.org/xlink/role/olink">ldapsearch</link></term>
     <listitem>
      <para>Search a branch of directory data for entries matching the LDAP
      filter that you specify.</para>
     </listitem>
    </varlistentry>
    <varlistentry>
-    <term>ldif-diff</term>
+    <term><link xlink:href="admin-guide#ldif-diff-1"
+    xlink:role="http://docbook.org/xlink/role/olink">ldif-diff</link></term>
     <listitem>
      <para>Display differences between two LDIF files, with the resulting output
      having LDIF format.</para>
     </listitem>
    </varlistentry>
    <varlistentry>
-    <term>ldifmodify</term>
+    <term><link xlink:href="admin-guide#ldifmodify-1"
+    xlink:role="http://docbook.org/xlink/role/olink">ldifmodify</link></term>
     <listitem>
      <para>Similar to the ldapmodify command, modify specified attribute values
      for specified entries in an LDIF file.</para>
     </listitem>
    </varlistentry>
    <varlistentry>
-    <term>ldifsearch</term>
+    <term><link xlink:href="admin-guide#ldifsearch-1"
+    xlink:role="http://docbook.org/xlink/role/olink">ldifsearch</link></term>
     <listitem>
      <para>Similar to the ldapsearch command, search a branch of data in LDIF
      for entries matching the LDAP filter you specify.</para>
     </listitem>
    </varlistentry>
    <varlistentry>
-    <term>list-backends</term>
+    <term><link xlink:href="admin-guide#list-backends-1"
+    xlink:role="http://docbook.org/xlink/role/olink">list-backends</link></term>
     <listitem>
      <para>List backends and base DNs served by OpenDJ.</para>
     </listitem>
    </varlistentry>
    <varlistentry>
-    <term>make-ldif</term>
+    <term><link xlink:href="admin-guide#make-ldif-1"
+    xlink:role="http://docbook.org/xlink/role/olink">make-ldif</link></term>
     <listitem>
      <para>Generate directory data in LDIF, based on templates that define how
      the data should appear.</para>
@@ -351,51 +369,59 @@
     </listitem>
    </varlistentry>
    <varlistentry>
-    <term>manage-account</term>
+    <term><link xlink:href="admin-guide#manage-account-1"
+    xlink:role="http://docbook.org/xlink/role/olink">manage-account</link></term>
     <listitem>
      <para>Lock and unlock user accounts, and view and manipulate password
      policy state information.</para>
     </listitem>
    </varlistentry>
    <varlistentry>
-    <term>manage-tasks</term>
+    <term><link xlink:href="admin-guide#manage-tasks-1"
+    xlink:role="http://docbook.org/xlink/role/olink">manage-tasks</link></term>
     <listitem>
      <para>View information about tasks scheduled to run in the server, and
      cancel specified tasks.</para>
     </listitem>
    </varlistentry>
    <varlistentry>
-    <term>rebuild-index</term>
+    <term><link xlink:href="admin-guide#rebuild-index-1"
+    xlink:role="http://docbook.org/xlink/role/olink">rebuild-index</link></term>
     <listitem>
      <para>Rebuild an index stored in a JE backend.</para>
     </listitem>
    </varlistentry>
    <varlistentry>
-    <term>restore</term>
+    <term><link xlink:href="admin-guide#restore-1"
+    xlink:role="http://docbook.org/xlink/role/olink">restore</link></term>
     <listitem>
      <para>Restore user data from backup.</para>
     </listitem>
    </varlistentry>
    <varlistentry>
-    <term>start-ds</term>
+    <term><link xlink:href="admin-guide#start-ds-1"
+    xlink:role="http://docbook.org/xlink/role/olink">start-ds</link></term>
     <listitem>
      <para>Start OpenDJ directory server.</para>
     </listitem>
    </varlistentry>
    <varlistentry>
-    <term>status</term>
+    <term><link xlink:href="admin-guide#status-1"
+    xlink:role="http://docbook.org/xlink/role/olink">status</link></term>
     <listitem>
      <para>Display information about the server.</para>
     </listitem>
    </varlistentry>
    <varlistentry>
-    <term>stop-ds</term>
+    <term><link xlink:href="admin-guide#stop-ds-1"
+    xlink:role="http://docbook.org/xlink/role/olink">stop-ds</link></term>
     <listitem>
      <para>Stop OpenDJ directory server.</para>
     </listitem>
    </varlistentry>
    <varlistentry>
-    <term>verify-index</term>
+    <term><link xlink:href="admin-guide#verify-index-1"
+    xlink:role="http://docbook.org/xlink/role/olink">verify-index</link></term>
     <listitem>
      <para>Verify that an index stored in a JE backend is not corrupt.</para>
     </listitem>
diff --git a/opendj3/src/main/docbkx/admin-guide/chap-server-process.xml b/opendj3/src/main/docbkx/admin-guide/chap-server-process.xml
index 1c655a1..15f8af1 100644
--- a/opendj3/src/main/docbkx/admin-guide/chap-server-process.xml
+++ b/opendj3/src/main/docbkx/admin-guide/chap-server-process.xml
@@ -169,9 +169,9 @@
   content into memory when the server starts. Objects cached in memory do not
   survive a crash. By default, OpenDJ does not cache objects in memory before
   starting to accept client requests. You can however set a
-  <literal>preload-time-limit</literal> for the database cache of your
+  <link xlink:href="http://opendj.forgerock.org/opendj-server/configref/local-db-backend.html#preload-time-limit"
+  ><literal>preload-time-limit</literal></link> for the database cache of your
   backend if you do want to load objects into the database cache before
   OpenDJ begins accepting client connections.</para>
-  <!-- TODO: Add olink to preload-time-limit in config ref. -->
  </section>
 </chapter>
diff --git a/opendj3/src/main/docbkx/install-guide/chap-install-cli.xml b/opendj3/src/main/docbkx/install-guide/chap-install-cli.xml
index 8bee276..2b0d16c 100644
--- a/opendj3/src/main/docbkx/install-guide/chap-install-cli.xml
+++ b/opendj3/src/main/docbkx/install-guide/chap-install-cli.xml
@@ -116,7 +116,10 @@
    or on a PKCS#11 token. To import a signed certificate into a key store,
    you can use the Java <command>keytool</command> command.</para>
 
-   <!-- TODO: Add an olink when the functionality becomes available. -->
+   <para>See <link xlink:href="admin-guide#setup-server-cert"
+   xlink:role="http://docbook.org/xlink/role/olink"><citetitle>Preparing For
+   Secure Communications</citetitle></link> in the <citetitle>Administration
+   Guide</citetitle> for examples.</para>
   </step>
  </procedure>
 
diff --git a/opendj3/src/main/docbkx/olinkdb-single-html-pages.xml b/opendj3/src/main/docbkx/olinkdb-single-html-pages.xml
new file mode 100644
index 0000000..80dccd8
--- /dev/null
+++ b/opendj3/src/main/docbkx/olinkdb-single-html-pages.xml
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE targetset SYSTEM "./targetdatabase.dtd"[
+<!ENTITY admin-guide SYSTEM "../../../target/admin-guide.target.db">
+<!ENTITY dev-guide SYSTEM "../../../target/dev-guide.target.db">
+<!ENTITY install-guide SYSTEM "../../../target/install-guide.target.db">
+<!ENTITY release-notes SYSTEM "../../../target/release-notes.target.db">
+]>
+<targetset>
+ <targetsetinfo>Target DB for OpenDJ DocBook content, for use with single
+ HTML pages (non-chunked) only.</targetsetinfo>
+ <sitemap>
+  <dir name="doc">
+   <dir name="admin-guide">
+    <dir name="OpenDJ-Admin-Guide">
+     <document targetdoc="admin-guide"
+               baseuri="../admin-guide/OpenDJ-Admin-Guide.html">
+      &admin-guide;
+     </document>
+    </dir>
+   </dir>
+   <dir name="dev-guide">
+    <dir name="OpenDJ-Dev-Guide">
+     <document targetdoc="dev-guide"
+               baseuri="../dev-guide/OpenDJ-Dev-Guide.html">
+      &dev-guide;
+     </document>
+    </dir>
+   </dir>
+   <dir name="install-guide">
+    <dir name="OpenDJ-Install-Guide">
+     <document targetdoc="install-guide"
+               baseuri="../install-guide/OpenDJ-Install-Guide.html">
+      &install-guide;
+     </document>
+    </dir>
+   </dir>
+   <dir name="release-notes">
+    <dir name="OpenDJ-Release-Notes">
+     <document targetdoc="release-notes"
+               baseuri="../release-notes/OpenDJ-Release-Notes.html">
+      &release-notes;
+     </document>
+    </dir>
+   </dir>
+  </dir>
+ </sitemap>
+</targetset>
diff --git a/opendj3/src/main/docbkx/release-notes/chap-whats-new.xml b/opendj3/src/main/docbkx/release-notes/chap-whats-new.xml
index d64a6f6..0a7f976 100644
--- a/opendj3/src/main/docbkx/release-notes/chap-whats-new.xml
+++ b/opendj3/src/main/docbkx/release-notes/chap-whats-new.xml
@@ -77,11 +77,12 @@
       <para>If user entries do not match originally, you can no doubt add an
       attribute to users' OpenDJ entries when configuring them to use pass
       through authentication.</para>
-      <!-- TODO: Add an olink when we have support for such things. -->
       <para>To configure PTA, you set up an LDAP pass through authentication
       policy in OpenDJ's configuration, and then assign the policy to users in
       the same way you would assign a password policy. See the
-      <citetitle>Administration Guide</citetitle> for details.</para>
+      <link xlink:href="admin-guide#chap-pta"
+      xlink:role="http://docbook.org/xlink/role/olink"
+      ><citetitle>Administration Guide</citetitle> for details.</link></para>
     </listitem>
     <listitem>
      <para>OpenDJ now lets you configure attributes to be removed or renamed
diff --git a/opendj3/src/main/docbkx/shared/man-dsconfig.xml b/opendj3/src/main/docbkx/shared/man-dsconfig.xml
index e676c52..cffac2c 100644
--- a/opendj3/src/main/docbkx/shared/man-dsconfig.xml
+++ b/opendj3/src/main/docbkx/shared/man-dsconfig.xml
@@ -87,11 +87,12 @@
   component's <literal>allow-start-tls</literal> property to
   <literal>true</literal> to permit LDAP client applications to use StartTLS.
   Much of the configuration you do with <command>dsconfig</command> involves
-  setting component properties. The <citetitle>OpenDJ Configuration
-  Reference</citetitle> covers all <command>dsconfig</command> component
-  properties in detail, drawing on the documentation you also view when
-  getting help through the <command>dsconfig</command> command.</para>
-  <!-- TODO: Add olink to configuration reference -->
+  setting component properties. The <link
+  xlink:href="http://opendj.forgerock.org/opendj-server/configref/index.html"
+  ><citetitle>OpenDJ Configuration Reference</citetitle></link> covers all
+  <command>dsconfig</command> component properties in detail, drawing on the
+  documentation you also view when getting help through the
+  <command>dsconfig</command> command.</para>
  </refsect1>
  <refsect1 xml:id="dsconfig-getting-help">
   <title>Getting Help</title>
@@ -372,8 +373,9 @@
   </itemizedlist>
   
   <para>Component properties for the <command>dsconfig</command> command are
-  covered in the <citetitle>OpenDJ Configuration Reference</citetitle>.</para>
-  <!-- TODO: olink to configref -->
+  covered in the <link
+  xlink:href="http://opendj.forgerock.org/opendj-server/configref/index.html"
+  ><citetitle>OpenDJ Configuration Reference</citetitle></link>.</para>
   
   <para>Many subcommands let you set property values. Notice in the reference
   for the subcommands below that specific options are available for handling
diff --git a/opendj3/src/main/docbkx/targetdatabase.dtd b/opendj3/src/main/docbkx/targetdatabase.dtd
new file mode 100644
index 0000000..2ace1e0
--- /dev/null
+++ b/opendj3/src/main/docbkx/targetdatabase.dtd
@@ -0,0 +1,49 @@
+<!-- targetdatabase.dtd -->
+<!-- A DTD for managing cross reference target information -->
+
+<!ELEMENT targetset (targetsetinfo?, sitemap*, document*) >
+
+<!ELEMENT targetsetinfo ANY >
+
+<!ELEMENT sitemap (dir) >
+
+<!ELEMENT dir ((dir|document)*) >
+<!ATTLIST dir
+        name      CDATA   #REQUIRED
+>
+
+<!ELEMENT document (div*) >
+<!ATTLIST document
+        targetdoc CDATA   #REQUIRED
+        uri       CDATA   #IMPLIED
+        baseuri   CDATA   #IMPLIED
+        href      CDATA   #IMPLIED
+        dir       CDATA   #IMPLIED
+>
+
+<!ELEMENT div (ttl?, objttl?, xreftext?, (div|obj)*)>
+<!ATTLIST div
+        targetptr  CDATA   #IMPLIED
+        element   CDATA   #IMPLIED
+        name      CDATA   #IMPLIED
+        number    CDATA   #IMPLIED
+        href      CDATA   #IMPLIED
+        lang      CDATA   #IMPLIED
+        page      CDATA   #IMPLIED
+>
+        
+        
+<!ELEMENT ttl ANY >
+<!ELEMENT objttl ANY >
+<!ELEMENT xreftext ANY >
+
+<!ELEMENT obj (ttl?, objttl?, xreftext?)>
+<!ATTLIST obj
+        targetptr  CDATA   #IMPLIED
+        element   CDATA   #IMPLIED
+        name      CDATA   #IMPLIED
+        number    CDATA   #IMPLIED
+        href      CDATA   #IMPLIED
+        lang      CDATA   #IMPLIED
+        page      CDATA   #IMPLIED
+>

--
Gitblit v1.10.0