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 <archive-name>.tar.gz.asc
-</pre>
-</blockquote>
-<b>or</b>
-<blockquote class="source">
-<pre>
- % pgp -ka KEYS
- % pgp <archive-name>.tar.gz.asc
-</pre>
-</blockquote>
-<b>or</b>
-<blockquote class="source">
-<pre>
- % gpg --import KEYS
- % gpg --verify <archive-name>.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 <archive-name>.tar.gz.asc
+</pre>
+</blockquote>
+<b>or</b>
+<blockquote class="source">
+<pre>
+ % pgp -ka KEYS
+ % pgp <archive-name>.tar.gz.asc
+</pre>
+</blockquote>
+<b>or</b>
+<blockquote class="source">
+<pre>
+ % gpg --import KEYS
+ % gpg --verify <archive-name>.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 <xalanc/Include/PlatformDefinitions.hpp>
-
-#include <cmath>
-#include <ctime>
-
-#include <xercesc/util/PlatformUtils.hpp>
-#include <xalanc/XalanTransformer/XalanTransformer.hpp>
-#include <xalanc/XPath/XObjectFactory.hpp>
-
-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& 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]->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&
- operator=(const FunctionSquareRoot&);
- bool
- operator==(const FunctionSquareRoot&) 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 <xalanc/Include/PlatformDefinitions.hpp>
-#include <xercesc/util/PlatformUtils.hpp>
-#include <xalanc/XalanTransformer/XalanTransformer.hpp>
-// You have created a header file for FunctionSquareRoot.
-#include <MyFunctions/FunctionSquareRoot.hpp>
-// 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><area value="397"/></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>
-<?xml version="1.0"?>
-<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">
-
- <xsl:template match="//area">
- <out>
- The area of the square is
- <xsl:value-of select="@value"/> square units.
- The length of each side is
- <xsl:value-of select="external:square-root(@value)"/> units
- </out>
-</pre>
-</blockquote>
-<p>This stylesheet converts <code><area value="397"/></code> into the following output:</p>
-<blockquote class="source">
-<pre><out>
- The area of the square is
- 397 square units.
- The length of each side is
- 19.9249 units.
-</out>
-</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& theNodeList = args[0]->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><!--Process the current node--></code>
-<br />
-<code><xsl:variable name="success" select="node-ext:ProcessNodes(.)"/></code>
-</p>
-<p>
-<code><!--Process all nodes in current context--></code>
-<br />
-<code><xsl:variable name="success" select="node-ext:ProcessNodes(*)"/></code>
-</p>
-<p>
-<code><!-- Process all nodes --></code>
-<br />
-<code><xsl:variable name="success" select="node-ext:ProcessNodes(/*)"/></code>
-</p>
-<p>
-<code><!--Process the foo/baz nodes in current context --></code>
-<br />
-<code><xsl:variable name="success" select="node-ext:ProcessNodes(foo/baz)"/></code>
-</p>
-<p>
-<code><!--Process the/foo/baz and /bar/saz nodes --></code>
-<br />
-<code><xsl:variable name="success" select="node-ext:ProcessNodes(/foo/baz | /bar/saz)"/></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 <xalanc/Include/PlatformDefinitions.hpp>
+
+#include <cmath>
+#include <ctime>
+
+#include <xercesc/util/PlatformUtils.hpp>
+#include <xalanc/XalanTransformer/XalanTransformer.hpp>
+#include <xalanc/XPath/XObjectFactory.hpp>
+
+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& 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]->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&
+ operator=(const FunctionSquareRoot&);
+ bool
+ operator==(const FunctionSquareRoot&) 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 <xalanc/Include/PlatformDefinitions.hpp>
+#include <xercesc/util/PlatformUtils.hpp>
+#include <xalanc/XalanTransformer/XalanTransformer.hpp>
+// You have created a header file for FunctionSquareRoot.
+#include <MyFunctions/FunctionSquareRoot.hpp>
+// 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><area value="397"/></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>
+<?xml version="1.0"?>
+<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">
+
+ <xsl:template match="//area">
+ <out>
+ The area of the square is
+ <xsl:value-of select="@value"/> square units.
+ The length of each side is
+ <xsl:value-of select="external:square-root(@value)"/> units
+ </out>
+</pre>
+</blockquote>
+<p>This stylesheet converts <code><area value="397"/></code> into the following output:</p>
+<blockquote class="source">
+<pre><out>
+ The area of the square is
+ 397 square units.
+ The length of each side is
+ 19.9249 units.
+</out>
+</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& theNodeList = args[0]->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><!--Process the current node--></code>
+<br />
+<code><xsl:variable name="success" select="node-ext:ProcessNodes(.)"/></code>
+</p>
+<p>
+<code><!--Process all nodes in current context--></code>
+<br />
+<code><xsl:variable name="success" select="node-ext:ProcessNodes(*)"/></code>
+</p>
+<p>
+<code><!-- Process all nodes --></code>
+<br />
+<code><xsl:variable name="success" select="node-ext:ProcessNodes(/*)"/></code>
+</p>
+<p>
+<code><!--Process the foo/baz nodes in current context --></code>
+<br />
+<code><xsl:variable name="success" select="node-ext:ProcessNodes(foo/baz)"/></code>
+</p>
+<p>
+<code><!--Process the/foo/baz and /bar/saz nodes --></code>
+<br />
+<code><xsl:variable name="success" select="node-ext:ProcessNodes(/foo/baz | /bar/saz)"/></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