You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xalan.apache.org by sh...@apache.org on 2012/10/22 21:23:04 UTC

svn commit: r1401023 [4/15] - /xalan/site/docs/xalan/xalan-c/

Modified: xalan/site/docs/xalan/xalan-c/download.html
URL: http://svn.apache.org/viewvc/xalan/site/docs/xalan/xalan-c/download.html?rev=1401023&r1=1401022&r2=1401023&view=diff
==============================================================================
--- xalan/site/docs/xalan/xalan-c/download.html (original)
+++ xalan/site/docs/xalan/xalan-c/download.html Mon Oct 22 19:23:03 2012
@@ -1,558 +1,594 @@
-<?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: Downloading Xalan-C++</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">Downloading Xalan-C++</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>Download<br />
-</li>
-<li>
-<a href="buildlibs.html">Build Libraries</a>
-</li>
-<li>
-<a href="install.html">Installation</a>
-</li>
-<li>
-<a href="builddocs.html">Build Documents</a>
-</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>Downloading Xalan-C++</h2>
-<ul>
-  <li>
-<a href="#DownloadWhat">Downloading What You Need</a>
-</li>
-  <li>
-<a href="#DownloadNotes">Downloading Notes</a>
-</li>
-
-  <li>
-<a href="#SourcePkgs">Source Packages</a>
-</li>
-  <li>
-<a href="#DocPkgs">Documentation Packages</a>
-</li>
-  <li>
-<a href="#BinaryPkgs">Binary Packages</a>
-</li>
-  <li>
-<a href="#VerifyPkgs">Verify Downloaded Packages</a>
-</li>
-  <li>
-<a href="#PlatformComp">Platform Compatibility</a>
-</li>
-</ul>
-
-<a name="DownloadWhat">‌</a>
-<p align="right" size="2">
-<a href="#content">(top)</a>
-</p>
-<h3>Downloading What You Need</h3>
-
-<p>We are distributing the source package for the Xalan-C/C++
-library, sample programs, and documentation.  We are also
-distributing assembled documentation packages for your 
-browser.  Some selected platforms also have binary packages.
-</p>
-
-<p>The Xalan-C/C++ 1.11 library requires the
-<a href="http://www.apache.org/dyn/mirrors/mirrors.cgi/xerces/c">Xerces-C/C++ XML</a> 
-Parser 3.0 or newer, version 3.1.1 is preferred.
-</p>
-
-<p>The source package contains all the scripts needed to build the
-library, sample programs, and documentation for a wide variety
-of Windows and UNIX platforms.  The documentation package provides
-usable html documentation that is already assembled for your web browsers.
-</p>
-
-<p>Building the API Reference documents requires a current version of the 
-<a href="http://www.doxygen.org">Doxygen</a> and 
-<a href="http://www.graphviz.org">GraphViz</a> programs for UNIX or Linux. 
-We have not tried building the API Reference on a Windows platform.
-A usable API Reference is included with the documentation package.
-</p>
-
-
-<a name="DownloadNotes">‌</a>
-<p align="right" size="2">
-<a href="#content">(top)</a>
-</p>
-<h3>Downloading Notes</h3>
- 	
-<p>Releases are distributed via various mirror sites around the world, 
-and the links below will direct you to a mirror near you. 
-Alternative mirror locations are also provided.</p>
-
-<table class="note">
-<tr>
-<td class="noteImg">
-<img src="resources/note.gif" alt="note" />
-</td>
-<td class="noteTxt">You must <a href="#VerifyPkgs">verify the integrity</a> of the downloaded files 
-using signatures downloaded from the Apache master distribution directory.</td>
-</tr>
-</table>
-
-<p>Access to the latest (and possibly unstable) source can be accessed via 
-<a href="http://svn.apache.org/repos/asf/xalan/xalan-c/trunk">SVN</a>
-</p>
- 
-<p>Archives of old Xalan-C/C++ releases can be found at the 
-<a href="http:archive.apache.org/dist/xalan/xalan-c">Apache Xalan Archives</a>
-and the
-<a href="http:archive.apache.org/dist/xml/xalan-c">Old Apache XML Archives</a>.</p>
-
-<p>Archives of old Xerces-C/C++ parser distributions can be found at the
-<a href="http:archive.apache.org/dist/xerces/c">Apache Xerces Archives</a>
-and the
-<a href="http:archive.apache.org/dist/xml/xalan-c">Old Apache XML Archives</a>.</p>
-
-
- 
-
-
-<a name="SourcePkgs">‌</a>
-<p align="right" size="2">
-<a href="#content">(top)</a>
-</p>
-<h4>Source Packages</h4>
-<p>
-<b>Xalan-C/C++ <a href="http://www.apache.org/dist/xalan/xalan-c/KEYS">KEYS</a>
-</b>
-</p>
-<ul>
- <li>xalan-c-1.11-src.tar.gz</li>
- <li>xalan-c-1.11-src.zip</li>
-</ul>
-<p>You can download the Xalan-C/C++ source packages from the 
-   <a href="http:///www.apache.org/dyn/mirrors/mirrors.cgi/xalan/xalan-c/sources">
-   Apache Mirrors</a>.</p>
-<p>You should <a href="#VerifyPkgs">verify</a> your packages against
-   the trusted signatures posted on the Apache master distribution site</p>
-
-
-<a name="DocPkgs">‌</a>
-<p align="right" size="2">
-<a href="#content">(top)</a>
-</p>
-<h4>Documentation Packages</h4>
-<p>These documentation packages can be built from the Xalan-C/C++ 
-<a href="#SourcePkgs">source distributions</a> on Linux or UNIX systems.
-Windows systems can only build the basic webpages without the apiDocs 
-interactive API (Application Program Interface) pages.
-</p>
-<p>The <b>html-full</b> is a very large package (355+ MB).  It contains the
-   interactive graphics images that map the include file relationships and
-   class relationships.  The <b>html-nograf</b> (42 MB) just contains tabular
-   relationships without the large volume of generated graphics.
-</p>
-<p>
-<b>Xalan-C/C++ <a href="http://www.apache.org/dist/xalan/xalan-c/KEYS">KEYS</a>
-</b>
-</p>
-<ul>
- <li>xalan-c-1.11-docs-html-full.tar.gz</li>
- <li>xalan-c-1.11-docs-html-full.zip</li>
- <li>xalan-c-1.11-docs-html-nograf.tar.gz</li>
- <li>xalan-c-1.11-docs-html-nograf.zip</li>
-</ul>
-<p>You can download the Xalan-C/C++ documentation packages from the 
-   <a href="http:///www.apache.org/dyn/mirrors/mirrors.cgi/xalan/xalan-c/docs">
-   Apache Mirrors</a>.</p>
-<p>You should <a href="#VerifyPkgs">verify</a> your packages against
-   the trusted signatures posted on the Apache master distribution site</p>
-
-
-<a name="BinaryPkgs">‌</a>
-<p align="right" size="2">
-<a href="#content">(top)</a>
-</p>
-<h4>Binary Packages</h4>
-<p>We are distributing compiled binary packages for several
-platforms.  The Xalan-C/C++ <a href="#DocPkgs">documentation</a> 
-is provided as a separate package.  We would like to distribute binary packages 
-for platforms on which Xerces-C/C++ has binary packages distributed.
-</p>
-<p>Both the Xalan (XSLT) and Xerces (XML Parser) libraries should
-both be compiled with the same version of C++ compiler.  A mismatch
-of compiler versions is known to create runtime library reference
-errors.  If you cannot find a compatible Xerces library, you should
-obtain the Xerces sources and compile both libraries.
-</p>
-<p>Binary packages labeled <b>xalan_combined</b> have compiled
-libraries for both Xalan-C/C++ and Xerces-C/C++.  All binary
-packages include the <b>Xalan</b> or <b>xalan.exe</b>
-command line styleshet transformation processor.
-</p>
-
-<table class="note">
-<tr>
-<td class="noteImg">
-<img src="resources/note.gif" alt="note" />
-</td>
-<td class="noteTxt">The development cycles for Xerces-C/C++ and Xalan-C/C++ are
-separately managed.  There is no synchronization of product distribution.</td>
-</tr>
-</table>
-
-<p>
-<b>Windows Packages - 32 BIT</b>
-</p>
-<ul>
- <li>xalan-c-1.11-x86-windows-vc71.zip for MS VS 2003</li>
- <li>xalan-c-1.11-x86-windows-vc8.zip for MS VS 2005 </li>
- <li>xalan-c-1.11-x86-windows-vc9.zip for MS VS 2008</li>
- <li>xalan-c-1.11-x86-windows-vc10.zip for MS VS 2010</li>
-</ul>
-<p>Combined with Xerces Parser</p>
-<ul>
- <li>xalan_combined-c-1.11-x86-windows-vc71.zip for MS VS 2003</li>
- <li>xalan_combined-c-1.11-x86-windows-vc8.zip for MS VS 2005 </li>
- <li>xalan_combined-c-1.11-x86-windows-vc9.zip for MS VS 2008</li>
- <li>xalan_combined-c-1.11-x86-windows-vc10.zip for MS VS 2010</li>
-</ul> 
-<p>
-<b>Windows Packages - 64 BIT</b>
-</p>
-<ul>
- <li>xalan-c-1.11-x86_64-windows-vc8.zip for MS VS 2005</li>
- <li>xalan-c-1.11-x86_64-windows-vc9.zip for MS VS 2008</li>
- <li>xalan-c-1.11-x86_64-windows-vc10.zip for MS VS 2010</li>
-</ul>
-<p>Combined with Xerces Parser</p>
-<ul>
- <li>xalan_combined-c-1.11-x86_64-windows-vc8.zip for MS VS 2005</li>
- <li>xalan_combined-c-1.11-x86_64-windows-vc9.zip for MS VS 2008</li>
- <li>xalan_combined-c-1.11-x86_64-windows-vc10.zip for MS VS 2010</li>
-</ul>
-<p>
-<b>BSD Packages - 64 BIT</b>
-</p>
-<ul>
- <li>xalan-c-1.11-x86_64-freebsd_9-gcc_4_2.tar.gz</li>
- <li>xalan_combined-c-1.11-x86_64-freebsd_9-gcc_4_2.tar.gz</li>
-</ul>
-<p>
-<b>Linux Packages</b>
-</p>
-<ul>
- <li>xalan-c-1.11-x86_64-linux_2_6_32-gcc_4_4.tar.gz</li>
- <li>xalan_combined-c-1.11-x86_64-linux_2_6_32-gcc_4_4.tar.gz</li>
-</ul>
-<p>You can download the Xalan-C/C++ compiled binary packages from the 
-   <a href="http:///www.apache.org/dyn/mirrors/mirrors.cgi/xalan/xalan-c/binaries">
-   Apache Mirrors</a>.</p>
-<p>You should <a href="#VerifyPkgs">verify</a> your packages against
-   the trusted signatures posted on the Apache master distribution site</p>
-
-
-<a name="VerifyPkgs">‌</a>
-<p align="right" size="2">
-<a href="#content">(top)</a>
-</p>
-<h3>Verify The Integrity of the Files</h3>
-
-<p>It is essential that you verify the integrity of the downloaded 
-   files using the PGP or MD5 signatures. You should only download the
-   <a href="http://www.apache.org/dist/xalan/xalan-c/KEYS">KEYS</a>
-   and the (asc/md5) signature files from the Apache Master Distribution.
-   The Apache Mirrors of previous sections should be used to download
-   the products.</p>
-<ul>
-  <li>
-<a href="http://www.apache.org/dyn/mirrors/mirrors.cgi/xalan/xalan-c/sources">
-      Apache Mirror Xalan-C Sources</a>
-</li>
-  <li>
-<a href="http://www.apache.org/dist/xalan/xalan-c/source">
-      Apache Master Xalan-C Sources - for Signature Files</a>
-</li>
-  <li>
-<a href="http://www.apache.org/dyn/mirrors/mirrors.cgi/xalan/xalan-c/docs">
-      Apache Mirror Xalan-C Documentation</a>
-</li>
-  <li>
-<a href="http://www.apache.org/dist/xalan/xalan-c/docs">
-      Apache Master Xalan-C Documentation - for Signature Files</a>
-</li>
-  <li>
-<a href="http://www.apache.org/dyn/mirrors/mirrors.cgi/xalan/xalan-c/binaries">
-      Apache Mirror Xalan-C Binary Packages</a>
-</li>
-  <li>
-<a href="http://www.apache.org/dist/xalan/xalan-c/binaries">
-      Apache Master Xalan-C Binary Packages - for Signature Files</a>
-</li>
-</ul>
-
-<p>Make sure you get the signature file for the particular distribution from the master directory, 
-   rather than from a mirror. 
-   Then verify the signatures using:</p>
-<blockquote class="source">
-<pre>
-   % pgpk -a KEYS
-   % pgpv &lt;archive-name&gt;.tar.gz.asc
-</pre>
-</blockquote>
-<b>or</b>
-<blockquote class="source">
-<pre>
-   % pgp -ka KEYS
-   % pgp &lt;archive-name&gt;.tar.gz.asc
-</pre>
-</blockquote>
-<b>or</b>
-<blockquote class="source">
-<pre>
-   % gpg --import KEYS
-   % gpg --verify &lt;archive-name&gt;.tar.gz.asc
-</pre>
-</blockquote>
-<p>Alternatively, you can verify the MD5 signature on the files. 
-A unix program called md5 or md5sum is included in many unix distributions. 
-It is also available as part of 
-<a href="http://www.gnu.org/directory/text/wordproc/textutils.html">GNU Textutils</a>.
- Windows users can get binary md5 programs from 
-<a href="http://www.fourmilab.ch/md5/">here</a>,
-<a href="http://www.pc-tools.net/win32/freeware/console/">here</a>, or 
-<a href="http://www.slavasoft.com/fsum/">here</a>.</p>
-
-<a name="PlatformComp">‌</a>
-<p align="right" size="2">
-<a href="#content">(top)</a>
-</p>
-<h3>Platform Compatibility</h3>
-
-<p>We currently have no one committed to release UNIX and Linux
-binary packages.  If you have scripts to build these packages,
-your help would be appreciated. 
-You can contribute by posting your comments to the 
-<a href="mailto:dev@xalan.apache.org">xalan-dev</a> mailing list.</p>
-
-<p>The compiler version used for each platform is listed in the table below.
-The build platforms shown here have Xerces-C/C++ binary package support.
-    <table border="1">
-       <tr>
-         <th class="content" rowspan="1" colspan="1">Platform - Operating System</th>
-         <th class="content" rowspan="1" colspan="1">Compilers</th>
-       </tr>
-       <tr>
-         <td class="content" rowspan="1" colspan="1">Windows X86</td>
-         <td class="content" rowspan="1" colspan="1">VC7.1, VC8, VC9, VC10</td>
-       </tr>
-       <tr>
-         <td class="content" rowspan="1" colspan="1">Windows X86_64</td>
-         <td class="content" rowspan="1" colspan="1">VC8, VC9, VC10</td>
-       </tr>
-       <tr>
-         <td class="content" rowspan="1" colspan="1">HPUX ia64</td>
-         <td class="content" rowspan="1" colspan="1">ACC 6</td>
-       </tr>
-       <tr>
-         <td class="content" rowspan="1" colspan="1">HPUX ia64_64</td>
-         <td class="content" rowspan="1" colspan="1">ACC 6</td>
-       </tr>
-       <tr>
-         <td class="content" rowspan="1" colspan="1">AIX powerpc</td>
-         <td class="content" rowspan="1" colspan="1">xlc 7.0</td>
-       </tr>
-       <tr>
-         <td class="content" rowspan="1" colspan="1">AIX powerpc_64</td>
-         <td class="content" rowspan="1" colspan="1">xlc 7.0</td>
-       </tr>
-       <tr>
-         <td class="content" rowspan="1" colspan="1">SOLARIS sparc</td>
-         <td class="content" rowspan="1" colspan="1">cc 5.10</td>
-       </tr>
-       <tr>
-         <td class="content" rowspan="1" colspan="1">SOLARIS sparc_64</td>
-         <td class="content" rowspan="1" colspan="1">cc 5.10</td>
-       </tr>
-       <tr>
-         <td class="content" rowspan="1" colspan="1">SOLARIS X86</td>
-         <td class="content" rowspan="1" colspan="1">cc 5.10</td>
-       </tr>
-       <tr>
-         <td class="content" rowspan="1" colspan="1">SOLARIS X86_64</td>
-         <td class="content" rowspan="1" colspan="1">cc 5.10</td>
-       </tr>
-       <tr>
-         <td class="content" rowspan="1" colspan="1">LINUX X86</td>
-         <td class="content" rowspan="1" colspan="1">gcc 3.4</td>
-       </tr>
-       <tr>
-         <td class="content" rowspan="1" colspan="1">Linux X86_64</td>
-         <td class="content" rowspan="1" colspan="1">gcc 3.4</td>
-       </tr>
-       <tr>
-         <td class="content" rowspan="1" colspan="1">MAC OSX X86</td>
-         <td class="content" rowspan="1" colspan="1">gcc 4.0</td>
-       </tr>
-    </table>
-</p>
-<p>Building for platforms other than those listed will require
-a build of the Xerces-C/C++ XML Parser library from the sources.
-Use of Xalan and Xerces libraries compiled with different versions
-of compilers may cause problems</p>
-
-<table class="note">
-<tr>
-<td class="noteImg">
-<img src="resources/note.gif" alt="note" />
-</td>
-<td class="noteTxt">Use GNU tar to untar the Solaris distribution file; see 
-  <a href="faq.html#faq-11">A tar checksum error on Solaris</a>.
-</td>
-</tr>
-</table>
-
-<p>If you want to take advantage of the support for number formatting, sorting, 
-   and encoding the ICU provides, you should also download 
-   and install the <a href="http://oss.software.ibm.com/icu/index.html">International Components for Unicode (ICU)</a>; see 
-   <a href="usagepatterns.html#icu">Using the ICU</a>.
-</p>
-
-<p>The IBM ICU is supported with Xerces-C version 2.8.  Xerces-C version 3 has 
-   introduced transcoding support modules, currently being evaluated 
-   for Xalan XSLT transcoders.
-</p>
-
-<table class="note">
-<tr>
-<td class="noteImg">
-<img src="resources/note.gif" alt="note" />
-</td>
-<td class="noteTxt">To access previous releases of Xalan-C++, visit the 
-  <a href="http://archive.apache.org/dist/xml/xalan-c/">Xalan-C archive directory</a>
-</td>
-</tr>
-</table>
-
-<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>
+<?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: Downloading Xalan-C++</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">Downloading Xalan-C++</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>Download<br />
+</li>
+<li>
+<a href="buildlibs.html">Build Libraries</a>
+</li>
+<li>
+<a href="install.html">Installation</a>
+</li>
+<li>
+<a href="builddocs.html">Build Documents</a>
+</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>Downloading Xalan-C++</h2>
+<ul>
+  <li>
+<a href="#DownloadWhat">Downloading What You Need</a>
+</li>
+  <li>
+<a href="#DownloadNotes">Downloading Notes</a>
+</li>
+
+  <li>
+<a href="#SourcePkgs">Source Packages</a>
+</li>
+  <li>
+<a href="#DocPkgs">Documentation Packages</a>
+</li>
+  <li>
+<a href="#BinaryPkgs">Binary Packages</a>
+</li>
+  <li>
+<a href="#VerifyPkgs">Verify Downloaded Packages</a>
+</li>
+  <li>
+<a href="#PlatformComp">Platform Compatibility</a>
+</li>
+</ul>
+
+<a name="DownloadWhat">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Downloading What You Need</h3>
+
+<p>We are distributing the source package for the Xalan-C/C++
+library, sample programs, and documentation.  We are also
+distributing assembled documentation packages for your 
+browser.  Some selected platforms also have binary packages.
+</p>
+
+<p>
+<b>Download Xalan-C/C++ Distributions from Apache Mirrors</b>
+</p>
+<table border="1">
+ <tr>
+<td class="content" rowspan="1" colspan="1">
+<a href="http://www.apache.org/dyn/mirrors/mirrors.cgi/xalan/xalan-c">
+   The Xalan-C/C++ Distribution Tree</a>
+</td>
+</tr>
+ <tr>
+<td class="content" rowspan="1" colspan="1">
+<a href="http://www.apache.org/dyn/mirrors/mirrors.cgi/xalan/xalan-c/sources">
+   The Xalan-C/C++ Source Packages</a>
+</td>
+</tr>
+ <tr>
+<td class="content" rowspan="1" colspan="1">
+<a href="http://www.apache.org/dyn/mirrors/mirrors.cgi/xalan/xalan-c/docs">
+   The Xalan-C/C++ Documentation Packages</a>
+</td>
+</tr>
+ <tr>
+<td class="content" rowspan="1" colspan="1">
+<a href="http://www.apache.org/dyn/mirrors/mirrors.cgi/xalan/xalan-c/binaries">
+   The Xalan-C/C++ Binary Packages</a>
+</td>
+</tr>
+</table>
+
+<p>
+<b>Download Xerces-C/C++ XML Parser Library</b>
+</p>
+<p>The Xalan-C/C++ 1.11 library requires the
+<a href="http://www.apache.org/dyn/mirrors/mirrors.cgi/xerces/c">Xerces-C/C++ XML</a> 
+Parser 3.0 or newer, version 3.1.1 is preferred.
+</p>
+
+<p>
+<b>Our Xalan Packages</b>
+</p>
+<p>The source package contains all the scripts needed to build the
+library, sample programs, and documentation for a wide variety
+of Windows and UNIX platforms.  The documentation package provides
+usable html documentation that is already assembled for your web browsers.
+</p>
+
+<p>Building the API Reference documents requires a current version of the 
+<a href="http://www.doxygen.org">Doxygen</a> and 
+<a href="http://www.graphviz.org">GraphViz</a> programs for UNIX or Linux. 
+We have not tried building the API Reference on a Windows platform.
+A usable API Reference is included with the documentation package.
+</p>
+
+
+<a name="DownloadNotes">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Downloading Notes</h3>
+ 	
+<p>Apache package releases are distributed via various mirror sites around the world, 
+and the links below will direct you to a mirror near you. 
+Alternative mirror locations are also provided.</p>
+
+<table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">You must <a href="#VerifyPkgs">verify the integrity</a> of the downloaded files 
+using signatures downloaded from the Apache master distribution directory.</td>
+</tr>
+</table>
+
+<p>Access to the latest (and possibly unstable) source can be accessed via 
+<a href="http://svn.apache.org/repos/asf/xalan/c/trunk">SVN</a>
+</p>
+ 
+<p>Archives of old Xalan-C/C++ releases can be found at the 
+<a href="http:archive.apache.org/dist/xalan/xalan-c">Apache Xalan Archives</a>
+and the
+<a href="http:archive.apache.org/dist/xml/xalan-c">Old Apache XML Archives</a>.</p>
+
+<p>Archives of old Xerces-C/C++ parser distributions can be found at the
+<a href="http:archive.apache.org/dist/xerces/c">Apache Xerces Archives</a>
+and the
+<a href="http:archive.apache.org/dist/xml/xalan-c">Old Apache XML Archives</a>.</p>
+
+
+ 
+
+
+<a name="SourcePkgs">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Source Packages</h4>
+<p>
+<b>Xalan-C/C++ <a href="http://www.apache.org/dist/xalan/xalan-c/KEYS">KEYS</a>
+</b>
+</p>
+<ul>
+ <li>xalan-c-1.11-src.tar.gz</li>
+ <li>xalan-c-1.11-src.zip</li>
+</ul>
+<p>You can download the Xalan-C/C++ source packages from the 
+   <a href="http:///www.apache.org/dyn/mirrors/mirrors.cgi/xalan/xalan-c/sources">
+   Apache Mirrors</a>.</p>
+<p>You should <a href="#VerifyPkgs">verify</a> your packages against
+   the trusted signatures posted on the Apache master distribution site</p>
+
+
+<a name="DocPkgs">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Documentation Packages</h4>
+<p>These documentation packages can be built from the Xalan-C/C++ 
+<a href="#SourcePkgs">source distributions</a> on Linux or UNIX systems.
+Windows systems can only build the basic webpages without the apiDocs 
+interactive API (Application Program Interface) pages.
+</p>
+<p>The <b>html-full</b> is a very large package (355+ MB).  It contains the
+   interactive graphics images that map the include file relationships and
+   class relationships.  The <b>html-nograf</b> (42 MB) just contains tabular
+   relationships without the large volume of generated graphics.
+</p>
+<p>
+<b>Xalan-C/C++ <a href="http://www.apache.org/dist/xalan/xalan-c/KEYS">KEYS</a>
+</b>
+</p>
+<ul>
+ <li>xalan-c-1.11-docs-html-full.tar.gz</li>
+ <li>xalan-c-1.11-docs-html-full.zip</li>
+ <li>xalan-c-1.11-docs-html-nograf.tar.gz</li>
+ <li>xalan-c-1.11-docs-html-nograf.zip</li>
+</ul>
+<p>You can download the Xalan-C/C++ documentation packages from the 
+   <a href="http:///www.apache.org/dyn/mirrors/mirrors.cgi/xalan/xalan-c/docs">
+   Apache Mirrors</a>.</p>
+<p>You should <a href="#VerifyPkgs">verify</a> your packages against
+   the trusted signatures posted on the Apache master distribution site</p>
+
+
+<a name="BinaryPkgs">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Binary Packages</h4>
+<p>We are distributing compiled binary packages for several
+platforms.  The Xalan-C/C++ <a href="#DocPkgs">documentation</a> 
+is provided as a separate package.  We would like to distribute binary packages 
+for platforms on which Xerces-C/C++ has binary packages distributed.
+</p>
+<p>Both the Xalan (XSLT) and Xerces (XML Parser) libraries should
+both be compiled with the same version of C++ compiler.  A mismatch
+of compiler versions is known to create runtime library reference
+errors.  If you cannot find a compatible Xerces library, you should
+obtain the Xerces sources and compile both libraries.
+</p>
+<p>Binary packages labeled <b>xalan_combined</b> have compiled
+libraries for both Xalan-C/C++ and Xerces-C/C++.  All binary
+packages include the <b>Xalan</b> or <b>xalan.exe</b>
+command line styleshet transformation processor.
+</p>
+
+<table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">The development cycles for Xerces-C/C++ and Xalan-C/C++ are
+separately managed.  There is no synchronization of product distribution.</td>
+</tr>
+</table>
+
+<p>
+<b>Windows Packages - 32 BIT</b>
+</p>
+<ul>
+ <li>xalan_c-1.11-x86-windows-vc71.zip for MS VS 2003</li>
+ <li>xalan_c-1.11-x86-windows-vc8.zip for MS VS 2005 </li>
+ <li>xalan_c-1.11-x86-windows-vc9.zip for MS VS 2008</li>
+ <li>xalan_c-1.11-x86-windows-vc10.zip for MS VS 2010</li>
+</ul>
+<p>Combined with Xerces Parser</p>
+<ul>
+ <li>xalan_comb-1.11-x86-windows-vc71.zip for MS VS 2003</li>
+ <li>xalan_comb-1.11-x86-windows-vc8.zip for MS VS 2005 </li>
+ <li>xalan_comb-1.11-x86-windows-vc9.zip for MS VS 2008</li>
+ <li>xalan_comb-1.11-x86-windows-vc10.zip for MS VS 2010</li>
+</ul> 
+<p>
+<b>Windows Packages - 64 BIT</b>
+</p>
+<ul>
+ <li>xalan_c-1.11-amd64-windows-vc8.zip for MS VS 2005</li>
+ <li>xalan_c-1.11-amd64-windows-vc9.zip for MS VS 2008</li>
+ <li>xalan_c-1.11-amd64-windows-vc10.zip for MS VS 2010</li>
+</ul>
+<p>Combined with Xerces Parser</p>
+<ul>
+ <li>xalan_comb-1.11-amd64-windows-vc8.zip for MS VS 2005</li>
+ <li>xalan_comb-1.11-amd64-windows-vc9.zip for MS VS 2008</li>
+ <li>xalan_comb-1.11-amd64-windows-vc10.zip for MS VS 2010</li>
+</ul>
+<p>
+<b>BSD Packages - 64 BIT</b>
+</p>
+<ul>
+ <li>xalan-c-1.11-x86_64-freebsd_9-gcc_4_2.tar.gz</li>
+ <li>xalan_combined-c-1.11-x86_64-freebsd_9-gcc_4_2.tar.gz</li>
+</ul>
+<p>
+<b>Linux Packages</b>
+</p>
+<ul>
+ <li>xalan-c-1.11-x86_64-linux_2_6_32-gcc_4_4.tar.gz</li>
+ <li>xalan_combined-c-1.11-x86_64-linux_2_6_32-gcc_4_4.tar.gz</li>
+</ul>
+<p>You can download the Xalan-C/C++ compiled binary packages from the 
+   <a href="http:///www.apache.org/dyn/mirrors/mirrors.cgi/xalan/xalan-c/binaries">
+   Apache Mirrors</a>.</p>
+<p>You should <a href="#VerifyPkgs">verify</a> your packages against
+   the trusted signatures posted on the Apache master distribution site</p>
+
+
+<a name="VerifyPkgs">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Verify The Integrity of the Files</h3>
+
+<p>It is essential that you verify the integrity of the downloaded 
+   files using the PGP or MD5 signatures. You should only download the
+   <a href="http://www.apache.org/dist/xalan/xalan-c/KEYS">KEYS</a>
+   and the (asc/md5) signature files from the Apache Master Distribution.
+   The Apache Mirrors of previous sections should be used to download
+   the products.</p>
+<ul>
+  <li>
+<a href="http://www.apache.org/dyn/mirrors/mirrors.cgi/xalan/xalan-c/sources">
+      Apache Mirror Xalan-C Sources</a>
+</li>
+  <li>
+<a href="http://www.apache.org/dist/xalan/xalan-c/source">
+      Apache Master Xalan-C Sources - for Signature Files</a>
+</li>
+  <li>
+<a href="http://www.apache.org/dyn/mirrors/mirrors.cgi/xalan/xalan-c/docs">
+      Apache Mirror Xalan-C Documentation</a>
+</li>
+  <li>
+<a href="http://www.apache.org/dist/xalan/xalan-c/docs">
+      Apache Master Xalan-C Documentation - for Signature Files</a>
+</li>
+  <li>
+<a href="http://www.apache.org/dyn/mirrors/mirrors.cgi/xalan/xalan-c/binaries">
+      Apache Mirror Xalan-C Binary Packages</a>
+</li>
+  <li>
+<a href="http://www.apache.org/dist/xalan/xalan-c/binaries">
+      Apache Master Xalan-C Binary Packages - for Signature Files</a>
+</li>
+</ul>
+
+<p>Make sure you get the signature file for the particular distribution from the master directory, 
+   rather than from a mirror. 
+   Then verify the signatures using:</p>
+<blockquote class="source">
+<pre>
+   % pgpk -a KEYS
+   % pgpv &lt;archive-name&gt;.tar.gz.asc
+</pre>
+</blockquote>
+<b>or</b>
+<blockquote class="source">
+<pre>
+   % pgp -ka KEYS
+   % pgp &lt;archive-name&gt;.tar.gz.asc
+</pre>
+</blockquote>
+<b>or</b>
+<blockquote class="source">
+<pre>
+   % gpg --import KEYS
+   % gpg --verify &lt;archive-name&gt;.tar.gz.asc
+</pre>
+</blockquote>
+<p>Alternatively, you can verify the MD5 signature on the files. 
+A unix program called md5 or md5sum is included in many unix distributions. 
+It is also available as part of 
+<a href="http://www.gnu.org/directory/text/wordproc/textutils.html">GNU Textutils</a>.
+ Windows users can get binary md5 programs from 
+<a href="http://www.fourmilab.ch/md5/">here</a>,
+<a href="http://www.pc-tools.net/win32/freeware/console/">here</a>, or 
+<a href="http://www.slavasoft.com/fsum/">here</a>.</p>
+
+<a name="PlatformComp">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Platform Compatibility</h3>
+
+<p>We currently have no one committed to release UNIX and Linux
+binary packages.  If you have scripts to build these packages,
+your help would be appreciated. 
+You can contribute by posting your comments to the 
+<a href="mailto:dev@xalan.apache.org">xalan-dev</a> mailing list.</p>
+
+<p>The compiler version used for each platform is listed in the table below.
+The build platforms shown here have Xerces-C/C++ binary package support.
+    <table border="1">
+       <tr>
+         <th class="content" rowspan="1" colspan="1">Platform - Operating System</th>
+         <th class="content" rowspan="1" colspan="1">Compilers</th>
+       </tr>
+       <tr>
+         <td class="content" rowspan="1" colspan="1">Windows X86</td>
+         <td class="content" rowspan="1" colspan="1">VC7.1, VC8, VC9, VC10</td>
+       </tr>
+       <tr>
+         <td class="content" rowspan="1" colspan="1">Windows X86_64</td>
+         <td class="content" rowspan="1" colspan="1">VC8, VC9, VC10</td>
+       </tr>
+       <tr>
+         <td class="content" rowspan="1" colspan="1">HPUX ia64</td>
+         <td class="content" rowspan="1" colspan="1">ACC 6</td>
+       </tr>
+       <tr>
+         <td class="content" rowspan="1" colspan="1">HPUX ia64_64</td>
+         <td class="content" rowspan="1" colspan="1">ACC 6</td>
+       </tr>
+       <tr>
+         <td class="content" rowspan="1" colspan="1">AIX powerpc</td>
+         <td class="content" rowspan="1" colspan="1">xlc 7.0</td>
+       </tr>
+       <tr>
+         <td class="content" rowspan="1" colspan="1">AIX powerpc_64</td>
+         <td class="content" rowspan="1" colspan="1">xlc 7.0</td>
+       </tr>
+       <tr>
+         <td class="content" rowspan="1" colspan="1">SOLARIS sparc</td>
+         <td class="content" rowspan="1" colspan="1">cc 5.10</td>
+       </tr>
+       <tr>
+         <td class="content" rowspan="1" colspan="1">SOLARIS sparc_64</td>
+         <td class="content" rowspan="1" colspan="1">cc 5.10</td>
+       </tr>
+       <tr>
+         <td class="content" rowspan="1" colspan="1">SOLARIS X86</td>
+         <td class="content" rowspan="1" colspan="1">cc 5.10</td>
+       </tr>
+       <tr>
+         <td class="content" rowspan="1" colspan="1">SOLARIS X86_64</td>
+         <td class="content" rowspan="1" colspan="1">cc 5.10</td>
+       </tr>
+       <tr>
+         <td class="content" rowspan="1" colspan="1">LINUX X86</td>
+         <td class="content" rowspan="1" colspan="1">gcc 3.4</td>
+       </tr>
+       <tr>
+         <td class="content" rowspan="1" colspan="1">Linux X86_64</td>
+         <td class="content" rowspan="1" colspan="1">gcc 3.4</td>
+       </tr>
+       <tr>
+         <td class="content" rowspan="1" colspan="1">MAC OSX X86</td>
+         <td class="content" rowspan="1" colspan="1">gcc 4.0</td>
+       </tr>
+    </table>
+</p>
+<p>Building for platforms other than those listed will require
+a build of the Xerces-C/C++ XML Parser library from the sources.
+Use of Xalan and Xerces libraries compiled with different versions
+of compilers may cause problems</p>
+
+<table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">Use GNU tar to untar the Solaris distribution file; see 
+  <a href="faq.html#faq-11">A tar checksum error on Solaris</a>.
+</td>
+</tr>
+</table>
+
+<p>If you want to take advantage of the support for number formatting, sorting, 
+   and encoding the ICU provides, you should also download 
+   and install the <a href="http://icu-project.org">International Components for Unicode (ICU)</a>; see 
+   <a href="usagepatterns.html#icu">Using the ICU</a>.
+</p>
+
+<p>The IBM ICU is supported with Xerces-C version 2.8.  Xerces-C version 3 has 
+   introduced transcoding support modules, currently being evaluated 
+   for Xalan XSLT transcoders.
+</p>
+
+<table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">To access previous releases of Xalan-C++, visit the 
+  <a href="http://archive.apache.org/dist/xml/xalan-c/">Xalan-C archive directory</a>
+</td>
+</tr>
+</table>
+
+<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 - Mon 2012-10-22</div>
+</div>
+</body>
+</html>

Modified: xalan/site/docs/xalan/xalan-c/extensions.html
URL: http://svn.apache.org/viewvc/xalan/site/docs/xalan/xalan-c/extensions.html?rev=1401023&r1=1401022&r2=1401023&view=diff
==============================================================================
--- xalan/site/docs/xalan/xalan-c/extensions.html (original)
+++ xalan/site/docs/xalan/xalan-c/extensions.html Mon Oct 22 19:23:03 2012
@@ -1,440 +1,440 @@
-<?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: Xalan-C++ Extension Functions</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">Xalan-C++ Extension Functions</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>
-<a href="builddocs.html">Build Documents</a>
-</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>Extensions<br />
-</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>Xalan-C++ Extension Functions</h2>
-<ul>
-  <li>
-<a href="#intro">Introduction</a>
-</li>
-  <li>
-<a href="#implement">Implementing an extension function</a>
-</li>
-  <li>
-<a href="#install">Installing an extension function</a>
-</li>
-  <li>
-<a href="#use">Using an extension function</a>
-</li>
-</ul>
-<a name="intro">‌</a>
-<p align="right" size="2">
-<a href="#content">(top)</a>
-</p>
-<h3>Introduction</h3>
-<p>At times, you may want to call your own custom C functions from a stylesheet. For these situations, Xalan-C++ supports the 
-   creation and use of extension functions. Xalan-C++ also provides a <a href="extensionslib.html">library of extension functions
-   </a> for your use.</p>
-<p>You can think of extension functions as extending the core library of functions that XPath provides. Like the
-   XPath functions, an extension function returns an XObject, which may contain a value of any of the five XSLT
-   data types: node-set, result-tree-fragment, string, boolean, or number.</p> 
-<p>You can send arguments to an extension function in the form of XPath expressions, literals (for string, boolean, and number), 
-   the values returned by other functions, and XSL variables or parameters set to any of the preceding.</p>
-<p>For an example that implements, installs, and uses three extension functions, see the 
-<a href="samples.html#externalfunctions">External Functions</a> sample.</p>
-<table class="note">
-<tr>
-<td class="noteImg">
-<img src="resources/note.gif" alt="note" />
-</td>
-<td class="noteTxt">Xalan-C++ does not support extension elements.</td>
-</tr>
-</table>
-
-
-<a name="implement">‌</a>
-<p align="right" size="2">
-<a href="#content">(top)</a>
-</p>
-<h3>Implementing an extension function</h3>
-<p>Like the standard XPath functions, the functions you create derive from the Function base class. Set up your 
-   extension function class as follows:</p>
-<ol>
-  <li>The body of a function is the execute() method. Use the appropriate XObjectFactory method -- createNumber()
-      in the example below -- to create an XObject corresponding to the XSLT data type the function returns.<br />
-<br />
-</li>
-  <li>Implement a clone() method to enable Xalan to create and maintain a copy of the extension
-      function.<br />
-<br />
-</li> 
-  <li>(Optional) As Xalan does for the XPath functions, you may want to prevent the compiler from generating 
-      an assignment or equality operator for this function.</li>
-</ol>
-<p>These features all appear in the following example.</p>
-<blockquote class="source">
-<pre>
-// Base header file.  Must be first.
-#include &lt;xalanc/Include/PlatformDefinitions.hpp&gt;
-
-#include &lt;cmath&gt;
-#include &lt;ctime&gt;
-
-#include &lt;xercesc/util/PlatformUtils.hpp&gt;
-#include &lt;xalanc/XalanTransformer/XalanTransformer.hpp&gt;
-#include &lt;xalanc/XPath/XObjectFactory.hpp&gt;
-
-XALAN_CPP_NAMESPACE_USE
-
-// This class defines a function that will return the square root
-// of its argument.
-class FunctionSquareRoot : public Function
-{
-public:
-
-  /**
-   * Execute an XPath function object.  The function must return a valid
-   * XObject.
-   *
-   * @param executionContext executing context
-   * @param context          current context node
-   * @param opPos            current op position
-   * @param args             vector of pointers to XObject arguments
-   * @return                 pointer to the result XObject
-   */
-  virtual XObjectPtr
-  execute(
-      XPathExecutionContext&amp; executionContext,
-      XalanNode* /* context */,
-      const XObjectPtr arg,
-     	const Locator*	/* locator */) const
-  {
-    if (args.size() != 1)
-    {
-      executionContext.error("The square-root() function takes one argument!", 
-                              context);
-    }
-    assert(args[0] != 0);
-    // Use the XObjectFactory createNumber() method to create an XObject 
-    // corresponding to the XSLT number data type.
-    return executionContext.getXObjectFactory().createNumber(
-                                                        sqrt(args[0]-&gt;num()));
-  }
-
-  /**
-   * Implement clone() so Xalan can copy the square-root function into
-   * its own function table.
-   *
-   * @return pointer to the new object
-   */
-// For compilers that do not support covariant return types,
-// clone() must be declared to return the base type.
-#if defined(XALAN_NO_COVARIANT_RETURN_TYPE)
-  virtual Function*
-#else
-  virtual FunctionSquareRoot*
-#endif
-  clone() const
-  {
-    return new FunctionSquareRoot(*this);
-  }
-
-private:
-  // The assignment and equality operators are not implemented...
-  FunctionSquareRoot&amp;
-  operator=(const FunctionSquareRoot&amp;);
-  bool
-  operator==(const FunctionSquareRoot&amp;) const;
-}
-</pre>
-</blockquote>   
-
-<a name="install">‌</a>
-<p align="right" size="2">
-<a href="#content">(top)</a>
-</p>
-<h3>Installing an extension function</h3>
-<p>
-<a href="apiDocs/classXalanTransformer.html">XalanTransformer</a> provides methods for installing and uninstalling external functions:</p>
-<ul>
-  <li>installExternalFunction() makes the function available in the current instance of XalanTransformer. Use uninstallExternalFunction() to remove the function.<br />
-<br />
-</li>
-  <li>installExternalFunctionGlobal() makes the function available globally. Use uninstallExternalFunctionGlobal() to remove the function. The global install and uninstall operations are not thread-safe.  However, all global functions should be thread-safe, because multiple threads could call a particular function instance at the same time.</li>
-</ul>
-<p>These methods include arguments for the namespace, the function name, and the function implementation.</p>
-<p>When you install an extension function, the function inhabits the namespace you designate. For information about XML namespaces, see <a href="http://www.w3.org/TR/REC-xml-names/">Namespaces in XML</a>.</p>
-<p>The following code fragment installs locally the square root function defined above, and binds it to the extension-function name "square-root" in the namespace "http://MyExternalFunction.mycompany.org" so it can be accessed from stylesheets. Keep in mind that the function name does not need to be the same as the name of the function class, and that a function name may be used more than once provided that each function with that name is installed in a different namespace.</p>
-<blockquote class="source">
-<pre>#include &lt;xalanc/Include/PlatformDefinitions.hpp&gt;
-#include &lt;xercesc/util/PlatformUtils.hpp&gt;
-#include &lt;xalanc/XalanTransformer/XalanTransformer.hpp&gt;
-// You have created a header file for FunctionSquareRoot.
-#include &lt;MyFunctions/FunctionSquareRoot.hpp&gt;
-// The namespace...
-const XalanDOMString	
-    theNamespace("http://MyExternalFunction.mycompany.org");
-    
-theXalanTransformer.installExternalFunction(theNamespace,
-                                            XalanDOMString("square-root"),
-                                            FunctionSquareRoot());</pre>
-</blockquote>
-<p>For an example that installs three functions, see the <a href="samples.html#externalfunctions">External Functions</a> sample.</p>
-
-<a name="use">‌</a>
-<p align="right" size="2">
-<a href="#content">(top)</a>
-</p>
-<h3>Using an extension function</h3>
-<p>To use the extension function in a stylesheet, you must do the following:</p>
-<ol>
-  <li>Declare the extension function namespace.<br />
-<br />
-      <code>xmlns:<b>
-<i>prefix</i>
-</b>=<b>
-<i>URI</i>
-</b>
-</code>
-<br />
-<br />
-      The <b>
-<i>prefix</i>
-</b> identifies the namespace, and <b>
-<i>URI</i>
-</b> matches the namespace specified when the function
-      is installed.<br />
-<br />
-      By default, namespace declarations are included in the transformation output. To exclude namespaces from the output, 
-      use<br />
-<br />
-      <code>exclude-result-prefixes="<b>
-<i>prefix-1 prefix-2 ...</i>
-</b>"</code>
-<br />
-<br />
-      in the stylesheet element or<br />
-<br />
-      <code>xsl:exclude-result-prefixes="<b>
-<i>prefix-1 prefix-2 ...</i>
-</b>"</code>
-<br />
-<br />
-      in a literal result element or extension element.<br />
-<br />
-</li>
-  <li>Call the extension function in the same manner you would call an XPath function. The function name you use in the stylesheet is a Qualified Name (QName) made up of the prefix you declared in step 1 and the function name you specified when you installed the function.<br />
-<br />
-      You can use XPath expressions, literals (for string, boolean, and number), and values returned by other functions to
-      specify function arguments.</li>
-</ol>
-<p>Suppose, for example, you are working with XML documents containing area elements like
-   <code>&lt;area value="397"/&gt;</code>, where the value attribute identifies the area of a square.</p>
-<p>The following stylesheet declares the square-root function namespace (the prefix is up to you), instructs 
-   the processor not to copy the namespace declaration to the result tree, and uses the square-root function to return
-   the square root of //area/@value:</p>
-<blockquote class="source">
-<pre>
-&lt;?xml version="1.0"?&gt; 
-&lt;xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
-  version="1.0"
-	xmlns:external="http://ExternalFunction.xalan-c.xml.apache.org"
-  exclude-result-prefixes="external"&gt;
-  
-    &lt;xsl:template match="//area"&gt;
-    &lt;out&gt;
-      The area of the square is
-      &lt;xsl:value-of select="@value"/&gt; square units.
-      The length of each side is 
-      &lt;xsl:value-of select="external:square-root(@value)"/&gt; units
-    &lt;/out&gt;
-</pre>
-</blockquote>
-<p>This stylesheet converts  <code>&lt;area value="397"/&gt;</code> into the following output:</p>
-<blockquote class="source">
-<pre>&lt;out&gt;
-  The area of the square is 
-  397 square units.
-  The length of each side is 
-  19.9249 units.
-&lt;/out&gt;
-</pre>
-</blockquote>
-<p>For a slightly more complex variation on this example,  
-see the <a href="samples.html#externalfunctions">External Functions</a> sample.</p>
-<p align="right" size="2">
-<a href="#content">(top)</a>
-</p>
-<h4>Passing Nodes to a function</h4>
-<p>Please keep in mind that <b>all</b> LocationPath expressions return a node-set, even if the expression only 
-   returns a single attribute or a text node (node-sets with one member). You can use the XSLT string() function 
-   to convert a node-set value to string, and the number() function to convert a node-set value to number (a double).</p>
-<p>If you pass a node-set to an extension function, be sure to set up the function to process a node-set.</p>
-<p>Suppose, for example, you have a ProcessNodes function class that uses<br />
-<br /> 
-   <code>const NodeRefListBase&amp; theNodeList = args[0]-&gt;nodeset();</code>
-<br />
-<br />
-   in the execute() method to get a reference to the node-set.</p>
-<p>Assuming you install the function as "ProcessNodes" and use the "node-ext" prefix in a stylesheet to refer to the ProcessNodes function namespace, any of the following function calls are syntactically possible:</p>
-<p>
-<code>&lt;!--Process the current node--&gt;</code>
-<br />
-<code>&lt;xsl:variable name="success" select="node-ext:ProcessNodes(.)"/&gt;</code>
-</p>
-<p>
-<code>&lt;!--Process all nodes in current context--&gt;</code>
-<br />
-<code>&lt;xsl:variable name="success" select="node-ext:ProcessNodes(*)"/&gt;</code>
-</p>
-<p>
-<code>&lt;!-- Process all nodes --&gt;</code>
-<br />
-<code>&lt;xsl:variable name="success" select="node-ext:ProcessNodes(/*)"/&gt;</code>
-</p>
-<p>
-<code>&lt;!--Process the foo/baz nodes in current context --&gt;</code>
-<br />
-<code>&lt;xsl:variable name="success" select="node-ext:ProcessNodes(foo/baz)"/&gt;</code>
-</p>
-<p>
-<code>&lt;!--Process the/foo/baz and /bar/saz nodes --&gt;</code>
-<br />
-<code>&lt;xsl:variable name="success" select="node-ext:ProcessNodes(/foo/baz | /bar/saz)"/&gt;</code>
-</p>
-<p>The NodeRefListBase is in fact a list of references into the XML document, so keep in mind that getNextSibling(), 
-for example, gets you the next sibling in the document, which may not be the next Node in the node-set.</p>
-
-
-<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 - Sun 2012-10-07</div>
-</div>
-</body>
-</html>
+<?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: Xalan-C++ Extension Functions</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">Xalan-C++ Extension Functions</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>
+<a href="builddocs.html">Build Documents</a>
+</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>Extensions<br />
+</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>Xalan-C++ Extension Functions</h2>
+<ul>
+  <li>
+<a href="#intro">Introduction</a>
+</li>
+  <li>
+<a href="#implement">Implementing an extension function</a>
+</li>
+  <li>
+<a href="#install">Installing an extension function</a>
+</li>
+  <li>
+<a href="#use">Using an extension function</a>
+</li>
+</ul>
+<a name="intro">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Introduction</h3>
+<p>At times, you may want to call your own custom C functions from a stylesheet. For these situations, Xalan-C++ supports the 
+   creation and use of extension functions. Xalan-C++ also provides a <a href="extensionslib.html">library of extension functions
+   </a> for your use.</p>
+<p>You can think of extension functions as extending the core library of functions that XPath provides. Like the
+   XPath functions, an extension function returns an XObject, which may contain a value of any of the five XSLT
+   data types: node-set, result-tree-fragment, string, boolean, or number.</p> 
+<p>You can send arguments to an extension function in the form of XPath expressions, literals (for string, boolean, and number), 
+   the values returned by other functions, and XSL variables or parameters set to any of the preceding.</p>
+<p>For an example that implements, installs, and uses three extension functions, see the 
+<a href="samples.html#externalfunctions">External Functions</a> sample.</p>
+<table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">Xalan-C++ does not support extension elements.</td>
+</tr>
+</table>
+
+
+<a name="implement">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Implementing an extension function</h3>
+<p>Like the standard XPath functions, the functions you create derive from the Function base class. Set up your 
+   extension function class as follows:</p>
+<ol>
+  <li>The body of a function is the execute() method. Use the appropriate XObjectFactory method -- createNumber()
+      in the example below -- to create an XObject corresponding to the XSLT data type the function returns.<br />
+<br />
+</li>
+  <li>Implement a clone() method to enable Xalan to create and maintain a copy of the extension
+      function.<br />
+<br />
+</li> 
+  <li>(Optional) As Xalan does for the XPath functions, you may want to prevent the compiler from generating 
+      an assignment or equality operator for this function.</li>
+</ol>
+<p>These features all appear in the following example.</p>
+<blockquote class="source">
+<pre>
+// Base header file.  Must be first.
+#include &lt;xalanc/Include/PlatformDefinitions.hpp&gt;
+
+#include &lt;cmath&gt;
+#include &lt;ctime&gt;
+
+#include &lt;xercesc/util/PlatformUtils.hpp&gt;
+#include &lt;xalanc/XalanTransformer/XalanTransformer.hpp&gt;
+#include &lt;xalanc/XPath/XObjectFactory.hpp&gt;
+
+XALAN_CPP_NAMESPACE_USE
+
+// This class defines a function that will return the square root
+// of its argument.
+class FunctionSquareRoot : public Function
+{
+public:
+
+  /**
+   * Execute an XPath function object.  The function must return a valid
+   * XObject.
+   *
+   * @param executionContext executing context
+   * @param context          current context node
+   * @param opPos            current op position
+   * @param args             vector of pointers to XObject arguments
+   * @return                 pointer to the result XObject
+   */
+  virtual XObjectPtr
+  execute(
+      XPathExecutionContext&amp; executionContext,
+      XalanNode* /* context */,
+      const XObjectPtr arg,
+     	const Locator*	/* locator */) const
+  {
+    if (args.size() != 1)
+    {
+      executionContext.error("The square-root() function takes one argument!", 
+                              context);
+    }
+    assert(args[0] != 0);
+    // Use the XObjectFactory createNumber() method to create an XObject 
+    // corresponding to the XSLT number data type.
+    return executionContext.getXObjectFactory().createNumber(
+                                                        sqrt(args[0]-&gt;num()));
+  }
+
+  /**
+   * Implement clone() so Xalan can copy the square-root function into
+   * its own function table.
+   *
+   * @return pointer to the new object
+   */
+// For compilers that do not support covariant return types,
+// clone() must be declared to return the base type.
+#if defined(XALAN_NO_COVARIANT_RETURN_TYPE)
+  virtual Function*
+#else
+  virtual FunctionSquareRoot*
+#endif
+  clone() const
+  {
+    return new FunctionSquareRoot(*this);
+  }
+
+private:
+  // The assignment and equality operators are not implemented...
+  FunctionSquareRoot&amp;
+  operator=(const FunctionSquareRoot&amp;);
+  bool
+  operator==(const FunctionSquareRoot&amp;) const;
+}
+</pre>
+</blockquote>   
+
+<a name="install">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Installing an extension function</h3>
+<p>
+<a href="apiDocs/classXalanTransformer.html">XalanTransformer</a> provides methods for installing and uninstalling external functions:</p>
+<ul>
+  <li>installExternalFunction() makes the function available in the current instance of XalanTransformer. Use uninstallExternalFunction() to remove the function.<br />
+<br />
+</li>
+  <li>installExternalFunctionGlobal() makes the function available globally. Use uninstallExternalFunctionGlobal() to remove the function. The global install and uninstall operations are not thread-safe.  However, all global functions should be thread-safe, because multiple threads could call a particular function instance at the same time.</li>
+</ul>
+<p>These methods include arguments for the namespace, the function name, and the function implementation.</p>
+<p>When you install an extension function, the function inhabits the namespace you designate. For information about XML namespaces, see <a href="http://www.w3.org/TR/REC-xml-names/">Namespaces in XML</a>.</p>
+<p>The following code fragment installs locally the square root function defined above, and binds it to the extension-function name "square-root" in the namespace "http://MyExternalFunction.mycompany.org" so it can be accessed from stylesheets. Keep in mind that the function name does not need to be the same as the name of the function class, and that a function name may be used more than once provided that each function with that name is installed in a different namespace.</p>
+<blockquote class="source">
+<pre>#include &lt;xalanc/Include/PlatformDefinitions.hpp&gt;
+#include &lt;xercesc/util/PlatformUtils.hpp&gt;
+#include &lt;xalanc/XalanTransformer/XalanTransformer.hpp&gt;
+// You have created a header file for FunctionSquareRoot.
+#include &lt;MyFunctions/FunctionSquareRoot.hpp&gt;
+// The namespace...
+const XalanDOMString	
+    theNamespace("http://MyExternalFunction.mycompany.org");
+    
+theXalanTransformer.installExternalFunction(theNamespace,
+                                            XalanDOMString("square-root"),
+                                            FunctionSquareRoot());</pre>
+</blockquote>
+<p>For an example that installs three functions, see the <a href="samples.html#externalfunctions">External Functions</a> sample.</p>
+
+<a name="use">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Using an extension function</h3>
+<p>To use the extension function in a stylesheet, you must do the following:</p>
+<ol>
+  <li>Declare the extension function namespace.<br />
+<br />
+      <code>xmlns:<b>
+<i>prefix</i>
+</b>=<b>
+<i>URI</i>
+</b>
+</code>
+<br />
+<br />
+      The <b>
+<i>prefix</i>
+</b> identifies the namespace, and <b>
+<i>URI</i>
+</b> matches the namespace specified when the function
+      is installed.<br />
+<br />
+      By default, namespace declarations are included in the transformation output. To exclude namespaces from the output, 
+      use<br />
+<br />
+      <code>exclude-result-prefixes="<b>
+<i>prefix-1 prefix-2 ...</i>
+</b>"</code>
+<br />
+<br />
+      in the stylesheet element or<br />
+<br />
+      <code>xsl:exclude-result-prefixes="<b>
+<i>prefix-1 prefix-2 ...</i>
+</b>"</code>
+<br />
+<br />
+      in a literal result element or extension element.<br />
+<br />
+</li>
+  <li>Call the extension function in the same manner you would call an XPath function. The function name you use in the stylesheet is a Qualified Name (QName) made up of the prefix you declared in step 1 and the function name you specified when you installed the function.<br />
+<br />
+      You can use XPath expressions, literals (for string, boolean, and number), and values returned by other functions to
+      specify function arguments.</li>
+</ol>
+<p>Suppose, for example, you are working with XML documents containing area elements like
+   <code>&lt;area value="397"/&gt;</code>, where the value attribute identifies the area of a square.</p>
+<p>The following stylesheet declares the square-root function namespace (the prefix is up to you), instructs 
+   the processor not to copy the namespace declaration to the result tree, and uses the square-root function to return
+   the square root of //area/@value:</p>
+<blockquote class="source">
+<pre>
+&lt;?xml version="1.0"?&gt; 
+&lt;xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
+  version="1.0"
+	xmlns:external="http://ExternalFunction.xalan-c.xml.apache.org"
+  exclude-result-prefixes="external"&gt;
+  
+    &lt;xsl:template match="//area"&gt;
+    &lt;out&gt;
+      The area of the square is
+      &lt;xsl:value-of select="@value"/&gt; square units.
+      The length of each side is 
+      &lt;xsl:value-of select="external:square-root(@value)"/&gt; units
+    &lt;/out&gt;
+</pre>
+</blockquote>
+<p>This stylesheet converts  <code>&lt;area value="397"/&gt;</code> into the following output:</p>
+<blockquote class="source">
+<pre>&lt;out&gt;
+  The area of the square is 
+  397 square units.
+  The length of each side is 
+  19.9249 units.
+&lt;/out&gt;
+</pre>
+</blockquote>
+<p>For a slightly more complex variation on this example,  
+see the <a href="samples.html#externalfunctions">External Functions</a> sample.</p>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Passing Nodes to a function</h4>
+<p>Please keep in mind that <b>all</b> LocationPath expressions return a node-set, even if the expression only 
+   returns a single attribute or a text node (node-sets with one member). You can use the XSLT string() function 
+   to convert a node-set value to string, and the number() function to convert a node-set value to number (a double).</p>
+<p>If you pass a node-set to an extension function, be sure to set up the function to process a node-set.</p>
+<p>Suppose, for example, you have a ProcessNodes function class that uses<br />
+<br /> 
+   <code>const NodeRefListBase&amp; theNodeList = args[0]-&gt;nodeset();</code>
+<br />
+<br />
+   in the execute() method to get a reference to the node-set.</p>
+<p>Assuming you install the function as "ProcessNodes" and use the "node-ext" prefix in a stylesheet to refer to the ProcessNodes function namespace, any of the following function calls are syntactically possible:</p>
+<p>
+<code>&lt;!--Process the current node--&gt;</code>
+<br />
+<code>&lt;xsl:variable name="success" select="node-ext:ProcessNodes(.)"/&gt;</code>
+</p>
+<p>
+<code>&lt;!--Process all nodes in current context--&gt;</code>
+<br />
+<code>&lt;xsl:variable name="success" select="node-ext:ProcessNodes(*)"/&gt;</code>
+</p>
+<p>
+<code>&lt;!-- Process all nodes --&gt;</code>
+<br />
+<code>&lt;xsl:variable name="success" select="node-ext:ProcessNodes(/*)"/&gt;</code>
+</p>
+<p>
+<code>&lt;!--Process the foo/baz nodes in current context --&gt;</code>
+<br />
+<code>&lt;xsl:variable name="success" select="node-ext:ProcessNodes(foo/baz)"/&gt;</code>
+</p>
+<p>
+<code>&lt;!--Process the/foo/baz and /bar/saz nodes --&gt;</code>
+<br />
+<code>&lt;xsl:variable name="success" select="node-ext:ProcessNodes(/foo/baz | /bar/saz)"/&gt;</code>
+</p>
+<p>The NodeRefListBase is in fact a list of references into the XML document, so keep in mind that getNextSibling(), 
+for example, gets you the next sibling in the document, which may not be the next Node in the node-set.</p>
+
+
+<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>



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@xalan.apache.org
For additional commands, e-mail: commits-help@xalan.apache.org