<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>ASF: Building The Documents</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<link rel="stylesheet" type="text/css" href="resources/apache-xalan.css" />
</head>
<!--
 * 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.
 -->
<body>
<div id="title">
<table class="HdrTitle">
<tbody>
<tr>
<th rowspan="2">
<a href="../index.html">
<img alt="Trademark Logo" src="resources/XalanC-Logo-tm.png" width="190" height="90" />
</a>
</th>
<th text-align="center" width="75%">
<a href="index.html">Xalan-C/C++ Version 1.11</a>
</th>
</tr>
<tr>
<td valign="middle">Building The Documents</td>
</tr>
</tbody>
</table>
<table class="HdrButtons" align="center" border="1">
<tbody>
<tr>
<td>
<a href="http://www.apache.org">Apache Foundation</a>
</td>
<td>
<a href="http://xalan.apache.org">Xalan Project</a>
</td>
<td>
<a href="http://xerces.apache.org">Xerces Project</a>
</td>
<td>
<a href="http://www.w3.org/TR">Web Consortium</a>
</td>
<td>
<a href="http://www.oasis-open.org/standards">Oasis Open</a>
</td>
</tr>
</tbody>
</table>
</div>
<div id="navLeft">
<ul>
<li>
<a href="resources.html">Resources</a>
<br />
</li>
<li>
<a href="../index.html">Home</a>
</li></ul><hr /><ul>
<li>
<a href="index.html">Xalan-C++ 1.11</a>
</li>
<li>
<a href="whatsnew.html">What's New</a>
</li>
<li>
<a href="license.html">Licenses</a>
</li></ul><hr /><ul>
<li>
<a href="overview.html">Overview</a>
</li>
<li>
<a href="charter.html">Charter</a>
</li></ul><hr /><ul>
<li>
<a href="download.html">Download</a>
</li>
<li>
<a href="buildlibs.html">Build Libraries</a>
</li>
<li>
<a href="install.html">Installation</a>
</li>
<li>Build Documents<br />
</li></ul><hr /><ul>
<li>
<a href="samples.html">Sample Apps</a>
</li>
<li>
<a href="commandline.html">Command Line</a>
</li>
<li>
<a href="usagepatterns.html">Usage Patterns</a>
</li></ul><hr /><ul>
<li>
<a href="programming.html">Programming</a>
</li>
<li>
<a href="extensions.html">Extensions</a>
</li>
<li>
<a href="extensionslib.html">Extensions Library</a>
</li>
<li>
<a href="apiDocs/index.html">API Reference</a>
</li></ul><hr /><ul>
<li>
<a href="faq.html">Xalan-C FAQs</a>
</li></ul><hr /><ul>
<li>
<a href="whatsnew.html#bugs">Bugs</a>
</li>
<li>
<a href="http://xalan.apache.org/old/xalan-j/test/run.html#how-to-run-c">Testing</a>
</li>
<li>
<a href="secureweb.html">Web Security</a>
</li>
</ul>
</div>
<div id="content">
<h2>Building The Documents</h2>
<ul>
<li>
<a href="#thedocs">The Xalan-C/C++ HTML Documentation</a>
</li>
<li>
<a href="#unixsetup">Setup UNIX for Building the Documents</a>
</li>
  <ul>
  <li>
<a href="#unixdocbld">Build the Documentation on UNIX</a>
</li>
  </ul>
<li>
<a href="#winsetup">Setup WINDOWS for Building the Documents</a>
</li>
<li>
<a href="#aboutstylebook">About the StyleBook XML Markup</a>
</li>
  <ul>
  <li>
<a href="#sb_dirlayout">Source Directory Layout</a>
</li>
  <li>
<a href="#sb_scripts">Document Building Scripts</a>
</li>
  </ul>
</ul>
<p>Our HTML web page construction does not use or require
any Java installed or the use of JavaScript.</p>

<a name="thedocs">‌</a>
<p align="right" size="2">
<a href="#content">(top)</a>
</p>
<h3>The Xalan-C/C++ HTML Documentation</h3>
<p>The current Xalan-C/C++ HTML documentation pages are available on our website
   <a href="http://xalan.apache.org/xalan-c/index.html">
   http://xalan.apache.org/xalan-c</a>.</p>
<p>The HTML documentation pages can be built from the Xalan-C
source distribution.  Let <code>${XALANC}</code> indicate the top directory
of the source distribution.</p>
<blockquote class="source">
<pre>
   ${XALANC}/src/ = the program library source files
   ${XALANC}/xdocs/ = the program documentation source files
   ${XALANC}/build/docs/ = the directory created for documentation builds
   ${XALANC}/build/docs/apiDocs/html/ = apiDocs created here, then moved
   ${XALANC}/build/docs/xalan-c/ =  the HTML documentation tree
</pre>
</blockquote>
<p>UNIX platforms can build the complete documentation package (web pages plus
interactive api reference).</p>
<p> Windows platforms an only build the basic web pages.</p>

<a name="unixsetup">‌</a>
<p align="right" size="2">
<a href="#content">(top)</a>
</p>
<h3>Setup UNIX for Building the Documents</h3>
<ol>
<li>Requires the <code>
<b>Xalan</b>
</code> executable in the <code>${PATH}</code> environment.</li>
<li>Requires the <code>
<b>libxerces-c.so</b>
</code> and 
    <code>
<b>libxalan-c.so</b>
</code> libraries in a path
   that is accessible to the <code>
<b>Xalan</b>
</code> executable.</li>
<li>Requires a current installation of the 
    <a href="http://www.doxygen.org">Doxygen</a> package.</li>
<li>The interactive graphics for apiDocs require the 
    <a href="http://www.graphviz.org">GraphViz</a> (dot) package.</li>
</ol>
<a name="unixdocbld">‌</a>
<p align="right" size="2">
<a href="#content">(top)</a>
</p>
<h4>Build the Documentation on UNIX</h4>
<ol>
<li>Connect to the <code>${XALANC}/xdocs/</code> directory.</li>
<li>Run the <code>
<b>make-apiDocs.sh</b>
</code> (full graphics) or 
    <code>
<b>make-apiDocs-nograf.sh</b>
</code> (no graphics).</li>
<li>The script automatically chains to <code>
<b>sources/make-book.sh</b>
</code>
   for building the remainder of the documentation.</li>
<li>You can now relocate and package the documentation at
   <code>${XALANC}/build/docs/xalan-c/</code>
   to your final destination of choice.</li>
</ol>


<a name="winsetup">‌</a>
<p align="right" size="2">
<a href="#content">(top)</a>
</p>
<h3>Setup WINDOWS for Building the Documents</h3>
<ol>
<li>Create a <code>%XALANC%\bin\</code> directory. Then copy the 
  <code>
<b>xalan.exe</b>
</code> and the DLL
   libraries for xerces-c and xalan-c into that directory.  This is where
   the <code>
<b>make-xalan.bat</b>
</code> file expects to find the 
   <code>
<b>xalan.exe</b>
</code> executable.</li>

<li>Connect to the <code>%XALANC%\xdocs\sources\</code> directory.</li>

<li>Run the <code>
<b>make-book.bat</b>
</code> script to create 
   the <code>%XALANC%\build\docs\xalan-c\</code> documentation.</li>

<li>You can now relocate and package the documentation at
   <code>%XALANC%\build\docs\xalan-c\</code> to your final destination of choice.</li>
</ol>
<table class="note">
<tr>
<td class="noteImg">
<img src="resources/note.gif" alt="note" />
</td>
<td class="noteTxt">WINDOWS has no Doxygen program for building the apiDocs.
Building apiDocs requires a Linux or UNIX platform.  You might
be able to use WINDOWS JavaDocs to get an interactive apiDocs reference.
The JavaDocs program is part of the Java Developer's platform.</td>
</tr>
</table>
<p>Our documentation does not rely on any Java installation.</p>

<a name="aboutstylebook">‌</a>
<p align="right" size="2">
<a href="#content">(top)</a>
</p>
<h3>About the StyleBook XML Markup</h3>
<p>The obsolete Apache Java Stylebook program is no longer being used.
The StyleBook XML markup has been slightly modified to accommodate
standard XSLT stylesheet transformations.</p>
<p>A standard <code>
<b>stylebook.xslt</b>
</code> XML transform stylesheet now
allows any standard compliant XSLT processor to prepare the
basic webpage documents.  The resulting documents are in strict
XHTML.  The source pages have been adjusted so that
compliant XML output mode is used and that transitional web
browsers are accommodated.</p>
<p>We also include a DTD library so that the markup source pages
can be processed with a validating XML parser.  The parser used
with the <code>
<b>stylebook.xslt</b>
</code> stylesheet
must accommodate top-level string parameters and the ability to
process DTD definitions.</p>
<p>Our stylebook processing scripts currently expect to use the
Apache Xalan-C/C++ command-line executable program.</p>

<a name="sb_dirlayout">‌</a>
<p align="right" size="2">
<a href="#content">(top)</a>
</p>
<h4>Source Directory Layout</h4>
<blockquote class="source">
<pre>
  ${XALAN}/xdocs/style/dtd/*  -- the validation DTD definitions
  ${XALAN}/xdocs/sources/stylebook.xslt -- the XML StyleBook transform
  ${XALAN}/xdocs/sources/xalan/* -- the StyleBook XML page content
  ${XALAN}/xdocs/sources/xalan-graphic/* -- page specific graphics
  ${XALAN}/xdocs/sources/xslt-resources/* -- logos and css stylesheets
  ${XALAN}/xdocs/sources/xalan.xml  -- the book navigation panel
  ${XALAN}/xdocs/sources/entities.ent -- book XML general entity definitions
  ${XALAN}/xdocs/sources/xalan/resources.xml -- general resource links
  ${XALAN}/build/docs/xalan-c/* -- the StyleBook html transformed pages
</pre>
</blockquote>
<p>The resulting document from <code>
<b>stylebook.xslt</b>
</code> is strict XHTML with 
markup rules that can also be supported on transitional browsers.
To guard against XML element collapse, we use the Unicode 
zero-width-non-joining character to provide non-empty content.
Element collapse prevention is not handled by the "stylebook.xslt" transform.
The Apache <code>Xalan</code> or <code>xalan.exe</code> programs do not
should guard against unwanted element collapse.</p>

<a name="sb_scripts">‌</a>
<p align="right" size="2">
<a href="#content">(top)</a>
</p>
<h4>Document Building Scripts</h4>
<blockquote class="source">
<pre>
  ${XALAN}/xdocs/sources/make-xalan.sh {pagename} -- transform a single page
  ${XALAN}/xdocs/sources/make-xalan.bat {pagename} -- transform a single page
</pre>
</blockquote>
<blockquote class="source">
<pre>
  ${XALAN}/xdocs/sources/make-book.sh -- transform an entire book
  ${XALAN}/xdocs/sources/make-book.bat -- transform an entire book
</pre>
</blockquote>


<p align="right" size="2">
<a href="#content">(top)</a>
</p>
</div>
<div id="footer">Copyright © 1999-2012 The Apache Software Foundation<br />Apache, Xalan, and the Feather logo are trademarks of The Apache Software Foundation<div class="small">Web Page created on - Tue 2012-10-09</div>
</div>
</body>
</html>
