<?xml version="1.0" standalone="no"?> 
<!DOCTYPE faqs SYSTEM "../../style/dtd/faqs.dtd">

<faqs title="Frequently asked questions">

  <faq title="Where do I go to learn about XSLT">  
    <q>Where do I go to learn about XSLT?</q>    
    <a><p>The definitive sources are the W3C XSLT and XPath recommendations: <resource-ref idref="xslt"/> and 
    <resource-ref idref="xpath"/>.</p>
    <p>For a brief listing of tutorials, discussion forums, and other materials, see <link idref="overview"
     anchor="uptospeed">Getting up to speed with XSLT</link>.</p></a>
  </faq>

  <faq title="Which version of Xerces should I be using?">  
    <q>Which version of Xerces should I be using?</q>    
    <a><p>&xslt4j-current; has been tested with &xml4j-used;. See <link idref="readme" anchor="status">Status</link>.</p></a>
  </faq>
  
  <faq title="Compatibility with &xslt4j; version 1">
   <q>How do I run applications that use the &xslt4j; version 1 API with &xslt4j2;</q>
   <a><p>Use the Xalan-Java 1 compatibility JAR to recompile and run your &xslt4j; 1 applications with &xslt4j2;. For more information, see 
   <link idref="usagepatterns" anchor="compat">Using the &xslt4j; version 1 API</link>.</p></a>
  </faq>
    
  <faq title="TrAX and JAXP">
    <q>What are TrAX and JAXP, and are they related?</q>
    <a><p>TrAX is the Transformation API for XML. In November 2000, TrAX was revised and incorporated into JAXP, the JAVA API for XML
    Processing. JAXP (including TrAX) provides users a standard, vendor-neutral API for working with (and transforming) XML documents. 
    You can use this API to build applications that are not bound to the particular implementation details of a given XML parser or XSL
    transformer.</p>
    <p>&xslt4j; includes the JAXP packages, implements the TrAX portion of that API (javax.xml.transform....), and includes xerces.jar from
    &xml4j;, which implements the parser portion of the API (javax.xml.parser....).</p>
<p>For more information, see <resource-ref idref="trax"/> and <resource-ref idref="jaxp11"/>.</p></a>
  </faq>
  <faq title="Chaining transformations">  
    <q>How do you chain together a series of transformations?"</q>
    
    <a><p>&xslt4j; supports two strategies for chaining together a series of transformations such that the output of each 
    transformation provides input for the next transformation.</p>
    <ul>
      <li>For each transformation in the series, you can set one SAX ContentHandler to process the input, and another ContenHandler to process
       the output.<br/><br/></li>
      <li>You can also set up a series of parent-child relationships between an XMLReader and one or more XMLFilters.</li> 
    </ul>
    <p>For the details and links to examples, see <link idref="usagepatterns" anchor="outasin">Using transformation output as input for 
    another transformation</link>.</p></a>
  </faq>
  
  <faq title="Issues running Xalan on JDK 1.3">
  <q>I'm having a problem building or running &xslt4j; on the JDK 1.3.</q>
  <a><p>The JDK 1.3 automatically places everything in the lib/ext directory in front of everything you place on the classpath. If this directory contains a version of DOM, JAXP, or Xerces that predates the &xslt4j; distribution you are using, you may have problems!</p> 
<p>The IBM JDK 1.3 includes an earlier version of xerces.jar in the lib/ext directory, a version that does not implement the JAXP 1.1 interfaces and therefore does not work with the current Xalan release. Accordingly, you must either purge the xerces.jar that is in that directory or overwrite it with the xerces.jar that is included with the Xalan distribution.</p>
<p>The SUN JDK 1.3 includes a pre-1.1 version of the JAXP in crimson.jar. Either purge the crimson.jar in that directory or overwrite it with a newer crimson.jar that includes and implements the JAXP 1.1 interfaces.</p></a>  
  </faq>
  <faq title="a &quot;DOM006 Hierarchy request error&quot;">
  <q>Why do I get a "DOM006 Hierarchy request error" when I try to transform into a DOM Document node?</q>
  <a>
  <p>This error occurs when Xalan tries to add a Node to a Document node where it isn't allowed. For example, attempting to add non-whitespace
  text to the DOM Document node produces this error.</p>
   <p>The error can also occur when a Document node is created with the DOMImplementation createDocument() method, which takes a qualified name
    as an argument and creates an element node.  If you then pass the returned Document node to Xalan, you get a "DOM006 Hierarchy request
    error" when Xalan tries to add a second element to the Document node. The solution is to either use the DocumentBuilder newDocument() method
    to create a Document that does not contain an element node, or use a DocumentFragment. It should be noted that the 
    DocumentBuilder newDocument() method is "Non-preferred" according to the JAXP 1.1 documentation.</p>
  </a>
  </faq>
  
  <faq title="Speeding up transformations">
  
    <q>What can I do to speed up transformations?</q>
    
    <a><p>In the ongoing development of &xslt4j;, enhancing performance is the primary goal of the &xslt4j; team.
    Here are some preliminary suggestions for you to keep in mind as you set up your applications:</p><ul>
    <li>Use a Templates object (with a different Transformers for each transformation) to perform multiple transformations with the same 
    set of stylesheet instructions (see <link idref="usagepatterns" anchor="multithreading">Multithreading</link>).<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
         &gt;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>
         <li>Decoding and encoding is expensive.<br/><br/></li>
       </ul>
     <li>For the ultimate in server-side scalability, perform transform operations on the client. For examples, see 
     <link idref="samples" anchor="appletxmltohtml">appletXMLtoHTML</link> and <link idref="samples"
     anchor="get-todo-list">get-todo-list</link>.</li>
    </ul></a>
  </faq>

  <faq title="NoClassDefFound errors">
  
    <q>I'm getting a NoClassDefFound error. What has to be on the classpath?</q>
    
    <a><ol>
    <li>xalan.jar and xerces.jar (or the XML parser you are using) must always be on the classpath.<br/><br/></li>
    <li>To run the samples in the samples subdirectories, xalansamples.jar must be on the classpath. To run the servlet (in
    samples/servlet), xalanservlet.jar must be on the classpath along with the javax.servlet and javax.servlet.http packages. Sun distributes
    the javax.servlet packages in the JSWDK servlet.jar file.<br/><br/></li>
    <li>To run extensions (including the samples in samples/extensions), bsf.jar, and bsfengines.jar must be on the 
    classpath. To run extensions implemented in JavaScript, js.jar must also be on the classpath. For information on what 
    you need to run extensions implemented in other scripting languages, see <link idref="extensions"
    anchor="supported-lang">Supported languages</link>.<br/><br/></li>
    <li>To run applications that use the &xslt4j; version 1 API, you must put xalanj1compat.jar on the classpath, recompile the application,
    and be sure xalanj1compat.jar is on the classpath at run time (see <link idref="usagepatterns" anchor="compat">Using the &xslt4j; version 1
    API)</link>.</li>
    </ol>
    <p>For more information, see <link idref="getstarted" anchor="classpath">Setting up the system classpath</link>.</p></a>
   </faq>
 
	<faq title="Stylesheet validation">
		<q>How do I validate an XSL stylesheet?</q>
		<a>
      <p>An XSL stylesheet is an XML document, so it can have a DOCTYPE and be subject to validation, right? </p>
      <p>The XSLT Recommendation includes a <jump href="http://www.w3.org/TR/xslt#dtd">DTD Fragment 
      for XSL Stylesheets</jump> 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>
		</a>
	</faq>
    
    <faq title="Retrieving nodes in the default namespace">
     <q>XPath isn't retrieving nodes that are in the default namespace I defined. How do I get them?</q>
     <a><p>If you are looking for nodes in a namespace, the XPath expression must include a namespace prefix that you have mapped to the
       namespace with an xmlns declaration. If you have declared a default namespace, it does not have a prefix (see 
       <jump href="http://www.w3.org/TR/xpath.html#node-tests">XPath Node Tests</jump>). In order to construct XPath expressions 
       to retrieve nodes from this namespace, you must add a namespace declaration that provides a prefix you can include in the XPath
        expressions.</p>
       <p>Suppose, for example, you you want to locate nodes in a default namespace declared as follows:<br/>
       <code>xmlns="http://my-namespace"</code></p>
       <p>Add a nampespace declaration with a prefix:<br/>
       <code>xmlns:foo="http://my-namespace"</code></p>       
       <p>Then you can use foo: in your XPath expression.</p>
       <p>Hint: Don't use default namespaces, and the problem doesn't arise.</p></a>
    </faq>   
</faqs>
