Hi Steve,

I think perhaps my book should provide more details of some basic use cases to make the setup for olinks easier. In this case the setup of your olinkdb.xml file needs to be completed.

I see that you declare a system entity for the file SDKOverview.db, but it is not referenced. As a result, both of the <document> elements in the database have no content. So although the targetdoc value "SDKEnumeration" is found in the database, it has no targetptr values and their data associated with it.

Also, I notice that the target data file SDKOverview.db is not generated. The name of the data file is established in the stylesheet parameter 'targets.filename', which is set to 'target.db' by default (you should see that in the directory). If you want the file to be named otherwise, then set the parameter.

If I understand correctly, you have a single assembled document, so you don't need more than one <document> element in the database. This version of olinkdb.xml should work for your purposes:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE targetset
SYSTEM "targetdatabase.dtd" [
<!ENTITY SDKOverview SYSTEM "SDKOverview.db">
]>
<targetset>
 <document targetdoc="SDKEnumeration">
   &SDKOverview;
 </document>
</targetset>


And this set of params will make it work for olinks whose 
targetdoc="SDKEnumeration":

xsltproc --output c:\<filename> /
--stringparam collect.xref.targets "yes" /
--stringparam targets.filename SDKOverview.db /
--stringparam target.database.document "olinkdb.xml" /
--xinclude C:\<our-custom-xsl> C:\<book-file>

Since you have only one document, you don't need to set the 'current.docid' parameter. That value is used to compute a path between two different output documents.

Hope this helps. Your comments have prompted me to try to improve the chapter on olinking to make it easier to get started.

Bob Stayton
Sagehill Enterprises
[email protected]


----- Original Message ----- From: "Steve Johnson" <[email protected]>
To: "Docbook Apps Help list" <[email protected]>
Sent: Monday, July 05, 2010 11:59 AM
Subject: [docbook-apps] olink basics


Currently we are not "chunking" documentation but at some point I would like to 
be
able to do that. To that end, because currently there are no cross-references at
all, I want to implement cross-references so they will work whether or not the
documents are "chunked" at transformation.

I had no luck with <olink> because when I did the transform I always got a 
failure
to resolve the olinks.

To start with I wanted to olink between two chapters in a book. I added an 
xml:id to
each <chapter> tag and, because all chapter files are in the same directory, 
used
the following as the olink.db:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE targetset
SYSTEM "targetdatabase.dtd" [
<!ENTITY SDKOverview SYSTEM "SDKOverview.db">
]>
<targetset>

             <document targetdoc="SDKIntroduction"
                  baseuri="CAStorSDKOverview.html">
             </document>


              <document targetdoc="SDKEnumeration">
              </document>



</targetset>

Question: Does the name of "baseuri" have to correspond to anything? Should it
correspond to the name of the chapter (SDKIntroduction) or to the book
(CAStorSDKOverview)?

Link: <olink targetdoc="SDKEnumeration" targetptr="StartMethod"/>

Transform command line:

xsltproc --output c:\<filename> /
--stringparam collect.xref.targets "yes" /
--stringparam target.database.document "olinkdb.xml" /
--stringparam current.docid "CAStorSDKOverview" /
--xinclude C:\<our-custom-xsl> C:\<book-file>

Result:


Writing target.db for book(CAStorSDKOverview)
Error: unresolved olink: targetdoc/targetptr = 'SDKEnumeration/StartMethod'.

--

------------

Steve Johnson, Senior Content Developer
Caringo
[email protected]

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]





---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to