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 [6/15] - /xalan/site/docs/xalan/xalan-c/
Modified: xalan/site/docs/xalan/xalan-c/faq.html
URL: http://svn.apache.org/viewvc/xalan/site/docs/xalan/xalan-c/faq.html?rev=1401023&r1=1401022&r2=1401023&view=diff
==============================================================================
--- xalan/site/docs/xalan/xalan-c/faq.html (original)
+++ xalan/site/docs/xalan/xalan-c/faq.html Mon Oct 22 19:23:03 2012
@@ -1,732 +1,732 @@
-<?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: Frequently asked questions</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">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://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 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 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 specific questions on Xalan-C++, see list archives:
- <a href="http://marc.info/?l=xalan-c-users">xalan-c-users</a>
- and <a href="http://marc.info/?l=xalan-dev">xalan-dev</a>.
- You must subscribe to these Apache mailing lists before posting your questions.</p>
-<p>The Apache Software Foundation has information on how you can subscribe to
- the <a href="http://www.apache.org/foundation/mailinglists.html">mailing lists</a>.</p>
-<p>You can post messages to the lists by sending mail to:<br />
- <a href="mailto:c-users@xalan.apache.org">Post message to xalan-c-users</a>. (User's list)<br />
- <a href="mailto:dev@xalan.apache.org">Post message to xalan-dev list</a>. (Developer's list)</p>
-<p>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://xerces.apache.org/index.html">http://xerces.apache.org</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->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 following:</p>
-<ul>
-<li>The Xalan-C/C++ source distribution package.</li>
-<li>The Xerces-C/C++ source distribution package or a compatible binary distribution package.</li>
-<li>A compatible Microsoft Visual Studio .NET (2003, 2005, 2008, 2010) software development platform.</li>
-</ul>
-<p>The Xalan-C/C++ Version 1.11 (pre-release) is available from the Apache Subversion
- repository at <b>http://svn.apache.org/repos/asf/xalan/c/trunk/.</b>
-</p>
-<p>After Xalan-C/C++ Version 1.11 is released, it can be downloaded from:
- <a href="http://www.apache.org/dyn/closer.cgi/xalan/xalan-c">Xalan Distributions</a>.</p>
-<p>The Xerces-C/C++ Version 3.1.1 is can be downloaded from:
- <a href="http://www.apache.org/dyn/closer.cgi/xerces/c/3">Xerces Distributions</a>.</p>
-<p>If you are building with the
- <a href="http://www.ibm.com/software/globalization/icu/">IBM-ICU</a>
- International Components for Unicode library, you will
- need to rebuild both the Xerces and Xalan libraries.</p>
-<p>For more details, see <a href="buildlibs.html#winbldenv">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="buildlibs.html#unixbldenv">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 <a href="http://www.ibm.com/software/globalization/icu/">IBM-ICU</a>
- 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>Xalan release 1.10 was tested with International Components for Unicode(ICU) version 3.2. The curent Xalan
- release 1.11 is not fully tested with IBM-ICU.</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, <xsl:variable name="fooElem" select="foo"/> is usually faster than
- <xsl:variable name="fooElem"><xsl:value-of-select="foo"/></xsl:variable>.<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! You can e-mail your patches to
- <a href="mailto:dev@xalan.apache.org">Xalan Development Mailing List</a> or raise an issue on the
- <a href="https://issues.apache.org/jira/browse/XALANC">Jira issue tracking system</a>.</p>
- <p>The Xalan projects use Jira as the issue tracking system. Any significant bug or feature request is
- posted to this system. You must subscribe to the system in order to submit patches and raise
- issues.</p>
-<ul>
-<li>Subscribe to Jira at:
- <a href="https://issues.apache.org/jira">https://issues.apache.org/jira</a>
-</li>
-<li>Browse the issues at:
- <a href="https://issues.apache.org/jira/browse/XALANC">https://issues.apache.org/jira/browse/XALANC</a>
-</li>
-</ul>
- <p>Issues posted to the project on Jira at XALANC are automatically posted to the
- <a href="mailto:dev@xalan.apache.org">Xalan Development Mailing List</a>
-</p>
- <p>Our mailing lists are moderated. You should subscribe to the mailing list in order to
- post a message, otherwise message delivery requires manual intervention or may be dropped.</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
- for the Forte/Workshop compiler.
- The short answer is that you need to get a patch.
- The bugzilla subsystem for Xalan issue tracking is no longer available. The ticket recorded
- here included a patch.</p>
-</div>
-<br />
-<hr />
-<div class="faqAnswer">
-<p>The issue is resolved if you use the SunStudio platform for your code development.
- The Solaris SunStudio is now available from Oracle.</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><xsl:stylesheet version="1.0" xmlns:xalan="http://xml.apache.org/xalan"> ...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.info/?l=xalan-dev&m=99840914524755&w=2">this post</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>On Windows binary distributions, the LocalMsgIndex.hpp file is a member of the "<code>Include</code>" directory.</p>
- <p>On Unix binary distributions, the LocalMsgIndex.hpp file is a member of the "<code>include/xalanc/PlatformSupport</code>" directory.</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 - 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: Frequently asked questions</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">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://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 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 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 specific questions on Xalan-C++, see list archives:
+ <a href="http://marc.info/?l=xalan-c-users">xalan-c-users</a>
+ and <a href="http://marc.info/?l=xalan-dev">xalan-dev</a>.
+ You must subscribe to these Apache mailing lists before posting your questions.</p>
+<p>The Apache Software Foundation has information on how you can subscribe to
+ the <a href="http://www.apache.org/foundation/mailinglists.html">mailing lists</a>.</p>
+<p>You can post messages to the lists by sending mail to:<br />
+ <a href="mailto:c-users@xalan.apache.org">Post message to xalan-c-users</a>. (User's list)<br />
+ <a href="mailto:dev@xalan.apache.org">Post message to xalan-dev list</a>. (Developer's list)</p>
+<p>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://xerces.apache.org/index.html">http://xerces.apache.org</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->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 following:</p>
+<ul>
+<li>The Xalan-C/C++ source distribution package.</li>
+<li>The Xerces-C/C++ source distribution package or a compatible binary distribution package.</li>
+<li>A compatible Microsoft Visual Studio .NET (2003, 2005, 2008, 2010) software development platform.</li>
+</ul>
+<p>The Xalan-C/C++ Version 1.11 (pre-release) is available from the Apache Subversion
+ repository at <b>http://svn.apache.org/repos/asf/xalan/c/trunk/.</b>
+</p>
+<p>After Xalan-C/C++ Version 1.11 is released, it can be downloaded from:
+ <a href="http://www.apache.org/dyn/closer.cgi/xalan/xalan-c">Xalan Distributions</a>.</p>
+<p>The Xerces-C/C++ Version 3.1.1 is can be downloaded from:
+ <a href="http://www.apache.org/dyn/closer.cgi/xerces/c/3">Xerces Distributions</a>.</p>
+<p>If you are building with the
+ <a href="http://www.ibm.com/software/globalization/icu/">IBM-ICU</a>
+ International Components for Unicode library, you will
+ need to rebuild both the Xerces and Xalan libraries.</p>
+<p>For more details, see <a href="buildlibs.html#winbldenv">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="buildlibs.html#unixbldenv">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 <a href="http://www.ibm.com/software/globalization/icu/">IBM-ICU</a>
+ 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>Xalan release 1.10 was tested with International Components for Unicode(ICU) version 3.2. The curent Xalan
+ release 1.11 is not fully tested with IBM-ICU.</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, <xsl:variable name="fooElem" select="foo"/> is usually faster than
+ <xsl:variable name="fooElem"><xsl:value-of-select="foo"/></xsl:variable>.<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! You can e-mail your patches to
+ <a href="mailto:dev@xalan.apache.org">Xalan Development Mailing List</a> or raise an issue on the
+ <a href="https://issues.apache.org/jira/browse/XALANC">Jira issue tracking system</a>.</p>
+ <p>The Xalan projects use Jira as the issue tracking system. Any significant bug or feature request is
+ posted to this system. You must subscribe to the system in order to submit patches and raise
+ issues.</p>
+<ul>
+<li>Subscribe to Jira at:
+ <a href="https://issues.apache.org/jira">https://issues.apache.org/jira</a>
+</li>
+<li>Browse the issues at:
+ <a href="https://issues.apache.org/jira/browse/XALANC">https://issues.apache.org/jira/browse/XALANC</a>
+</li>
+</ul>
+ <p>Issues posted to the project on Jira at XALANC are automatically posted to the
+ <a href="mailto:dev@xalan.apache.org">Xalan Development Mailing List</a>
+</p>
+ <p>Our mailing lists are moderated. You should subscribe to the mailing list in order to
+ post a message, otherwise message delivery requires manual intervention or may be dropped.</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
+ for the Forte/Workshop compiler.
+ The short answer is that you need to get a patch.
+ The bugzilla subsystem for Xalan issue tracking is no longer available. The ticket recorded
+ here included a patch.</p>
+</div>
+<br />
+<hr />
+<div class="faqAnswer">
+<p>The issue is resolved if you use the SunStudio platform for your code development.
+ The Solaris SunStudio is now available from Oracle.</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><xsl:stylesheet version="1.0" xmlns:xalan="http://xml.apache.org/xalan"> ...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.info/?l=xalan-dev&m=99840914524755&w=2">this post</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>On Windows binary distributions, the LocalMsgIndex.hpp file is a member of the "<code>Include</code>" directory.</p>
+ <p>On Unix binary distributions, the LocalMsgIndex.hpp file is a member of the "<code>include/xalanc/PlatformSupport</code>" directory.</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 - 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