This is the mail archive of the docbook-apps@lists.oasis-open.org mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [docbook-apps] Olink: can't resolve xlink cross-refs.


Thanks Bob. I solved the problem, which I completely garbled in the
original post. I don't know why I brought up xlinks; I meant xincludes.
Many apologies.

Since my orginal question was such a waste of everyone's time, I may as
post the solution in case it helps someone. Here's the test of a simple
olink that I finally got to work.  Until I could figure this out, I
couldn't see how to avoid maintaining a separate database file for each
of many ref pages - rendering xincludes pretty useless for me. Here's the
essential code that seem to work:


#master document: <book id="book"> <title>Command Reference</title> <reference> <title>Commands</title> <xi:include href="command1.xml" /> <xi:include href="command2.xml" /> </reference> </book>

#command1.xml:
<refentry id="cmd1">
  <refnamediv>
     <refname>cmd1</refname>
     <refpurpose>starts the client</refpurpose>
  </refnamediv>
  <refsection>
    <title>cmd2 ref section</title>
    <para>Test olink: refer to the <olink targetdoc="book"
    targetptr="synop"></olink> section of the command 2 page.</para>
  </refsection>
</refentry>

#command2.xml:
<refentry id="cmd2">
  <refnamediv>
    <refname>cmd2</refname>
    <refpurpose>determines compiler and linker flags</refpurpose>
  </refnamediv>
  <refsection id="synop">
    <title>SYNOPSIS</title>
    <cmdsynopsis>
      <command>sb-config</command>
      <arg rep="norepeat"><replaceable>option</replaceable></arg>
    </cmdsynopsis>
  </refsection>
</refentry>

#olinkdb.xml:
<?xml version="1.0" encoding="utf-8"?>
<targetset>
  <targetsetinfo>info </targetsetinfo>
  <sitemap>
    <dir name="../testolink">
      <document targetdoc="book">
        <xi:include href="target.db"
             xmlns:xi="http://www.w3.org/2003/XInclude"/>
      </document>
    </dir>
  </sitemap>
</targetset>

This version, using entities instead, also works:
#olinkdb.xml:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE targetset SYSTEM "targetdatabase.dtd" [
       <!ENTITY reftargets SYSTEM "target.db">
]>
<targetset>
  <targetsetinfo>info </targetsetinfo>
  <sitemap>
    <dir name="../testolink">
      <document targetdoc="book">
        &reftargets;
      </document>
    </dir>
  </sitemap>
</targetset>

Processing (using saxon 6.5.3)

#1. build olink database. If you don't use chunking, either specify the
    basuri in the database doc, or set the olink.base.uri parameter to
    the HTML filename.

java book.xml chunk.xsl collect.xref.targets="only" current.docid="book"

#2. Generate output using olink database.

java book.xml chunk.xsl target.database.document="olinkdb.xml"  \
current.docid="book"




Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]