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/06/16 05:57:39 UTC

svn commit: r1350856 [3/11] - in /xalan/site: ./ docs/ docs/xalan/ docs/xalan/resources/ docs/xalan/xalan-c/ docs/xalan/xalan-c/resources/ docs/xalan/xalan-j/ stylebook/ stylebook/Xalan-Logos/ stylebook/css/ stylebook/style/ stylebook/style/dtd/ xdocs/...

Added: xalan/site/docs/xalan/xalan-c/extensions.html
URL: http://svn.apache.org/viewvc/xalan/site/docs/xalan/xalan-c/extensions.html?rev=1350856&view=auto
==============================================================================
--- xalan/site/docs/xalan/xalan-c/extensions.html (added)
+++ xalan/site/docs/xalan/xalan-c/extensions.html Sat Jun 16 03:57:36 2012
@@ -0,0 +1,440 @@
+<?xml version="1.0" encoding="ISO-8859-1" 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=ISO-8859-1" />
+<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://xml.apache.org/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">&#8204;</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">&#8204;</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">&#8204;</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">&#8204;</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 - Fri 06/15/2012</div>
+</div>
+</body>
+</html>

Added: xalan/site/docs/xalan/xalan-c/extensionslib.html
URL: http://svn.apache.org/viewvc/xalan/site/docs/xalan/xalan-c/extensionslib.html?rev=1350856&view=auto
==============================================================================
--- xalan/site/docs/xalan/xalan-c/extensionslib.html (added)
+++ xalan/site/docs/xalan/xalan-c/extensionslib.html Sat Jun 16 03:57:36 2012
@@ -0,0 +1,368 @@
+<?xml version="1.0" encoding="ISO-8859-1" 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: Extensions library</title>
+<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
+<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">Extensions library</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>
+<a href="extensions.html">Extensions</a>
+</li>
+<li>Extensions Library<br />
+</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://xml.apache.org/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>Extensions library</h2>
+<ul>
+  <li>
+<a href="#intro">Introduction</a>
+</li>
+  <li>
+<a href="#exslt">Beta support for EXSLT extensions</a>
+</li>
+  <li>
+<a href="#xalanns">Xalan namespace</a>
+</li>
+  <li>
+<a href="#nodeset">nodeset</a>
+</li>
+  <li>
+<a href="#intersection">intersection</a>
+</li>
+  <li>
+<a href="#difference">difference</a>
+</li>
+  <li>
+<a href="#distinct">distinct</a>
+</li>
+  <li>
+<a href="#evaluate">evaluate</a>
+</li>
+  <li>
+<a href="#hassamenodes">hasSameNodes</a>
+</li>
+</ul>
+
+<a name="intro">&#8204;</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Introduction</h3>
+<p>Extension functions provide a powerful mechanism
+   for extending and simplifying what you can do with an XLST processor like
+   Xalan. With input and contributions from the XML open-source developer community, we are working on placing the most useful
+   extensions in an extensions library distributed with Xalan-C++. If you have ideas and/or contributions you would like to make, 
+   please email us at the <a href="mailto:xalan-dev@xml.apache.org">Xalan Development Mailing List</a>.</p>
+
+
+<a name="exslt">&#8204;</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>EXSLT extensions</h3>
+<p>Xalan-C++ supports the <a href="http://exslt.org/">EXSLT</a> initiative to provide a set of
+   standard extension functions to XSLT users. Xalan-C++ includes beta implementations for 
+   functions in four of the EXSLT namespaces (some are calls to extension already in the Xalan namespace).</p> 
+<p>The source files for the implementations are in the XalanEXSLT subdirectory of the source tree.  See</p> 
+<ul>
+  <li>
+<a href="apiDocs/XalanEXSLTCommonImpl_8hpp.html">XalanEXSLTCommonImpl</a>
+</li>
+  <li>
+<a href="apiDocs/XalanEXSLTMathImpl_8hpp.html">XalanEXSLTMathImpl</a>
+</li>
+  <li>
+<a href="apiDocs/XalanEXSLTSetImpl_8hpp.html">XalanEXSLTSetImpl</a>
+</li>
+  <li>
+<a href="apiDocs/XalanEXSLTStringImpl_8hpp.html">XalanEXSLTStringImpl</a>
+</li>
+  <li>
+<a href="apiDocs/XalanEXSLTDynamicImpl_8hpp.html">XalanEXSLTDynamicImpl</a>
+</li>
+  <li>
+<a href="apiDocs/XalanEXSLTDateTimeImpl_8hpp.html">XalanEXSLTDateTimeImpl</a>
+</li>
+</ul>
+<p>For the function specifications, see:</p>
+<ul>
+  <li>
+<a href="http://www.exslt.org/exsl/exsl.html">EXSLT common functions</a>
+</li>
+  <li>
+<a href="http://www.exslt.org/math/math.html">EXSLT math functions</a>
+</li>
+  <li>
+<a href="http://www.exslt.org/set/set.html">EXSLT set functions</a>
+</li>
+  <li>
+<a href="http://www.exslt.org/str/str.html">EXSLT string functions</a>
+</li>
+  <li>
+<a href="http://www.exslt.org/dyn/dyn.html">EXSLT dynamic functions</a>
+</li>
+  <li>
+<a href="http://www.exslt.org/date/date.html">EXSLT date-time functions</a>
+</li>
+</ul>
+<p>Anyone who would like to participate in the Xalan-C++ initiative to support EXSLT by testing these implementations or implementing 
+   other EXSLT functions is more than welcome. Please email us at the <a href="mailto:xalan-dev@xml.apache.org">Xalan Development Mailing List</a>.</p>
+
+
+<a name="xalanns">&#8204;</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Xalan namespace</h3>
+<p>We are placing the Xalan extension functions in the XalanExtensions module and we have defined a namespace for this module:</p>
+<p>     <code>http://xml.apache.org/xalan</code>
+</p>
+<p>If you are calling Xalan-C++-supplied extensions, we recommend that you define this namespace in your stylesheet element, and 
+   call the extension using the namespace prefix that you have associated with that namespace. That way, if we later reorganize 
+   how the Xalan-C++-supplied extensions are stored, you won't have to modify your stylesheet.</p>
+<p>For an example that uses this namespace, see <a href="#ex-nodeset">Example with the nodeset extension function</a>.</p>
+
+
+<a name="nodeset">&#8204;</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>nodeset</h3>
+<p>Implemented in <a href="apiDocs/classFunctionNodeSet.html">FunctionNodeSet</a>, <code>nodeset (result-tree-fragment)</code> 
+   casts a result tree fragment into a node-set.</p>
+<table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">When you bind a variable to a template, rather than to the value generated by a select expression, the data type of the variable 
+      is result tree fragment. For more information, see <a href="http://www.w3.org/TR/xslt#section-Result-Tree-Fragments">Result 
+      Tree Fragments</a>.</td>
+</tr>
+</table>
+
+<a name="ex-nodeset">&#8204;</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Example with the nodeset extension function</h4>
+<p>The following stylesheet uses the nodeset extension function to cast a result tree fragment into a node-set that can then be 
+   navigated in standard XPath manner. It uses the http://xml.apache.org/xalan namespace to provide access to the nodeset() method 
+   in xml.apache.xalan.lib.Extensions.</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:xalan="http://xml.apache.org/xalan"
+                   exclude-result-prefixes="xalan"&gt;
+&lt;xsl:template match="/"&gt;
+  &lt;out&gt;
+	  &lt;xsl:variable name="rtf"&gt;
+      &lt;docelem&gt;
+        &lt;elem1&gt;
+          &lt;elem1a&gt;ELEMENT1A&lt;/elem1a&gt;
+          &lt;elem1b&gt;,ELEMENT1B&lt;/elem1b&gt;
+        &lt;/elem1&gt;
+        &lt;elem2&gt;
+          &lt;elem2a&gt;ELEMENT2A&lt;/elem2a&gt;
+        &lt;/elem2&gt;
+      &lt;/docelem&gt;
+    &lt;/xsl:variable&gt;     
+      &lt;xsl:for-each select="xalan:nodeset($rtf)/docelem//*"&gt;
+        &lt;xsl:value-of select="name(.)"/&gt;&lt;xsl:text&gt;,&lt;/xsl:text&gt;
+      &lt;/xsl:for-each&gt;
+  &lt;/out&gt;
+&lt;/xsl:template&gt; 
+&lt;/xsl:stylesheet&gt;
+</pre>
+</blockquote>
+<p>The output of running this stylesheet (with any XML input source) is a comma-delimited list of the element names in the node-set<br />
+     <code>&lt;out&gt;elem1,elem1a,elem1b,elem2,elem2a&lt;/out&gt;</code>
+</p>
+<table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">For illustration purposes, the preceding stylesheet pays no attention to the structure and content of the XML input document. 
+      Instead, it processes the template (in the stylesheet) bound to the variable named rtf.</td>
+</tr>
+</table>
+
+
+<a name="intersection">&#8204;</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>intersection</h3>
+<p>Implemented in <a href="apiDocs/classFunctionIntersection.html">FunctionIntersection</a>, <code>intersection (node-set1, 
+   node-set2)</code> returns a node-set with all nodes that are in ns1 and in ns2.</p>
+
+<a name="difference">&#8204;</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>difference</h3>
+<p>Implemented in <a href="apiDocs/classFunctionDifference.html">FunctionDifference</a>, <code>difference(node-set1, 
+   node-set2)</code> returns a node-set with the nodes in node-set1 and not in node-set2.</p>
+
+<a name="distinct">&#8204;</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>distinct</h3>
+<p>Implemented in <a href="apiDocs/classFunctionDistinct.html">FunctionDistinct</a>, distinct (node-set) returns a node-set 
+   containing nodes with distinct string values. If more than one node in the node-set contains the same text node value, distinct 
+   only returns the first of these nodes that it finds.</p>
+
+<a name="evaluate">&#8204;</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>evaluate</h3>
+<p>Implemented in <a href="apiDocs/classFunctionEvaluate.html">FunctionEvaluate</a>, <code>evaluate (xpath-expression)</code> 
+   returns the result of evaluating the xpath-expression in the current XPath expression context (automatically passed in by the 
+   extension mechanism).</p>
+<p>Use the evaluation extension function when the value of the expression is not known until run time.</p>
+
+<a name="hassamenodes">&#8204;</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>hasSameNodes</h3>
+<p>Implemented in <a href="apiDocs/classFunctionHasSameNodes.html">FunctionHasSameNodes</a>, <code>hasSameNodes(node-set1, 
+   node-set2)</code> returns true if both node-set1 and node-set2 contain exactly the same set of nodes.</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 - Fri 06/15/2012</div>
+</div>
+</body>
+</html>

Added: xalan/site/docs/xalan/xalan-c/faq.html
URL: http://svn.apache.org/viewvc/xalan/site/docs/xalan/xalan-c/faq.html?rev=1350856&view=auto
==============================================================================
--- xalan/site/docs/xalan/xalan-c/faq.html (added)
+++ xalan/site/docs/xalan/xalan-c/faq.html Sat Jun 16 03:57:36 2012
@@ -0,0 +1,694 @@
+<?xml version="1.0" encoding="ISO-8859-1" 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: Frequently asked questions</title>
+<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
+<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">Frequently asked questions</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>
+<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>Xalan-C FAQs<br />
+</li></ul><hr /><ul>
+<li>
+<a href="whatsnew.html#bugs">Bugs</a>
+</li>
+<li>
+<a href="http://xml.apache.org/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 class="faqSubHead">Questions</h2>
+<ol start="1">
+<li>
+<a href="#faq-1">Where do I go to learn about XSLT</a>
+</li>
+<li>
+<a href="#faq-2">Asking questions about Xalan-C++</a>
+</li>
+<li>
+<a href="#faq-3">What is Xerces-C++?</a>
+</li>
+<li>
+<a href="#faq-4">Which version of Xerces should I be using?</a>
+</li>
+<li>
+<a href="#faq-5">Should I be using the Xerces DOM or Xalan DOM?</a>
+</li>
+<li>
+<a href="#faq-6">Problems with samples in Windows</a>
+</li>
+<li>
+<a href="#faq-7">Building on Windows</a>
+</li>
+<li>
+<a href="#faq-8">Building on UNIX</a>
+</li>
+<li>
+<a href="#faq-9">Make errors on UNIX platforms</a>
+</li>
+<li>
+<a href="#faq-10">What is ICU</a>
+</li>
+<li>
+<a href="#faq-11">A tar checksum error on Solaris</a>
+</li>
+<li>
+<a href="#faq-12">Xalan-C++ in Apache</a>
+</li>
+<li>
+<a href="#faq-13">Is Xalan-C++ thread-safe?</a>
+</li>
+<li>
+<a href="#faq-14">What can I do to speed up transformations?</a>
+</li>
+<li>
+<a href="#faq-15">Stylesheet validation</a>
+</li>
+<li>
+<a href="#faq-16">What does the XalanDOMException HIERARCHY_REQUEST_ERR mean?</a>
+</li>
+<li>
+<a href="#faq-17">Submitting Patches</a>
+</li>
+<li>
+<a href="#faq-18">Transformation Output Methods</a>
+</li>
+<li>
+<a href="#faq-19">Problems Using Sun's Forte/Workshop Compiler with code containing std::istrstream</a>
+</li>
+<li>
+<a href="#faq-20">Modifying an instance of XalanDocument</a>
+</li>
+<li>
+<a href="#faq-21">Changing Where Error Output is Sent</a>
+</li>
+<li>
+<a href="#faq-22">Programmatic Error Information</a>
+</li>
+<li>
+<a href="#faq-23">String Transcoding</a>
+</li>
+<li>
+<a href="#faq-24">Error Code/Exception Summary</a>
+</li>
+<li>
+<a href="#faq-25">Extension Functions</a>
+</li>
+<li>
+<a href="#faq-26">Outputting results to a file on Windows 95/98</a>
+</li>
+<li>
+<a href="#faq-27">Using format-number and ICU</a>
+</li>
+<li>
+<a href="#faq-28">Perl wrapper for Xalan-C++?</a>
+</li>
+<li>
+<a href="#faq-29">Missing LocalMsgIndex.hpp file</a>
+</li>
+</ol>
+<h2 class="faqSubHead">Answers</h2>
+<h3 id="faq-1" class="faqTitle">1. Where do I go to learn about XSLT</h3>
+<div class="faqQuestion">Where do I go to learn about XSLT?</div>
+<br />
+<hr />
+<div class="faqAnswer">
+<p>The definitive sources are the W3C XSLT and XPath recommendations: <a href="http://www.w3.org/TR/xslt">W3C Recommendation 16 November 1999 XSL Transformations (XSLT) Version 1.0</a> and 
+      <a href="http://www.w3.org/TR/xpath">XML Path Language (XPath) Version 1.0</a>.</p>
+   <p>For general questions not specific to Xalan-C++, see Dave Pawson's <a href="http://www.dpawson.co.uk/xsl/xslfaq.html">XSL Frequently Asked Questions</a> and Michael Kay's 
+      <a href="http://www.wrox.com/Consumer/Store/Details.asp?ISBN=1861003129">XSLT Programmer's Reference</a>.</p>
+   <p>For a brief listing of tutorials, discussion forums, and other materials, see <a href="overview.html#uptospeed">Getting up to speed with XSLT</a>.</p>
+</div>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3 id="faq-2" class="faqTitle">2. Asking questions about Xalan-C++</h3>
+<div class="faqQuestion">Where can I ask a question?</div>
+<br />
+<hr />
+<div class="faqAnswer">
+<p>For generic questions about XSL stylesheets and transformations, use the <a href="http://www.mulberrytech.com/xsl/xsl-list/">
+      XSL-List -- Open Forum on XSL</a> hosted by Mulberry Technologies. There is an archive that can be searched as well. Please 
+      review the archive before posting a new question.</p>
+   <p>For specific questions on Xalan-C++, see xalan-c-users@xml.apache.org and xalan-dev@xml.apache.org on 
+      <a href="http://archive.covalent.net/">http://archive.covalent.net/</a>. To subscribe to these mailing lists, see 
+      <a href="http://xml.apache.org/mail.html">Mailing Lists</a>. Again, please review the archives before posting a new 
+      question.</p>
+</div>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3 id="faq-3" class="faqTitle">3. What is Xerces-C++?</h3>
+<div class="faqQuestion">What is Xerces-C++ and why do I need it?</div>
+<br />
+<hr />
+<div class="faqAnswer">
+<p>Xerces-C++ is a validating XML parser written in a portable subset of C++. Xerces-C++ makes it easy to give your application the ability 
+      to read and write XML data. Like Xalan-C++, Xerces-C++ is available from the Apache XML site:  
+      <a href="http://xml.apache.org/xerces-c/index.html">http://xml.apache.org/xerces-c/index.html</a>
+</p>
+</div>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3 id="faq-4" class="faqTitle">4. Which version of Xerces should I be using?</h3>
+<div class="faqQuestion">Which version of Xerces should I be using?</div>
+<br />
+<hr />
+<div class="faqAnswer">
+<p>The Xalan-C++ release notes includes information about the Xerces-C++ release with which the Xalan-C++ release has been coordinated 
+      and tested. See <a href="whatsnew.html#status">Status</a>
+</p>
+</div>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3 id="faq-5" class="faqTitle">5. Should I be using the Xerces DOM or Xalan DOM?</h3>
+<div class="faqQuestion">Should I be using the Xerces DOM or Xalan DOM?</div>
+<br />
+<hr />
+<div class="faqAnswer">
+<p>The Xalan DOM implementation is highly optimised for transformations.  However, whilst you can build documents in the Xalan DOM, 
+      subsequent modification will not work.  The Xalan DOM is designed to be either an input or an output from a transformation, not 
+      as a general DOM implementation.</p>
+   <p>So in cases where you want to simply transform documents using Xalan, using the internal DOM implementation is the best approach.</p>
+   <p>In cases where you want to modify the DOM document on the fly, you should use the Xerces DOM as the base document.  You can wrap 
+      the Xerces DOM in a wrapper (see  <a href="usagepatterns.html#xercesdomwrapperparsedsource"> passing in a Xerces DOM</a>) 
+      to then use as an input to a Xalan transformation.  Alternatively you can output the result of a transformation to a Xerces DOM 
+      document (see <a href="usagepatterns.html#dom">working with DOM input and output</a>).  In either case, the Xerces document 
+      can be freely modified.  However, after you modify the document, you need to re-build the wrapper so that any changes are replicated 
+      in the Xalan wrappers.</p>
+</div>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3 id="faq-6" class="faqTitle">6. Problems with samples in Windows</h3>
+<div class="faqQuestion">I have encountered problem executing the Xalan-C++ sample applications after rebuilding them under Win32 Environment (Windows NT 4.0, SP3).
+   When I tried to execute the sample, I receive the error message 
+   "Debug Assertion Failed! ...  Expression: _BLOCK_TYPE_IS_VALID(pHead-&gt;nBlockUse)".</div>
+<br />
+<hr />
+<div class="faqAnswer">
+<p>You may be mixing debug and release versions of executables and libraries. In other words, if you are compiling the sample for debug, 
+      then you should link with the debug version of the Xalan-C++ and Xerces-C++ libraries and run with the debug version of the dynamic link 
+      libraries.</p>
+   <p>You must also make sure your application is linking with the Debug multithreaded DLL run-time library or the Multithreaded DLL 
+      run-time library.  To check this setting do the following in Visual C++:</p>
+   <ol>
+     <li>Select Settings from the Project menu.<br />
+<br />
+</li>
+     <li>Click the C/C++ tab.<br />
+<br />
+</li>
+     <li>In the Category drop-down list, select Code Generation.<br />
+<br />
+</li>
+     <li>In the Use run-time library drop-down list, select Multithreaded DLL for the Win32 Release configuration, or select Debug 
+         Multithreaded DLL for the Win32 Debug configuration.</li>
+   </ol>
+   <p>Once you have changed this setting, you must rebuild your project.</p>
+</div>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3 id="faq-7" class="faqTitle">7. Building on Windows</h3>
+<div class="faqQuestion">What do I need to rebuild Xalan-C++ on Windows?</div>
+<br />
+<hr />
+<div class="faqAnswer">
+<p>In order to build Xalan-C++ on Windows, you will need the supported version of Xerces-C++ and MS Visual C++ 6.0 installed with Service 
+      Pack 5 for Visual C++ and Visual Studio. In previous versions of Xalan-C++, the requirement on MS Visual C++ 6.0 was to have Service 
+      Pack 3 installed.  In this case, you should also apply the bug fixes for the C++ standard library that shipped with Visual C++ 6.0. 
+      These fixes are available from the Dinkumware site: <a href="http://www.dinkumware.com/vc_fixes.html">
+      http://www.dinkumware.com/vc_fixes.html</a>.</p>
+   <p>If you do not want to apply the Dinkumware patches, or you are using a different Service Pack, you must rebuild all of the Xerces 
+      and Xalan binaries.</p>
+   <p>For more details, see <a href="build_instruct.html#win32">Steps for doing a Windows build</a>.</p>
+</div>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3 id="faq-8" class="faqTitle">8. Building on UNIX</h3>
+<div class="faqQuestion">What do I need to rebuild Xalan-C++ on UNIX?</div>
+<br />
+<hr />
+<div class="faqAnswer">
+<p>To build Xalan-C++ on supported UNIX platforms, you need Xerces-C++, the GNU make utility, and a supported C++ compiler.  For more 
+      details see: <a href="build_instruct.html#unix">Steps for doing a UNIX build</a>.</p>
+</div>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3 id="faq-9" class="faqTitle">9. Make errors on UNIX platforms</h3>
+<div class="faqQuestion">I get errors in the Makefile when running the make utility.  What's wrong?</div>
+<br />
+<hr />
+<div class="faqAnswer">
+<p>You must use the GNU make utility.  Other make utilities may not work with the Xalan Makefile</p>
+</div>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3 id="faq-10" class="faqTitle">10. What is ICU</h3>
+<div class="faqQuestion">What is ICU and why do I need it?</div>
+<br />
+<hr />
+<div class="faqAnswer">
+<p>The International Components for Unicode(ICU) is a C and C++ library that provides robust and full-featured Unicode support on 
+      a wide variety of platforms. Xalan-C++ uses the ICU to extend support for encoding, number formatting, and sorting.</p> 
+   <p>The ICU is available for download from <a href="http://oss.software.ibm.com/icu/index.html">
+      http://oss.software.ibm.com/icu/index.html</a>.</p>
+   <p>This release of Xalan was tested with International Components for Unicode(ICU) version 3.2.</p>
+   <p>For more details see: <a href="usagepatterns.html#icu">Using the International Components for Unicode (ICU)</a>.</p>
+   
+</div>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3 id="faq-11" class="faqTitle">11. A tar checksum error on Solaris</h3>
+<div class="faqQuestion">I am getting a tar checksum error on Solaris. What's the problem?</div>
+<br />
+<hr />
+<div class="faqAnswer">
+<p>The Solaris tar utility you are using does not properly handle files with long pathnames.  You must use GNU tar (gtar), which 
+      handles arbitrarily long pathnames and is freely available on every platform on which Xalan-C++ is supported.  If you don't already 
+      have GNU tar installed on your system, you can obtain it from the Free Software Foundation
+      <a href="http://www.gnu.org/software/tar/tar.html">http://www.gnu.org/software/tar/tar.html</a>.  For additional background 
+      information on this problem, see the online manual<a href="http://www.gnu.org/manual/tar/html_chapter/tar_8.html#SEC112">
+      GNU tar and POSIX tar </a> for the utility.</p>
+</div>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3 id="faq-12" class="faqTitle">12. Xalan-C++ in Apache</h3>
+<div class="faqQuestion">Is it possible to run Xalan-C++ from an Apache server?</div>
+<br />
+<hr />
+<div class="faqAnswer">
+<p>A simple Apache module called <a href="samples.html#apachemodulexslt">ApacheModuleXSLT</a> is provided as a sample. 
+      It demonstrates how to integrate Xalan-C++ with Apache.</p>
+</div>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3 id="faq-13" class="faqTitle">13. Is Xalan-C++ thread-safe?</h3>
+<div class="faqQuestion">Is Xalan-C++ thread-safe?</div>
+<br />
+<hr />
+<div class="faqAnswer">
+<p>Instances of XalanTransformer are not thread-safe; each thread should use its own instance.</p>
+   <p>In order to support very efficient use in multi-threaded applications, Xalan-C++ is designed to avoid synchronization as much as
+      possible. Each thread of execution is required to have its own set of "support" objects that contain the state of the
+      transformation.  Accordingly, no synchronization is required when multiple threads are executing.</p>     
+   <p>Parsed ("compiled") stylesheets (see <a href="usagepatterns.html#compiled">Compiling stylesheets</a>) and parsed
+      source documents may be freely shared by multiple threads of execution without worrying about providing synchronized access to 
+      them. The <b>only</b> exception to this rule: You use XercesParserLiaison to parse a document after calling 
+      XercesParserLiaison::setBuildBridgeNodes(false) or XercesParserLiaison::setThreadSafe(false). In this case, the document 
+      <b>cannot</b> be shared by multiple threads of execution. For reasons of performance, we do not recommend the use of
+      XercesParserLiaison, so this should not be an issue for most applications.</p>
+   <p>All other objects in Xalan-C++ are <b>not</b> thread-safe. Each thread must have its own instance of each object.</p>
+   <p>See the <a href="samples.html#threadsafe">ThreadSafe</a> sample program for more information.</p>
+</div>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3 id="faq-14" class="faqTitle">14. What can I do to speed up transformations?</h3>
+<div class="faqQuestion">What can I do to speed up transformations?</div>
+<br />
+<hr />
+<div class="faqAnswer">
+<p>To maximize performance, here are some suggestions for you to keep in mind as you set up your applications:</p>
+   <ul>
+     <li>Use a compiled stylesheet when you expect to use the stylesheet more than once.<br />
+<br />
+</li>     
+     <li>Set up your stylesheets to function efficiently.<br />
+<br />
+</li>
+       <ul>
+         <li>Don't use "//" (descendant axes) patterns near the root of a large document.<br />
+<br />
+</li>
+         <li>Use xsl:key elements and the key() function as an efficient way to retrieve node sets.<br />
+<br />
+</li>
+         <li>Where possible, use pattern matching rather than xsl:if or xsl:when statements.<br />
+<br />
+</li>
+         <li>xsl:for-each is fast because it does not require pattern matching.<br />
+<br />
+</li>
+         <li>Keep in mind that xsl:sort prevents incremental processing.<br />
+<br />
+</li>
+         <li>When you create variables, &lt;xsl:variable name="fooElem" select="foo"/&gt; is usually faster than
+         &lt;xsl:variable name="fooElem"&gt;&lt;xsl:value-of-select="foo"/&gt;&lt;/xsl:variable&gt;.<br />
+<br />
+</li>
+         <li>Be careful using the last() function.<br />
+<br />
+</li>
+         <li>The use of index predicates within match patterns can be expensive.<br />
+<br />
+</li>
+       </ul>
+   </ul>
+</div>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3 id="faq-15" class="faqTitle">15. Stylesheet validation</h3>
+<div class="faqQuestion">Can I validate an XSL stylesheet?</div>
+<br />
+<hr />
+<div class="faqAnswer">
+<p>An XSL stylesheet is an XML document, so it can have a DOCTYPE and be subject to validation, but you probably will have
+      to write a custom DTD for the purpose.</p>
+   <p>The XSLT Recommendation includes a <a href="http://www.w3.org/TR/xslt#dtd">DTD Fragment 
+      for XSL Stylesheets</a> with some indications of what you need to do to create a complete DTD for a given
+      stylesheet. Keep in mind that stylesheets can include literal result elements and produce output that is not valid
+      XML.</p>
+   <p>You can use the xsl:stylesheet doctype defined in xsl-html40s.dtd for stylesheets that generate HTML.</p>
+</div>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3 id="faq-16" class="faqTitle">16. What does the XalanDOMException HIERARCHY_REQUEST_ERR mean?</h3>
+<div class="faqQuestion">What does the XalanDOMException HIERARCHY_REQUEST_ERR mean?</div>
+<br />
+<hr />
+<div class="faqAnswer">
+<p>It means that an attempt was made to add a node to a DOM that would create an invalid structure.  For example, text nodes 
+      are not allowed as children of the document node.</p>
+   <p>This is a common error when attempting to transform to DOM.  Source documents and stylesheets that might produce valid serialized XML
+      might not produce value DOM.  The usual suspect is text nodes being generated before the document element is generated.</p>
+   <p>If you think you have seen this error because of a bug in Xalan-C++'s source tree implementation, please post a bug report on Bugzilla, and attach a minimal source document 
+      and stylesheet that produce the problem to the bug report.</p>
+</div>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3 id="faq-17" class="faqTitle">17. Submitting Patches</h3>
+<div class="faqQuestion">Who do I submit patches to?</div>
+<br />
+<hr />
+<div class="faqAnswer">
+<p>Your contributions are much appreciated! Please e-mail your patches to <a href="mailto:xalan-dev@xml.apache.org">Xalan Development Mailing List</a>.</p>
+</div>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3 id="faq-18" class="faqTitle">18. Transformation Output Methods</h3>
+<div class="faqQuestion">How do I output a transformation to a DOM, a file, an in-memory buffer, or as input to another transformation?  Since the C++ 
+   language can automatically construct an XSLTResultTarget from any of its constructor's argument types, you usually don't need 
+   to create one explicitly.</div>
+<br />
+<hr />
+<div class="faqAnswer">
+<p>The output parameter of XalanTransformer::transform() is an XSLTResultTarget which has many constructors.</p>
+   <p>Output to a file:</p>
+   <ul>
+     <li>The easiest way is to use a null-terminated string containing the file name to create an XSLTResultTarget.  Or, use an 
+         instance of std::ofstream.  The command line executables, and many of the sample applications use file names, so take a 
+         look through the source code for more information.</li>
+   </ul>
+   <p>Output to an in-memory buffer:</p>
+   <ul>
+     <li>Use an instance of std::ostrstream or std::ostringstream to create an XSLTResultTarget.  See the StreamTransform sample 
+         for more information.</li>
+   </ul>
+   <p>Input to another transformation:</p>
+   <ul>
+     <li>Any of the previous output targets could be used as the input to another transformation, but the FormatterToSourceTree 
+         is probably the best for efficiency reasons.  See the source code for the TestXSLT command line program for more 
+         information.</li>
+   </ul>
+</div>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3 id="faq-19" class="faqTitle">19. Problems Using Sun's Forte/Workshop Compiler with code containing std::istrstream</h3>
+<div class="faqQuestion">Why won't XSLTInputSource work with std::istrstream on Sun Solaris using Forte/Sun Workshop compiler?</div>
+<br />
+<hr />
+<div class="faqAnswer">
+<p>There is a bug in Sun's C++ standard library implementation; see 
+      <a href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=14176">this bug</a>. The short answer is that you need to 
+      get a patch. The bug report includes the code for a simple program which you can use to see if your environment has the bug. 
+      There is also a link to the patch.</p>
+</div>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3 id="faq-20" class="faqTitle">20. Modifying an instance of XalanDocument</h3>
+<div class="faqQuestion">My transformation outputs to a XalanDocument (actually XalanSourceTreeDocument underneath) but W3C DOM functions like 
+   DOMElement::setAttribute don't work! Am I going crazy or what?</div>
+<br />
+<hr />
+<div class="faqAnswer">
+<p>No, you aren't going crazy. Xalan's default source tree is read-only for efficiency. If you need a DOM that supports 
+      modifications, use the Xerces DOM instead.  See the TransformToXercesDOM sample for more information.</p>
+</div>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3 id="faq-21" class="faqTitle">21. Changing Where Error Output is Sent</h3>
+<div class="faqQuestion">XalanTransformer outputs errors to the console. How do I, for example, output error to a file?</div>
+<br />
+<hr />
+<div class="faqAnswer">
+<p>By default, XalanTransformer creates a XalanTransformerProblemListener (a subclass of ProblemListener) that writes 
+      output to std::cerr. To change this you can:</p>
+   <ul>
+     <li>Redirect std::cerr from the command line.</li>
+     <li>Call XalanTranformer::setWarningStream with a different std::ostream before calling XalanTransformer::transform.</li>
+     <li>Instantiate your own XalanTransformerProblemListener with a different output stream and call 
+         XalanTransformer::setProblemListener() before calling XalanTransformer::transform().</li>
+     <li>Subclass some ProblemListener type and do custom handling of errors (you still then need to tell XalanTransformer 
+         instances to use your ProblemListener.)</li>
+   </ul>
+   <p>In most case you probably want to do one of the first two.</p>
+</div>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3 id="faq-22" class="faqTitle">22. Programmatic Error Information</h3>
+<div class="faqQuestion">How do I programmatically get the file name, line number, and column number for an error in an XML file?</div>
+<br />
+<hr />
+<div class="faqAnswer">
+<p>Create a custom ErrorHandler (a Xerces-C++ class) and call XalanTransformer::setErrorHandler before parsing any sources.</p>
+</div>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3 id="faq-23" class="faqTitle">23. String Transcoding</h3>
+<div class="faqQuestion">How do I make a char* out of XalanDOMString (or vice-versa)?</div>
+<br />
+<hr />
+<div class="faqAnswer">
+<p>See the static method XalanDOMString::transcode, or the functions TranscodeToLocalCodePage in the API documentation.  
+   However, you should be very careful when transcoding Unicode characters to the local code page, because not all Unicode 
+   characters can be represented.</p>
+</div>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3 id="faq-24" class="faqTitle">24. Error Code/Exception Summary</h3>
+<div class="faqQuestion">Is there a table of error codes somewhere? How about a summary of what methods throw which exceptions?</div>
+<br />
+<hr />
+<div class="faqAnswer">
+<p>There isn't, but we're working on it.</p>
+</div>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3 id="faq-25" class="faqTitle">25. Extension Functions</h3>
+<div class="faqQuestion">The Xalan extension functions (xalan:node-set, etc.) don't work for me. Help!</div>
+<br />
+<hr />
+<div class="faqAnswer">
+<p>Did you declare the namespace on the xsl:stylesheet or xsl:transform element? It should look like this: </p>
+   <p>&lt;xsl:stylesheet version="1.0" xmlns:xalan="http://xml.apache.org/xalan"&gt; ...rest of stylesheet</p>
+   <p>If you did and you still have problems, you might want to ask the mailing list.</p>
+</div>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3 id="faq-26" class="faqTitle">26. Outputting results to a file on Windows 95/98</h3>
+<div class="faqQuestion">Why can't I ouput my results to a file on Windows 95/98?</div>
+<br />
+<hr />
+<div class="faqAnswer">
+<p>Well, you can, but it doesn't always work. Neither Windows 95 or 98 are supported or tested. There have been reports of 
+      problems on it, especially regarding Unicode support. See 
+      <a href="http://marc.theaimsgroup.com/?l=xalan-dev&amp;m=99840914524755&amp;w=2">this post</a> and 
+      <a href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=3825">this bug</a>.</p>
+</div>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3 id="faq-27" class="faqTitle">27. Using format-number and ICU</h3>
+<div class="faqQuestion">Why does Xalan emit a warning when using the XSLT function format-number()?</div>
+<br />
+<hr />
+<div class="faqAnswer">
+<p>Did you build with ICU support? See <a href="usagepatterns.html#icu">Using the International Components for 
+      Unicode (ICU)</a>.</p>
+</div>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3 id="faq-28" class="faqTitle">28. Perl wrapper for Xalan-C++?</h3>
+<div class="faqQuestion">Is there a Perl wrapper for Xalan-C++?</div>
+<br />
+<hr />
+<div class="faqAnswer">
+<p>There is no Apache Perl wrapper, however Edwin Pratomo has written a wrapper for Xalan-C++ version 1.4 that can be found 
+      on CPAN</p>
+</div>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3 id="faq-29" class="faqTitle">29. Missing LocalMsgIndex.hpp file</h3>
+<div class="faqQuestion">Why can't I find the LocalMsgIndex.hpp file?</div>
+<br />
+<hr />
+<div class="faqAnswer">
+<p>The LocalMsgIndex.hpp file is not shipped with the distributions because this file is generated during compile time.  This 
+      file is created at the start of the build process and customized for the locale and message set you are using.</p>
+   <p>On Windows, the LocalMsgIndex.hpp header is generated by the Localization project.  By building any project that has a 
+      dependency on the Localization project, will trigger the Message Localization component to built and the LocalMsgIndex.hpp 
+      to be generated.</p>
+   <p>To understand more on how to build with message localization support, see <a href="build_instruct.html#locale">Steps for 
+      Building with Message Localization Support</a>.</p>
+</div>
+<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 - Fri 06/15/2012</div>
+</div>
+</body>
+</html>

Added: xalan/site/docs/xalan/xalan-c/getstarted.html
URL: http://svn.apache.org/viewvc/xalan/site/docs/xalan/xalan-c/getstarted.html?rev=1350856&view=auto
==============================================================================
--- xalan/site/docs/xalan/xalan-c/getstarted.html (added)
+++ xalan/site/docs/xalan/xalan-c/getstarted.html Sat Jun 16 03:57:36 2012
@@ -0,0 +1,449 @@
+<?xml version="1.0" encoding="ISO-8859-1" 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: Getting Started with Xalan-C++</title>
+<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
+<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">Getting Started with 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>
+<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>
+<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://xml.apache.org/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>Getting Started with Xalan-C++</h2>
+<ul>
+<li>
+<a href="#download">Downloading what you need</a>
+</li>
+<li>
+<a href="#path">Setting up the path/library path</a>
+</li>
+<li>
+<a href="#samples">Trying out the samples</a>
+</li>
+<li>
+<a href="#commandline">Performing your own transformations from the command line</a>
+</li>
+<li>
+<a href="#apps">Setting up your own XSLT applications</a>
+</li>
+</ul>
+<p>This section is being rewritten. 
+<a href="index.html#getstarted">See: new getting started</a>
+</p>
+<a name="download">&#8204;</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Downloading what you need</h3>
+<p>For Xalan-C++ Version 1.11, we are distributing the following: 
+<ul>
+<li>AIX 5.1 32-bit and 64-bit xlC_r builds</li> 
+<li>HP-UX 11 32-bit and 64-bit aCC builds</li>
+<li>Red Hat Linux 7.2 32-bit and 64-bit Intel C++ builds</li>
+<li>Solaris 2.7 32-bit and 64-bit Forte C++ builds</li>
+<li>SuSE Linux 8.1 for IA-32 gcc 3.2.2 build  </li>
+<li>Windows 32-bit and 64-bit Visual C++ builds</li>
+</ul>
+</p>
+
+<p>As with previous releases, the documentation build containing this User's Guide and API documentation
+   will be provided in a separate distribution.</p> 
+<p>Please contact us at <a href="mailto:xalan-dev@xml.apache.org">Xalan Development Mailing List</a> if you would like to help provide builds for other platforms.</p>
+<p>If you do not already have it, you must also download the Xerces-C++ version 3.1.1 build as indicated below.</p> 
+<table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">The Xalan distribution files are in <a href="http://www.apache.org/dyn/closer.cgi/xml/xalan-c">Xalan-C downloads</a>. The Xerces distribution files are in 
+      <a href="http://www.apache.org/dyn/closer.cgi/xerces/c">Xerces-C downloads</a>.  Xalan documentation is provided in a separate package from the binary 
+      distribution files.  For Windows, documentation is packaged with the file name Xalan-C_1_11_0-docs.zip.  For UNIX, 
+      documentation is packaged with the file name of Xalan-C_1_11_0-docs.tar.gz.</td>
+</tr>
+</table>
+<br />
+<table border="1">
+  <tr>
+  <th class="content" rowspan="1" colspan="1">Xalan distribution files</th>
+  <th class="content" rowspan="1" colspan="1">Xerces distribution files</th>
+  <th class="content" rowspan="1" colspan="1">Platform</th>
+  </tr>
+  <tr>
+  <td class="content" rowspan="1" colspan="1">Xalan-C_1_11_0-aix_510-xlc_60_050623.tar.gz</td>
+  <td class="content" rowspan="1" colspan="1">xerces-c-3.1.1-aix_510-xlc_60_050623.tar.gz</td>
+  <td class="content" rowspan="1" colspan="1">AIX 5.1 (32-bit)</td>
+   </tr>
+  <tr>
+  <td class="content" rowspan="1" colspan="1">Xalan-C_1_11_0-aix_510_64-xlc_60_050623.tar.gz</td>
+  <td class="content" rowspan="1" colspan="1">xerces-c-3.1.1-aix_510_64-xlc_60_050623.tar.gz</td>
+  <td class="content" rowspan="1" colspan="1">AIX 5.1 (64 bit)</td>
+  </tr>
+  <tr>
+  <td class="content" rowspan="1" colspan="1" />
+  <td class="content" rowspan="1" colspan="1" />
+  <td class="content" rowspan="1" colspan="1">HP-UX 11.0 (32 bit)</td>
+  </tr>
+  <tr>
+  <td class="content" rowspan="1" colspan="1" />
+  <td class="content" rowspan="1" colspan="1" />
+  <td class="content" rowspan="1" colspan="1">HP-UX 11.0 (64 bit)</td>
+  </tr>    
+  <tr>
+  <td class="content" rowspan="1" colspan="1">Xalan-C_1_11_0-redhat_72-icc_71.tar.gz</td>
+  <td class="content" rowspan="1" colspan="1">xerces-c-3.1.1-redhat_72-icc_71.tar.gz</td>
+  <td class="content" rowspan="1" colspan="1">Redhat Linux 7.2 (32-bit)</td>
+  </tr>
+  <tr>
+  <td class="content" rowspan="1" colspan="1">Xalan-C_1_11_0-redhat_72_64-ecc_71.tar.gz</td>
+  <td class="content" rowspan="1" colspan="1">xerces-c-3.1.1-redhat_72_64-ecc_71.tar.gz</td>
+  <td class="content" rowspan="1" colspan="1">Redhat Linux 7.2 (64-bit)</td>
+  </tr>
+  <tr>
+  <td class="content" rowspan="1" colspan="1" />
+  <td class="content" rowspan="1" colspan="1" />
+  <td class="content" rowspan="1" colspan="1">Solaris 2.7 (32-bit)</td>
+  </tr>
+  <tr>
+  <td class="content" rowspan="1" colspan="1"> </td>
+  <td class="content" rowspan="1" colspan="1" />
+  <td class="content" rowspan="1" colspan="1">Solaris 2.7 (64-bit)</td>
+  </tr>
+  <tr>
+  <td class="content" rowspan="1" colspan="1">Xalan-C_1_11_0-suse_81-gcc_32.tar.gz</td>
+  <td class="content" rowspan="1" colspan="1">xerces-c-3.1.1-suse_81-gcc_32.tar.gz</td>
+  <td class="content" rowspan="1" colspan="1">SuSE Linux 8.1 (32-bit)</td>
+  </tr>
+  <tr>
+  <td class="content" rowspan="1" colspan="1">Xalan-C_1_11_0-windows_2000-msvc_60.zip<br />
+</td>
+  <td class="content" rowspan="1" colspan="1">xerces-c-3.1.1-windows_nt-msvc_60.zip<br />
+</td>
+  <td class="content" rowspan="1" colspan="1">Windows 2000<br />
+</td>
+  </tr>
+  <tr>
+  <td class="content" rowspan="1" colspan="1">Xalan-C_1_11_0-windows_2003_64-ecl_71.zip<br />
+</td>
+  <td class="content" rowspan="1" colspan="1">xerces-c-3.1.1-windows_2003_64-ecc_71.zip<br />
+</td>
+  <td class="content" rowspan="1" colspan="1">Windows 2003 Server (64-bit)<br />
+</td>
+  </tr>
+</table>
+<p>The compiler version used for each platform is listed in the table below.
+    <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">AIX 5.1</td>
+         <td class="content" rowspan="1" colspan="1">IBM C and C++ for AIX 6.00</td>
+       </tr>
+       <tr>
+         <td class="content" rowspan="1" colspan="1">HP/UX 11.0</td>
+         <td class="content" rowspan="1" colspan="1">aCC A.03.52</td>
+       </tr>
+       <tr>
+         <td class="content" rowspan="1" colspan="1">Red Hat Linux 7.2</td>
+         <td class="content" rowspan="1" colspan="1">Intel C++ Compiler, version 7.1</td>
+       </tr>
+       <tr>
+         <td class="content" rowspan="1" colspan="1">Solaris 2.7</td>
+         <td class="content" rowspan="1" colspan="1">Sun Workshop 6 update 2</td>
+       </tr>
+       <tr>
+         <td class="content" rowspan="1" colspan="1">SuSE Linux 8.1</td>
+         <td class="content" rowspan="1" colspan="1">gcc Compiler, version 3.2.2</td>
+       </tr>
+       <tr>
+         <td class="content" rowspan="1" colspan="1">Windows NT, 2000, and XP</td>
+         <td class="content" rowspan="1" colspan="1">Microsoft Visual C++ with SP5 (for 32-bit)<br />
+         Intel C++ Compiler, version 7.1 (for 64-bit)</td>
+       </tr>
+    </table>
+</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#gnutar">A tar checksum error on Solaris</a>.</td>
+</tr>
+</table>
+<a name="xalandists">&#8204;</a>
+
+<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>
+<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>
+
+
+<a name="path">&#8204;</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Setting up the path/library path</h3>
+<ul>
+  <li>
+<a href="#windowspath">For Windows</a>
+</li>
+  <li>
+<a href="#unixpath">For UNIX</a>
+</li>  
+</ul>
+
+<a name="windowspath">&#8204;</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>For Windows</h4>
+<p>To use the Windows binary distribution, you must place the Xalan executables and the Xalan and Xerces libraries on the path:</p>
+<ul>
+  <li>Put Xalan-C_1_11_0-&lt;my_Windows_distribution&gt;\bin and xerces-c-3.1.1-&lt;my_Windows_distribution&gt;\bin on the path.</li>
+</ul>
+<p>The Visual C++ Xalan project included with the Windows release knows the relative paths to the Xalan headers and libraries, 
+   but it does not know where you have unzipped the Xerces distribution. If you plan to use Visual C++ to build Xalan applications 
+   or <a href="readme.html#jar">rebuild Xalan</a>, you must also provide Visual C++ with access to the Xerces headers 
+   and libraries.</p> 
+<p>Use the Visual C++ Tools menu to open the Options dialog box, go to the Directories tab, and do the following:</p>
+<ul>
+  <li>Add the path to xerces-c-3.1.1-&lt;my_Windows_distribution&gt;\include to the list of directories of Include files.</li>
+  <li>Add the path to xerces-c-3.1.1-&lt;my_Windows_distribution&gt;\lib to the list of directories of Library files.</li>
+</ul>
+
+
+<a name="unixpath">&#8204;</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>For UNIX</h4>
+<p>To use one of the UNIX binary distributions, you must place the Xalan-C++ executable on the path, and the Xalan-C++ and Xerces-C++ 
+   libraries on the library path.</p>
+<p>For the Xalan-C++ AIX distributions:</p>
+<ul>
+  <li>Put Xalan-C_1_11_0-&lt;my_AIX_distribution&gt;/bin on the path (PATH).</li>
+  <li>Put Xalan-C_1_11_0-&lt;my_AIX_distribution&gt;/lib and xerces-c-3.1.1-&lt;my_AIX_distribution&gt;/lib 
+      on the library path (LIBPATH), or copy the shared libraries to /usr/lib.</li>
+</ul>
+<p>For the Xalan-C++ HP-UX 11 distributions:</p>
+<ul>
+  <li>Put Xalan-C_1_11_0-&lt;my_HPUX_distribution&gt;/bin on the path (PATH).<br />
+<br />
+</li>
+  <li>Put Xalan-C_1_11_0-&lt;my_HPUX_distribution&gt;/lib and xerces-c-3.1.1-&lt;my_HPUX_distribution&gt;/lib on the library path 
+      SHLIB_PATH), or copy the shared libraries to /usr/lib.</li>
+</ul>
+<p>For the Xalan-C++ Solaris distributions:</p>
+<ul>
+  <li>Put Xalan-C_1_11_0-&lt;my_Solaris_distribution&gt;/bin on the path (PATH).<br />
+<br />
+</li>
+  <li>Put Xalan-C_1_11_0-&lt;my_Solaris_distribution&gt;/lib and xerces-c-3.1.1-&lt;my_Solaris_distribution&gt;/lib on the library path 
+     (LD_LIBRARY_PATH), or copy the shared libraries to /usr/lib.</li>
+</ul>
+<p>For the Xalan-C++ RedHat and SuSE Linux distributions:</p>
+<ul>
+  <li>Put Xalan-C_1_11_0-&lt;my_Linux_distribution&gt;/bin on the path (PATH).</li>
+<li>Put Xalan-C_1_11_0-&lt;my_Linux_distribution&gt;/lib and xerces-c-3.1.1-&lt;my_Linux_distribution&gt;/lib on the library path (LD_LIBRARY_PATH), 
+or copy the shared libraries to /usr/lib.</li>
+</ul>
+
+<a name="samples">&#8204;</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Trying out the samples</h3>
+<p>The Xalan-C++ distribution includes a number of basic sample applications. We have precompiled these samples for you so they are ready to run, and you can review the source files to see just how they work. </p>
+<p>To run the samples, do the following:</p>
+<ol>
+<li>Set up your path (see above). In the Windows32 distribution, the sample executables are in
+Xalan-C_1_11_0-&lt;my_Windows_distribution&gt;\bin. In the UNIX distributions, the executables are in Xalan-C_1_11_0-&lt;my_UNIX_distribution&gt;/bin.</li>
+<li>Go to the samples subdirectory containing the sample.</li>
+<li>Run the sample from the command line (in Windows, use the DOS shell).</li>
+<li>Examine the application source files.</li>
+</ol>
+<p>For example, go to the SimpleTransform subdirectory and issue the following command:</p>
+<p>
+<code>SimpleTransform</code>
+</p>
+<p>SimpleTransform uses the foo.xsl stylesheet to transform foo.xml, and writes the transformation result to foo.out. To see how the example works, examine the source files: foo.xml, foo.xsl, foo.out, and SimpleTransform.cpp.</p>
+<p>For more information about the samples, see <a href="samples.html">Xalan-C++ Samples</a>.</p>
+<a name="commandline">&#8204;</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Performing your own transformations from the command line</h3>
+<p>The Xalan executable lets you perform transformations from the command line. The command line for 
+most standard transformations is as follows:</p>
+<p>
+<code>Xalan -o <b>
+<i>outputfile</i>
+</b> <b>
+<i>xmlSource</i>
+</b> <b>
+<i>stylesheet</i>
+</b>
+</code>
+</p>
+<p>where <b>
+<i>xmlSource</i>
+</b> is the XML source file name, <b>
+<i>stylesheet</i>
+</b> is the XSL stylesheet file name, and <b>
+<i>outputfile</i>
+</b> is the output file name.</p>
+<p>If you want the output to be displayed on the screen, simply omit the -o flag and <b>
+<i>outputfile</i>
+</b>.</p>
+<p>You can use this utility to try out XSL stylesheets you have written, to make sure they do what you expect with the XML source files they are designed to transform. The utility provides useful messages if the source file or stylesheet is not well formed. If you include a DOCTYPE statement or Schema hint in your XML source files and include the -v flag on the command line, the utility will also let you know whether the XML document is valid (conforms to that DOCTYPE or Schema). For more information, see <a href="commandline.html">Command-Line Utility</a>.</p>
+<a name="apps">&#8204;</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Setting up your own XSLT applications</h3>
+<p>You can start by using your own XML source files and XSL stylesheets with the sample applications, which illustrate a number of usage patterns. For more information on setting up applications, see <a href="usagepatterns.html">Basic Usage Patterns</a>.</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 - Fri 06/15/2012</div>
+</div>
+</body>
+</html>

Added: xalan/site/docs/xalan/xalan-c/icu.gif
URL: http://svn.apache.org/viewvc/xalan/site/docs/xalan/xalan-c/icu.gif?rev=1350856&view=auto
==============================================================================
Binary file - no diff available.

Propchange: xalan/site/docs/xalan/xalan-c/icu.gif
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream



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