mkwan       2002/10/28 12:46:31

  Modified:    java/xdocs/sources/xalan extensions.xml extensionslib.xml
                        samples.xml
  Log:
  Update the extensions documentation.
  Use the new namespaces in documents and examples. Update EXSLT development
  status. Modify setup instructions for SQL samples.
  
  Revision  Changes    Path
  1.21      +57 -54    xml-xalan/java/xdocs/sources/xalan/extensions.xml
  
  Index: extensions.xml
  ===================================================================
  RCS file: /home/cvs/xml-xalan/java/xdocs/sources/xalan/extensions.xml,v
  retrieving revision 1.20
  retrieving revision 1.21
  diff -u -r1.20 -r1.21
  --- extensions.xml    8 Feb 2002 22:24:14 -0000       1.20
  +++ extensions.xml    28 Oct 2002 20:46:31 -0000      1.21
  @@ -73,9 +73,9 @@
     <s2 title="Introduction">
     <p>For those situations where you would like to augment the functionality of XSLT 
with calls to a procedural language, &xslt4j; supports the creation and use of 
extension elements and extension functions. &xslt4j; also provides a growing <link 
idref="extensionslib">extensions library</link> available for your use. An extension 
(a collection of elements and functions) inhabits a namespace, either a namespace you 
declare and designate as an extensions namespace, or one of the predefined namespaces 
that &xslt4j; provides. For information about XML namespaces, see <jump 
href="http://www.w3.org/TR/REC-xml-names/";>Namespaces in XML</jump>.</p>
   
  -<p><em>Extension elements</em>  Unlike a literal result element, which the 
stylesheet simply transfers to the result tree, an extension element performs an 
action. For example, you can use the Redirect extension elements shipped with &xslt4j; 
to redirect portions of your transformation output to one or more files. Extension 
elements may contain attributes, text nodes, other elements, basically any valid XML. 
Extension elements may perform quite sophisticated actions, given that the extension 
routine (the implementation) has direct access to the XSLT processor context object 
and to the element. In many cases the implementation returns void or null; if it does 
return a value, that value is placed in the transformation result tree.</p>
  +<p><em>Extension elements:</em>  Unlike a literal result element, which the 
stylesheet simply transfers to the result tree, an extension element performs an 
action. For example, you can use the Redirect extension elements shipped with &xslt4j; 
to redirect portions of your transformation output to one or more files. Extension 
elements may contain attributes, text nodes, other elements, basically any valid XML. 
Extension elements may perform quite sophisticated actions, given that the extension 
routine (the implementation) has direct access to the XSLT processor context object 
and to the element. In many cases the implementation returns void or null; if it does 
return a value, that value is placed in the transformation result tree.</p>
   
  -<p><em>Extension functions</em>  You can think of extension functions as extending 
the core library of functions that XPath provides. An extension function passes 
arguments to the extension implementation and returns a value. You can use extension 
functions to return values that XSLT can interact with directly (node-set, result tree 
fragment, string, boolean, and number) as well as values (of any type) that you pass 
in turn to other extension functions. Extension functions written in Java can also 
access certain items in the XSLT execution environment through an <jump 
href="apidocs/org/apache/xalan/extensions/ExpressionContext.html">ExpressionContext</jump>
 interface.</p>
  +<p><em>Extension functions:</em>  You can think of extension functions as extending 
the core library of functions that XPath provides. An extension function passes 
arguments to the extension implementation and returns a value. You can use extension 
functions to return values that XSLT can interact with directly (node-set, result tree 
fragment, string, boolean, and number) as well as values (of any type) that you pass 
in turn to other extension functions. Extension functions written in Java can also 
access certain items in the XSLT execution environment through an <jump 
href="apidocs/org/apache/xalan/extensions/ExpressionContext.html">ExpressionContext</jump>
 interface.</p>
   
   <p>XSLT extensions are specified in the <jump 
href="http://www.w3.org/TR/xslt#extension";>XSLT Recommendation</jump>.  This document 
focuses on the &xslt4j; implementation of those requirements, not on XSLT extensions 
in general. For additional information on extensions, consult the Recommendation or 
the other resources listed in <link idref="overview" anchor="uptospeed">Getting up to 
speed with XSLT</link>.</p>
   </s2><anchor name="supported-lang"/>
  @@ -135,31 +135,31 @@
   <note>The extension function could include both numdays and multiplier as 
arguments, thus bypassing the need for the extension element, but the purpose here is 
to illustrate the usage pattern for extension elements.</note>
   <p>As you review this stylesheet, please note the following:</p>
   <ol>
  -       <li>The declaration of the &xslt; xslt namespace, which provides support for 
the component and
  +       <li>The declaration of the xalan namespace, which provides support for the 
component and
        component/script elements:<br/><br/>
  -    <code>xmlns:lxslt="http://xml.apache.org/xslt";</code><br/><br/></li>
  +    <code>xmlns:xalan="http://xml.apache.org/xalan";</code><br/><br/></li>
       <li>The declaration of a namespace for this extension:<br/><br/>
       <code>xmlns:my-ext="ext1"</code><br/><br/></li>
        <li>The designation of this namespace prefix as an extension prefix. This 
causes any element in the namespace associated with this prefix to be treated as an 
extension element rather than a literal result element.<br/><br/>
        <code>extension-element-prefixes="my-ext"</code><br/><br/></li>
  -       <li>The lxslt:component with attributes designating the namespace prefix and 
the elements and
  +       <li>The xalan:component with attributes designating the namespace prefix and 
the elements and
        functions this extension provides.<br/><br/></li>
  -     <li>The lxslt:script subelement with a JavaScript implementation of the 
extension. For Java
  -     extensions, the lxslt:script element has a src attribute that you set to 
identify the Java class.</li>
  +     <li>The xalan:script subelement with a JavaScript implementation of the 
extension. For Java
  +     extensions, the xalan:script element has a src attribute that you set to 
identify the Java class.</li>
   </ol><anchor name="ex-basic"/>   
   <source>&lt;?xml version="1.0"?&gt;
   &lt;!--Namespaces are global if you set them in the stylesheet element--&gt;
   &lt;xsl:stylesheet 
       xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
       version="1.0"   
  -    xmlns:lxslt="http://xml.apache.org/xslt";
  +    xmlns:xalan="http://xml.apache.org/xalan";
       xmlns:my-ext="ext1"
       extension-element-prefixes="my-ext"&gt;
       
  -  &lt;!--The component and its script are in the lxslt namespace and define the 
  +  &lt;!--The component and its script are in the xalan namespace and define the 
       implementation of the extension.--&gt;
  -  &lt;lxslt:component prefix="my-ext" elements="timelapse" functions="getdate"&gt;
  -    &lt;lxslt:script lang="javascript"&gt;
  +  &lt;xalan:component prefix="my-ext" elements="timelapse" functions="getdate"&gt;
  +    &lt;xalan:script lang="javascript"&gt;
         var multiplier=1;
         // The methods or functions that implement extension elements always take 2
         // arguments. The first argument is the XSL Processor context; the second 
  @@ -178,8 +178,8 @@
           d.setDate(d.getDate() + totalDays);
           return d.toLocaleString();
         }
  -    &lt;/lxslt:script&gt;
  -  &lt;/lxslt:component&gt;
  +    &lt;/xalan:script&gt;
  +  &lt;/xalan:component&gt;
         
     &lt;xsl:template match="deadline"&gt;
       &lt;p&gt;&lt;my-ext:timelapse multiplier="2"/&gt;We have logged your enquiry 
and will 
  @@ -194,13 +194,14 @@
   </s2><anchor name="basic-syntax"/>
   <s2 title="Syntax">
   <p>You can always use the pattern illustrated above to set up and use extension 
elements and extension functions. For extension elements and functions implemented in 
Java, you can also use an abbreviated syntax, described in <link 
anchor="java-namespace">Alternative: using the abbreviated syntax for extensions 
implemented in Java</link>. Unless you are using the abbreviated syntax, do the 
following:</p>
  -<s3 title="1. Declare the lxslt namespace">
  -<p><br/><code>xmlns:lxslt="http://xml.apache.org/xslt";</code></p>
  -<p>The lxslt namespace provides support for the lxslt:component element and 
lxslt:script subelement.</p>
  +<s3 title="1. Declare the xalan namespace">
  +<p><br/><code>xmlns:xalan="http://xml.apache.org/xalan";</code></p>
  +<p>The xalan namespace provides support for the xalan:component element and 
xalan:script subelement.</p>
  +<note>The old namespace http://xml.apache.org/xslt is still supported for backward 
compatibility.</note>
   </s3>
   <s3 title="2. Declare a unique namespace for each extension prefix">
   <p><br/><code>xmlns:<ref>prefix</ref>=<ref>URI</ref></code></p>
  -<p>The <ref>prefix</ref> identifies the namespace, and <ref>URI</ref> is an 
arbitrary (but unique) string that matches the value of the prefix attribute of an 
lxslt:component element in the stylesheet.<br/>
  +<p>The <ref>prefix</ref> identifies the namespace, and <ref>URI</ref> is an 
arbitrary (but unique) string that matches the value of the prefix attribute of an 
xalan:component element in the stylesheet.<br/>
   Example: <code>xmlns:ext1="xyz"</code><br/><br/></p>
   </s3>
   <s3 title="3. If you are using extension elements, designate the extension element 
prefixes">
  @@ -218,42 +219,42 @@
   <p><code>xsl:exclude-result-prefixes="<ref>prefix-1 prefix-2 ...</ref>"</code></p> 
   <p>in a literal result element or extension element.</p>
   </s3>
  -<s3 title="5. Set up an lxslt:component">
  -<p><br/>In the scope of the lxslt namespace declaration:</p>
  -<p><code>&lt;lxslt:component prefix="<ref>prefix</ref>" </code><br/>
  +<s3 title="5. Set up an xalan:component">
  +<p><br/>In the scope of the xalan namespace declaration:</p>
  +<p><code>&lt;xalan:component prefix="<ref>prefix</ref>" </code><br/>
      <code>&nbsp;&nbsp;&nbsp;&nbsp;functions="<ref>func-1 func-2 
...func-n</ref>"</code><br/> 
      <code>&nbsp;&nbsp;&nbsp;&nbsp;elements="<ref>elem-1 elem-2 
...elem-n</ref>"&gt;</code><br/>
  -   <code>&nbsp;&nbsp;&lt;!--See lxslt:script below--&gt;</code><br/>
  -   <code>&lt;/lxslt:component&gt;</code></p>
  -<p>where <ref>func-1 func-2 ... func-n</ref> and <ref>elem-1 elem-2 ... 
elem-n</ref> designate the functions and elements the extension provides and the 
stylesheet uses. You can use the function-available and element-available functions to 
determine at run time whether a function or element designated in the lxslt:component 
is actually available.</p>
  -<note>If the component is implemented in Java, the values of the 
<code>functions</code> and <code>elements</code> attributes are ignored. The 
function-available and element-available functions use reflection to examine the 
actual Java methods.</note>
  +   <code>&nbsp;&nbsp;&lt;!--See xalan:script below--&gt;</code><br/>
  +   <code>&lt;/xalan:component&gt;</code></p>
  +<p>where <ref>func-1 func-2 ... func-n</ref> and <ref>elem-1 elem-2 ... 
elem-n</ref> designate the functions and elements the extension provides and the 
stylesheet uses. You can use the function-available and element-available functions to 
determine at run time whether a function or element designated in the xalan:component 
is actually available.</p>
  +<note>If the component is implemented in Java, the values of the functions and 
elements attributes are ignored. The function-available and element-available 
functions use reflection to examine the actual Java methods.</note>
   </s3>
   <anchor name="setup-script"/>
  -<s3 title="6. Set up the lxslt:script element">
  -<p><br/>In each lxslt:component, you must include exactly one lxslt:script element. 
If the extension is implemented in JavaScript:</p>
  -<p><code>&lt;lxslt:script lang="javascript" &gt;</code><br/>
  +<s3 title="6. Set up the xalan:script element">
  +<p><br/>In each xalan:component, you must include exactly one xalan:script element. 
If the extension is implemented in JavaScript:</p>
  +<p><code>&lt;xalan:script lang="javascript" &gt;</code><br/>
   <code>&nbsp;&nbsp;&lt;!--The implementation script--&gt;</code><br/>
  -<code>&lt;/lxslt:script&gt;</code></p>
  +<code>&lt;/xalan:script&gt;</code></p>
   <p>For other scripting languages supported by BSF, use the same approach as for 
JavaScript. &xslt4j; plans to add support for using the src attribute to identify 
another document that contains the implementation script; this feature is not yet 
supported.</p>
  -<p>If the extension is implemented in Java, you have three choices for the format 
of the src attribute in the lxslt:script element.</p>
  -<p><code>&lt;lxslt:script lang="javaclass" src="xalan://<ref>FQCN</ref>"/&gt;</code>
  +<p>If the extension is implemented in Java, you have three choices for the format 
of the src attribute in the xalan:script element.</p>
  +<p><code>&lt;xalan:script lang="javaclass" src="xalan://<ref>FQCN</ref>"/&gt;</code>
   <br/>where <ref>FQCN</ref> is the fully qualified class name.
  -<br/>Example: <code>&lt;lxslt:script lang="javaclass" 
src="xalan://java.util.Hashtable"/&gt;</code></p>
  -<p><code>&lt;lxslt:script lang="javaclass" src="xalan://<ref>PJPN</ref>"/&gt;</code>
  +<br/>Example: <code>&lt;xalan:script lang="javaclass" 
src="xalan://java.util.Hashtable"/&gt;</code></p>
  +<p><code>&lt;xalan:script lang="javaclass" src="xalan://<ref>PJPN</ref>"/&gt;</code>
   <br/>where <ref>PJPN</ref> is the beginning of or the complete name of a java 
package.
  -<br/>Example: <code>&lt;lxslt:script lang="javaclass" 
src="java.util"/&gt;</code></p>
  -<p><code>&lt;lxslt:script lang="javaclass" 
src="http://xml.apache.org/xslt/java"/&gt;</code></p>
  +<br/>Example: <code>&lt;xalan:script lang="javaclass" 
src="java.util"/&gt;</code></p>
  +<p><code>&lt;xalan:script lang="javaclass" 
src="http://xml.apache.org/xalan/java"/&gt;</code></p>
   <p>The different formats for the value of the src attribute when using Java 
extensions are more fully explained in <link anchor="java-namespace-declare">Declare 
the namespace</link>.</p>
   </s3>
  -<s3 title="Implicit DTD for lxslt:component">
  -<source>&lt;!ELEMENT lxslt:component (lxslt:script)&gt;
  -&lt;!ATTLIST lxslt:component
  +<s3 title="Implicit DTD for xalan:component">
  +<source>&lt;!ELEMENT xalan:component (xalan:script)&gt;
  +&lt;!ATTLIST xalan:component
     prefix CDATA #REQUIRED
     elements NMTOKENS #IMPLIED
     functions NMTOKENS #IMPLIED&gt;
   
  -&lt;!ELEMENT lxslt:script (#PCDATA | EMPTY)?&gt;
  -&lt;!ATTLIST lxslt:script
  +&lt;!ELEMENT xalan:script (#PCDATA | EMPTY)?&gt;
  +&lt;!ATTLIST xalan:script
     lang CDATA #REQUIRED
     src CDATA #IMPLIED&gt;</source>
   </s3>
  @@ -499,7 +500,7 @@
   </s3>
   </s2><anchor name="java-namespace"/>
   <s2 title="Alternative: using the abbreviated syntax for extensions implemented in 
Java">
  -<p>For extension functions and extension elements implemented in Java, &xslt4j; 
permits an abbreviated syntax. When you use the abbreviated syntax, you do not use an 
lxslt:component to designate the functions.</p>
  +<p>For extension functions and extension elements implemented in Java, &xslt4j; 
permits an abbreviated syntax. When you use the abbreviated syntax, you do not use an 
xalan:component to designate the functions.</p>
   <p>The abbreviated syntax supports the use of extension functions and extension 
elements implemented in Java. You cannot use this syntax with extensions implemented 
in JavaScript or another scripting language.</p>
   <anchor name="java-namespace-declare"/>
   <s3 title="Declare the namespace">
  @@ -512,15 +513,17 @@
   <p>where <ref>PJPN</ref> is a partial java package name.  That is, it is the 
beginning of or the complete name of a java package.
   <br/>Examples: <code>xmlns:my-package="xalan://java.util"</code>
   
<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<code>xmlns:my-package="xalan://mypackage"</code></p>
  -<p><em>Java format:</em> 
<code>xmlns:java="http://xml.apache.org/xslt/java";</code></p>
  +<p><em>Java format:</em> 
<code>xmlns:java="http://xml.apache.org/xalan/java";</code></p>
  +<note>The old namespace http://xml.apache.org/xslt/java is still supported for 
backward compatibility.</note>
   <note>Although the namespace declarations for the class and package formats are 
shown with the xalan:// prefix, the current implementation for those formats will 
simply use the string to the right of the rightmost forward slash as the Java class 
name. This format, however, is the preferred format for extension namespace 
declarations.</note>
   <note>The class: prefix which was sometimes required in earlier versions of 
&xslt4j; is no longer required.</note>
  -<note>These formats are also available when coding the src attribute of the 
lxslt:script element as explained in <link anchor="setup-script">Set up the 
lxslt:script element</link>.</note>
  +<note>These formats are also available when coding the src attribute of the 
xalan:script element as explained in <link anchor="setup-script">Set up the 
xalan:script element</link>.</note>
   </s3>
   <s3 title="Use the namespace when you make extension calls">
   <p>Use the declared prefix with the syntax described in <link 
anchor="ext-func-calls">Extension function Java calls</link>.</p>
  -<p>That is all. You do not include an lxslt:component element. Using the 
abbreviated syntax clearly involves less setup than using the 
lxslt:component/lxslt:script approach.</p>
  -<note>We recommend that, for extensions coded in Java, the abbreviated syntax 
should always be used since the lxslt:component/lxslt:script constructs add no 
functionality.</note>
  +<p>That is all. You do not include an xalan:component element. Using the 
abbreviated syntax clearly involves less setup than using the 
xalan:component/xalan:script approach.</p>
  +<note>We recommend that, for extensions coded in Java, the abbreviated syntax 
should always be used since the xalan:component/xalan:script constructs add no 
functionality.</note>
  +<note>The abbreviated syntax is supported in XSLTC, but the 
xalan:component/xalan:script constructs are not.</note>
   </s3><anchor name="ex-java-namespace"/> 
   <s3 title="Example: Formatting a date">
   <p>This example uses extension functions to call the SimpleDateFormat class and the 
IntDate class. IntDate uses String arguments to set up a Date object:</p>
  @@ -562,7 +565,7 @@
   &lt;xsl:stylesheet 
       xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
       version="1.0"   
  -    xmlns:java="http://xml.apache.org/xslt/java";
  +    xmlns:java="http://xml.apache.org/xalan/java";
       exclude-result-prefixes="java"&gt;
       
     &lt;!--Other templates for transforming the rest of
  @@ -652,15 +655,15 @@
   <p>The stylesheet:</p>
   <source>&lt;?xml version="1.0"?&gt; 
   &lt;xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
  -                xmlns:lxslt="http://xml.apache.org/xslt";
  +                xmlns:xalan="http://xml.apache.org/xalan";
                   xmlns:counter="MyCounter"
                   extension-element-prefixes="counter"
                   version="1.0"&gt;
   
  -  &lt;lxslt:component prefix="counter"
  +  &lt;xalan:component prefix="counter"
                      elements="init incr" functions="read"&gt;
  -    &lt;lxslt:script lang="javaclass" src="xalan://MyCounter"/&gt;
  -  &lt;/lxslt:component&gt;
  +    &lt;xalan:script lang="javaclass" src="xalan://MyCounter"/&gt;
  +  &lt;/xalan:component&gt;
   
     &lt;xsl:template match="/"&gt;
       &lt;HTML&gt;
  @@ -703,14 +706,14 @@
   <p></p>
   <source>&lt;?xml version="1.0"?&gt; 
   &lt;xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
  -                xmlns:lxslt="http://xml.apache.org/xslt";
  +                xmlns:xalan="http://xml.apache.org/xalan";
                   xmlns:counter="MyCounter"
                   extension-element-prefixes="counter"
                   version="1.0"&gt;
   
  -  &lt;lxslt:component prefix="counter"
  +  &lt;xalan:component prefix="counter"
                      elements="init incr" functions="read"&gt;
  -    &lt;lxslt:script lang="javascript"&gt;
  +    &lt;xalan:script lang="javascript"&gt;
         var counters = new Array();
   
         function init (xslproc, elem) {
  @@ -731,8 +734,8 @@
           counters[name]++;
           return null;
         }
  -    &lt;/lxslt:script&gt;
  -  &lt;/lxslt:component&gt;
  +    &lt;/xalan:script&gt;
  +  &lt;/xalan:component&gt;
   
     &lt;xsl:template match="/"&gt;
       &lt;HTML&gt;
  
  
  
  1.26      +46 -76    xml-xalan/java/xdocs/sources/xalan/extensionslib.xml
  
  Index: extensionslib.xml
  ===================================================================
  RCS file: /home/cvs/xml-xalan/java/xdocs/sources/xalan/extensionslib.xml,v
  retrieving revision 1.25
  retrieving revision 1.26
  diff -u -r1.25 -r1.26
  --- extensionslib.xml 13 Jun 2002 19:15:02 -0000      1.25
  +++ extensionslib.xml 28 Oct 2002 20:46:31 -0000      1.26
  @@ -63,21 +63,11 @@
   <li><link anchor="xalanns">&xslt; namespace</link></li>
   <li><link anchor="redirect">Redirect</link></li>
   <li><link anchor="nodeset">nodeset</link></li>
  -<li><link anchor="intersection">intersection</link></li>
  -<li><link anchor="difference">difference</link></li>
  -<li><link anchor="distinct">distinct</link></li>
  -<li><link anchor="hassamenodes">hasSameNodes</link></li>
   <li><link anchor="nodeinfo">NodeInfo extension functions</link></li>
   <li><link anchor="sql">SQL library</link></li>
   <li><link anchor="pipedocument">PipeDocument</link></li>
   <li><link anchor="evaluate">evaluate</link></li>
   <li><link anchor="tokenize">tokenize</link></li>
  -<li><link anchor="groupitem">group and item</link> <ref>(to be done)</ref></li>
  -<li><link anchor="type">type</link> <ref>(to be done)</ref></li>
  -<li><link anchor="todate">toDate</link> <ref>(to be done)</ref></li>
  -<li><link anchor="formatdate">formatDate</link> <ref>(to be done)</ref></li>
  -<li><link anchor="grep">grep</link> <ref>(to be done)</ref></li>
  -<li><link anchor="foreachtoken">forEachToken</link> <ref>(to be done)</ref></li>
   <li>Examples: <link anchor="ex-redirect">Redirect</link>, <link 
anchor="ex-nodeset">nodeset</link>, <link anchor="ex-sql">SQL library</link></li>
   </ul><anchor name="intro"/>
   <s2 title= "Introduction">
  @@ -88,31 +78,36 @@
   </s2><anchor name="exslt"/>
   <s2 title="EXSLT extensions">
    <p>&xslt4j; supports the <jump href="http://exslt.org/";>EXSLT</jump> initiative to 
provide a set of
  -standard extension functions and elements to XSLT users. &xslt4j; 2.3.2 includes 
implementations for 12 EXSLT
  -functions (some are calls to extension already in the Xalan namespace). For the 
details, see:</p>
  +standard extension functions and elements to XSLT users. &xslt4j; includes 
implementations for the following EXSLT
  +extension modules:</p>
   <ul>
   <li><jump href="apidocs/org/apache/xalan/lib/ExsltCommon.html">EXSLT common 
functions</jump></li>
   <li><jump href="apidocs/org/apache/xalan/lib/ExsltMath.html">EXSLT math 
functions</jump></li>
  -<li><jump href="apidocs/org/apache/xalan/lib/ExsltSets.html">EXSLT set 
function</jump></li>
  -<li><jump href="apidocs/org/apache/xalan/lib/ExsltDatetime.html">EXSLT 
date-and-time function</jump></li>
  +<li><jump href="apidocs/org/apache/xalan/lib/ExsltSets.html">EXSLT set 
functions</jump></li>
  +<li><jump href="apidocs/org/apache/xalan/lib/ExsltDatetime.html">EXSLT 
date-and-time functions</jump></li>
  +<li><jump href="apidocs/org/apache/xalan/lib/ExsltDynamic.html">EXSLT dynamic 
functions</jump></li>
  +<li><jump href="apidocs/org/apache/xalan/lib/ExsltStrings.html">EXSLT string 
functions</jump></li>
   <li>The EXSLT func:function and func:result elements (see <jump 
href="http://www.exslt.org/func/elements/function/index.html";>EXSLT - 
func:function)</jump></li>
   </ul>
  -<p>Work is currently underway on <jump 
href="http://www.exslt.org/date/index.html";>EXSLT date and time functions</jump> 
  -and <jump href="http://www.exslt.org/func/index.html";>and user defined EXSLT 
functions (with the function and result 
  -elements)</jump>. Anyone who would like to help by implementating other EXSLT 
extensions is more than welcome. Please email us at the <human-resource-ref 
idref="xalandev"/>.</p>
  +<p>All EXSLT extensions use namespaces specified in the EXSLT specification. For 
example, to use the EXSLT math functions, specify a namespace URI as follows:</p>
  +<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<code>xmlns:math="http://exslt.org/math";</code></p>
  +<p>Anyone who would like to help by implementating other EXSLT extensions is more 
than welcome. Please email us at the <human-resource-ref idref="xalandev"/>.</p>
   </s2>
   <anchor name="xalanns"/>
   <s2 title="&xslt; namespace">
  -<p>Where it makes sense, we are placing the new &xslt; extensions in the 
org.apache.xalan.lib.Extensions class and we have defined a namespace for this 
class:</p>
  +<p>The &xslt; extensions are implemented in one of the classes under 
org.apache.xalan.lib. The main extension class is <jump 
href="apidocs/org/apache/xalan/lib/Extensions.html">org.apache.xalan.lib.Extensions</jump>.
 Some extension
  +functions (e.g. intersection, difference, etc.) used to be in this class are now 
moved to the corresponding <link anchor="exslt">EXSLT</link> modules. All &xslt; 
extensions use namespace URIs starting with:</p>
   <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<code>http://xml.apache.org/xalan</code></p>
  -<p>If you are calling &xslt4j;-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 &xslt4j;-supplied extensions are stored, you won't have to modify your 
stylesheet.</p>
  +<p>If you are calling &xslt4j;-supplied extensions, we recommend that you define 
the corresponding namespace in your stylesheet, and call the extension using the 
namespace prefix that you have associated with that namespace. That way, if we later 
reorganize how the &xslt4j;-supplied extensions are stored, you won't have to modify 
your stylesheet.</p>
   <p>For an example that uses this namespace, see <link anchor="ex-nodeset">Example 
with the nodeset extension function</link>.</p>
   </s2><anchor name="redirect"/>
   <s2 title= "Redirect">
   <p>A standard XSL transformation involves an XSL stylesheet, an XML source tree, 
and the transformation result tree. The transformation sends the entire result to a 
single <jump href="apidocs/org/apache/trax/Result.html">org.apache.trax.Result</jump> 
object.</p> 
  -<p>The Redirect extension 
  -(<jump 
href="apidocs/org/apache/xalan/xslt/extensions/Redirect.html">org.apache.xalan.xslt.extensions.Redirect</jump>)
 supplies three extension elements that you can use to redirect portions of your 
transformation output to multiple files: &lt;open&gt;, &lt;write&gt;, and 
&lt;close&gt;. If you use the &lt;write&gt; element alone, the extension opens a file, 
writes to it, and closes the file immediately. If you want explicit control over the 
opening and closing of files, use &lt;write&gt; in conjunction with the &lt;open&gt; 
and &lt;close&gt; elements.</p>
  -<p>Each of these elements includes a file attribute and/or a select attribute to 
designate the output file. The file attribute takes a string, so you can use it to 
directly specify the output file name. The select attribute takes an XPath expression, 
so you can use it to dynamically generate the output file name. If you include both 
attributes, the Redirect extension first evaluates the select attribute, and falls 
back to the file attribute if the select attribute expression does not return a valid 
file name.</p>
  +<p>The namespace for the <jump 
href="apidocs/org/apache/xalan/lib/Redirect.html">Redirect</jump> extension is:</p>
  
+<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<code>http://xml.apache.org/xalan/redirect</code></p>
  +<p>It supplies three extension elements that you can use to redirect portions of 
your transformation output to multiple files: &lt;open&gt;, &lt;write&gt;, and 
&lt;close&gt;. If you use the &lt;write&gt; element alone, the extension opens a file, 
writes to it, and closes the file immediately. If you want explicit control over the 
opening and closing of files, use &lt;write&gt; in conjunction with the &lt;open&gt; 
and &lt;close&gt; elements.</p>
  +<p>The &lt;open&gt; and &lt;write&gt; elements include a file attribute and/or a 
select attribute to designate the output file. The file attribute takes a string, so 
you can use it to directly specify the output file name. The select attribute takes an 
XPath expression, so you can use it to dynamically generate the output file name. If 
you include both attributes, the Redirect extension first evaluates the select 
attribute, and falls back to the file attribute if the select attribute expression 
does not return a valid file name.</p>
  +<p>The &lt;open&gt; and &lt;write&gt; elements also support an append attribute. If 
the append attribute is set to true or yes, then the result is appended to the output 
file.</p>
   <anchor name="ex-redirect"/> 
   <s3 title="Example with the Redirect extension">
   <p>Suppose you are outputting the bulk of your result tree to one file, but you 
want to output the transformation of all &lt;foo&gt; elements and their children to 
another file. The following example illustrates the basic structure of the XML 
source:</p>
  @@ -130,8 +125,7 @@
   <source>
   &lt;xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
       version="1.0"
  -    xmlns:lxslt="http://xml.apache.org/xslt";
  -    xmlns:redirect="org.apache.xalan.xslt.extensions.Redirect"
  +    xmlns:redirect="http://xml.apache.org/xalan/redirect";
       extension-element-prefixes="redirect"&gt;
   
     &lt;xsl:template match="/"&gt;
  @@ -181,6 +175,7 @@
   <s2 title= "nodeset">
   <p>Implemented in <jump 
href="apidocs/org/apache/xalan/lib/Extensions.html">org.apache.xalan.lib.Extensions</jump>,<br/>
   <code>nodeset (result-tree-fragment)</code>  casts a result tree fragment into a 
node-set.</p>
  +<p>To use the nodeset extension, you can either use the <code>nodeset</code> 
function in the namespace <code>xmlns:xalan="http://xml.apache.org";</code> or the 
<link anchor="exslt">EXSLT</link> extension function <code>node-set</code> in the 
namespace <code>xmlns:common="http://exslt.org/common";</code>.</p>
   <note>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 <jump 
href="http://www.w3.org/TR/xslt#section-Result-Tree-Fragments";>Result Tree 
Fragments</jump>.</note>
   <anchor name="ex-nodeset"/>
   <s3 title="Example with the nodeset extension function">
  @@ -214,24 +209,8 @@
   <note>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.</note>
   
   </s3>
  -</s2><anchor name="intersection"/>
  -<s2 title="intersection">
  -<p>Implemented in <jump 
href="apidocs/org/apache/xalan/lib/Extensions.html">org.apache.xalan.lib.Extensions</jump>,<br/>
  -<code>intersection (node-set1, node-set2)</code> function returns a node-set with 
all nodes that are in ns1 and in ns2 .</p>
  -</s2><anchor name="difference"/>
  -<s2 title= "difference">
  -<p>Implemented in <jump 
href="apidocs/org/apache/xalan/lib/Extensions.html">org.apache.xalan.lib.Extensions</jump>,<br/>
  -<code>difference(node-set1, node-set2)</code> returns a node-set with the nodes in 
node-set1 and not in node-set2.</p>
  -</s2><anchor name="distinct"/>
  -<s2 title= "distinct">
  - <p>Implemented in <jump 
href="apidocs/org/apache/xalan/lib/Extensions.html">org.apache.xalan.lib.Extensions</jump>,<br/>
  - 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>
  -</s2><anchor name="hassamenodes"/>
  -<s2 title= "hasSameNodes">
  -<p>Implemented in <jump 
href="apidocs/org/apache/xalan/lib/Extensions.html">org.apache.xalan.lib.Extensions</jump>,<br/>
  -<code>hasSameNodes(node-set1, node-set2)</code> returns true if both node-set1 and 
node-set2 contain exactly the same set of nodes.</p>
  -</s2><anchor name="nodeinfo"/>
  +</s2>
  +<anchor name="nodeinfo"/>
   <s2 title="NodeInfo">
   <p><jump 
href="apidocs/org/apache/xalan/lib/NodeInfo.html">org.apache.xalan.lib.NodeInfo</jump> 
provides extension elements that you can
   use to get information about the location of nodes in the source document:</p>
  @@ -247,24 +226,24 @@
   method to set this attribute.</note>
   <anchor name="systemid"/>
   <s3 title="systemId">
  -<p>Implemented in <jump 
href="apidocs/org/apache/xalan/lib/NodeInfo.html">org.apache.xalan.lib.NodeInfo</jump>,<br/>
  -<code>systemId()</code> returns the system ID for the current node, and <br/>
  +<p>Implemented in <jump 
href="apidocs/org/apache/xalan/lib/NodeInfo.html">org.apache.xalan.lib.NodeInfo</jump>,
  +<code>systemId()</code> returns the system ID for the current node, and
   <code>systemId(node-set)</code> returns the system ID of the first node in the 
node-set.</p>
   </s3><anchor name="publicid"/>
   <s3 title="publicId">
  -<p><em>To be done.</em> Implemented in <jump 
href="apidocs/org/apache/xalan/lib/NodeInfo.html">org.apache.xalan.lib.NodeInfo</jump>,<br/>
  -<code>publicId()</code> will return the public ID for the current node, and<br/>
  +<p><em>To be done.</em> Implemented in <jump 
href="apidocs/org/apache/xalan/lib/NodeInfo.html">org.apache.xalan.lib.NodeInfo</jump>,
  +<code>publicId()</code> will return the public ID for the current node, and
   <code>publicId(node-set)</code> will return the public ID of the first node in the 
node-set.</p>
   </s3><anchor name="linenumber"/>
   <s3 title="lineNumber">
  -<p>Implemented in <jump 
href="apidocs/org/apache/xalan/lib/NodeInfo.html">org.apache.xalan.lib.NodeInfo</jump>,<br/>
  -<code>lineNumber()</code> returns the line number in the source document for the 
current node, and<br/>
  +<p>Implemented in <jump 
href="apidocs/org/apache/xalan/lib/NodeInfo.html">org.apache.xalan.lib.NodeInfo</jump>,
  +<code>lineNumber()</code> returns the line number in the source document for the 
current node, and
   <code>lineNumber(node-set)</code> returns the line number in the source document 
for the first node in the node-set.</p>
   <note>This function returns -1 if the line number is not known (for example, the 
source is a DOM Document).</note>
   </s3><anchor name="columnnumber"/>
   <s3 title="columnNumber">
  -<p>Implemented in <jump 
href="apidocs/org/apache/xalan/lib/NodeInfo.html">org.apache.xalan.lib.NodeInfo</jump>,<br/>
  -<code>columnNumber()</code> returns the column number in the source document for 
the current node, and<br/>
  +<p>Implemented in <jump 
href="apidocs/org/apache/xalan/lib/NodeInfo.html">org.apache.xalan.lib.NodeInfo</jump>,
  +<code>columnNumber()</code> returns the column number in the source document for 
the current node, and
   <code>columnNumber(node-set)</code> returns the column number in the source 
document for the first node in the node-set.</p>
   <note>This function returns -1 if the column number is not known (for example, the 
source is a DOM Document).</note>
   </s3></s2><anchor name="sql"/>
  @@ -276,7 +255,9 @@
   <li><link anchor="ex-sql">SQL library example</link></li>
   <li><link idref="samples" anchor="sql">SQL library sample applications</link></li>
   </ul>
  -<p>Provides extension functions for connecting to a JDBC data source, executing a 
query,
  +<p>The namespace for the SQL extension is:</p>
  +<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<code>http://xml.apache.org/xalan/sql</code></p>
  +<p>The SQL extension provides extension functions for connecting to a JDBC data 
source, executing a query,
   and working incrementally through a "streamable" result set. Streaming (reuse of a 
single row node to traverse the result set) is the default mode of operation. If you 
want unlimited access to the entire result set, you can cache the query result set (1 
row node for each row in the result set).</p>
   <p><em>If you use streaming mode (the default), you can only access row elements 
one at a time moving forward through the result set. The use of XPath expressions in 
your stylesheet, for example, that attempt to return nodes from the result set in any 
other manner may produce unpredictable results.</em></p>
   <note>Many features of the SQL library, including support for connection pools, 
parameterized queries, caching, and added support for extracting connection 
information and query parameters from XML source documents exist thanks to John 
Gentilin ([EMAIL PROTECTED]), who has also added a number of <link 
idref="samples" anchor="sql">SQL library samples</link>.</note>
  @@ -319,7 +300,7 @@
          <p>In the stylesheet, you can extract this information as follows:</p>
          <source>&lt;xsl:stylesheet version 1.0
   &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
  -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xmlns:sql="org.apache.xalan.lib.sql.XConnection"
  +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xmlns:sql="http://xml.apache.org/xalan/sql";
   &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;extension-element-prefixes="sql"&gt;
   &nbsp;&nbsp;&lt;xsl:param name="cinfo" select="//DBINFO"/&gt;
   &nbsp;&nbsp;&lt;xsl:variable name="db" select="sql:new($cinfo)"/&gt;
  @@ -343,7 +324,7 @@
         <p>A stylesheet can use this connection pool as follows:</p>
         <source>&lt;xsl:stylesheet version 1.0
        xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
  -     xmlns:sql="org.apache.xalan.lib.sql.XConnection"
  +     xmlns:sql="http://xml.apache.org/xalan/sql";
        extension-element-prefixes="sql"&gt;
   ...
     &lt;xsl:variable name="db" select="sql:new($driver, 'extpool')"/&gt;</source>
  @@ -370,7 +351,7 @@
   <source>&lt;?xml version="1.0"?&gt;
   &lt;xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
                   version="1.0"
  -                xmlns:sql="org.apache.xalan.lib.sql.XConnection"
  +                xmlns:sql="http://xml.apache.org/xalan/sql";
                   extension-element-prefixes="sql"&gt;
     &lt;xsl:output method="html" indent="yes"/&gt;
     &lt;xsl:param name="query" select="'SELECT * FROM import1'"/&gt;
  @@ -424,7 +405,9 @@
     <p>Implemented in <jump 
href="apidocs/org/apache/xalan/lib/PipeDocument.html">org.apache.xalan.lib.PipeDocument</jump>,<br/>
     the pipeDocument extension element pipes an XML document through a series of one 
or more transformations. The output of
     each transformation is piped to the next transformation. The final transofrmation 
creates a target file.</p>
  -  
  +  <p>The namespace for the pipeDocument extension is:</p>
  +  
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<code>http://xml.apache.org/xalan/PipeDocument</code></p>
  +
     <p>Suppose, for example,you have a stylesheet that is processing a "book" 
document with elements designating the 
     documents to be transformed. This primary stylesheet generates a table of 
contents for the book. For each source 
     document it uses a pipeDocument extension element to pipe the document through a 
series of one or more transformations.</p>
  @@ -437,7 +420,7 @@
       and contains a parameter designating where the output files are to be 
placed:</p>
     <source>&lt;xsl:stylesheet version="1.0"
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
  -   xmlns:pipe="xalan://PipeDocument"
  +   xmlns:pipe="http://xml.apache.org/xalan/PipeDocument";
      extension-element-prefixes="pipe"&gt;
      
   &lt;xsl:param  name="destdir" value="html/output"&gt;
  @@ -482,7 +465,7 @@
   
   &lt;xsl:stylesheet version="1.0"
                   xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
  -                xmlns:pipe="xalan://org.apache.xalan.lib.PipeDocument"
  +                xmlns:pipe="http://xml.apache.org/xalan/PipeDocument";
                   extension-element-prefixes="pipe"&gt;
   
   &lt;xsl:param name="source"/&gt;
  @@ -508,6 +491,9 @@
   <code>evaluate (xpath-expression)</code> function 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>
  +<note>Although you can still use the evaluate extension function in the main 
Extensions class, the preferred solution
  +is to use the same function in the EXSLT dynamic package. This will make your 
stylesheet more portable across XSLT
  +processors that support EXSLT extensions.</note>
   </s2><anchor name="tokenize"/>
   <s2 title="tokenize">
   <p>Implemented in <jump 
href="apidocs/org/apache/xalan/lib/Extensions.html">org.apache.xalan.lib.Extensions</jump>,<br/>
  @@ -517,24 +503,8 @@
   <p>The delimiters determine which characters are used to divide the tokenize-string 
into individual tokens. If you do not include
   the delimiters argument, the function uses tab (&amp;#x09), linefeed (&amp;#x0A), 
return (&amp;#x0D), and space (&amp;#x20) as delimiters.
   If tokenize-string is an empty string or contains only delimiters, the result is an 
empty node-set.</p>
  -</s2><anchor name="groupitem"/>
  -<s2 title= "group and item">
  -<p><em>To be done.</em> Provides efficient grouping of items with a common 
value.</p>
  -</s2><anchor name="type"/>
  -<s2 title= "type">
  -<p><em>To be done.</em> Returns a string that represents the Schema or DTD type.</p>
  -</s2><anchor name="todate"/>
  -<s2 title="to-date">
  -<p><em>To be done.</em> Takes a string as input, and returns a long value 
representing the date.</p>
  -</s2><anchor name="formatdate"/>
  -<s2 title="format-date">
  -<p><em>To be done.</em> Takes a date string, and formats it according to a 
specification.</p>
  -</s2><anchor name="grep"/>
  -<s2 title="grep">
  -<p><em>To be done.</em> Performs a grep function and returns the substring.</p>
  -</s2><anchor name="foreachtoken"/>
  -<s2 title="for-each-token">
  -<p><em>To be done.</em> Tokenizes a string, treats each token as a DOM Text node, 
and executes the
  -sub-template.</p>
  +<note>Although you can still use the tokenize extension function in the main 
Extensions class, the preferred solution
  +is to use the same function in the EXSLT strings package. This will make your 
stylesheet more portable across XSLT
  +processors that support EXSLT extensions.</note>
   </s2>
   </s1>
  
  
  
  1.47      +24 -24    xml-xalan/java/xdocs/sources/xalan/samples.xml
  
  Index: samples.xml
  ===================================================================
  RCS file: /home/cvs/xml-xalan/java/xdocs/sources/xalan/samples.xml,v
  retrieving revision 1.46
  retrieving revision 1.47
  diff -u -r1.46 -r1.47
  --- samples.xml       14 Feb 2002 16:12:28 -0000      1.46
  +++ samples.xml       28 Oct 2002 20:46:31 -0000      1.47
  @@ -350,27 +350,27 @@
         <s2 title="SQL library extensions">
         <p>The <link idref="extensionslib" anchor="sql">SQL library </link> extension 
enables you to execute SQL queries from within a stylesheet, 
         and to incorporate query result sets in the XML output. To use the SQL 
library, you need
  -      a JDBC driver, the underying DBMS, and a database. Our samples use 
Lutris&reg; InstantDB, available "free of charge for research and 
  -      development use."</p><anchor name="instantdbsetup"/>
  -      <s3 title="Setting up the InstantDB samples">
  +      a JDBC driver, the underlying DBMS, and a database. Our samples use 
Lutris&reg; InstantDB. 
  +      You can also customize the stylesheets for your own database 
implementations.</p>
  +      <anchor name="dbsetup"/>
  +      <s3 title="Setting up the SQL extension samples">
         <p>To run the SQL library extension samples, do the following:</p>
         <ol>
  -      <li>Obtain a copy of InstantDB. You can download a free "Development license" 
copy for research and development from 
  -      <jump href="http://www.lutris.com/downloads/index.html";>Lutris 
Downloads</jump>.<br/><br/></li>
  -      <li>Follow the instructions Lutris provides for installing InstantDB and 
generating the sample database.<br/><br/></li>
  -      <li>Add idb.jar and the Java Transaction API JAR (jta-spec1_0_1.jar in the 
InstantDB 4.0 release) to the system class path.<br/><br/></li>
  -      <li>Create an instantdb directory in the samples/extensions subdirectory, and 
copy the sample database to instantdb. The sample database
  -      is in the Examples subdirectory where you installed InstantDB. For our 
purposes, it includes samples.prp and three subdirectories:
  -      indexes, system, and tables.<br/><br/>
  -      Alternative: You can adjust the references to samples.prp in the XSL 
stylesheets and XML document dburl nodes to point to sample.prp in
  -      its original location, in which case you do not need to copy the samples 
database. For example, if you have installed InstantDB in /idb,
  -      you can change 'jdbc:idb:./instantdb/sample.prp' in the XConnection new() 
call in extensions/6-sqllib-instantdb to
  -      'jdbc:idb:/idb/Examples/sample.prp'.<br/><br/></li>
  +      <li>InstantDB is no longer freely available. If you still have a copy of it, 
  +      you can follow the instructions Lutris provides for installing InstantDB and 
generating the sample database.</li>
  +      <li>For other database implementations, you have to customize the stylesheets 
by modifying the SQL query, the JDBC driver name and the database url:
  +        <ul>
  +          <li>Modify the SQL query to your own needs. The SQL query is defined in a 
parameter like
  +          <code>&lt;xsl:param name="query" select="'SELECT * FROM 
import1'"/&gt;</code>.</li>
  +          <li>Modify the JDBC driver name and the database url. They are specified 
in the stylesheets as parameters for some
  +          examples. For other examples the parameters are defined in the dbinfo.xml 
file.</li>
  +        </ul>
  +      </li>
  +      <li>Add the JDBC driver jar to the system class path.</li>
  +      <li>Create the database you want to work with if it does not already 
exist.</li>
         </ol>
  -      <p>For more information about InstantDB, see the <jump 
href="http://www.lutris.com/products/instantDB/software/documentation/";>InstantDB
  -      Documentation</jump>.</p>
         </s3>
  -      <s3 title="SQL Library samples with InstantDB">    
  +      <s3 title="SQL Library samples">    
         <ul>
         <li><link anchor="ext6">6-sqllib-instantdb</link></li>
         <li><link anchor="basic-conn">Basic Connections</link></li>      
  @@ -380,13 +380,13 @@
         <li><link anchor="showerror">Show-error</link></li>
         </ul>
         <note>Except for 6-sqllib-instantdb, all these samples have been created by 
John Gentilin 
  -      ([EMAIL PROTECTED]) to take illustrate the rich feature set he has 
contributed to the SQL Library. 
  +      ([EMAIL PROTECTED]) to illustrate the rich feature set he has 
contributed to the SQL Library. 
         To run each of these samples, be sure  you are in the appropriate 
extensions/sql subdirectory.</note>
         </s3><anchor name="ext6"/>
         <s3 title="6-sqllib-instantdb">
         <p>What it does: Uses the SQL library XConnection extension to connect to the 
InstantDB sample database, 
         performs a query, and returns the query result in an HTML table.</p>
  -      <p><link anchor="instantdbsetup">Set up InstantDB</link>, and run this sample 
from the extensions subdirectory:</p>
  +      <p><link anchor="dbsetup">Set up the database</link>, and run this sample 
from the extensions subdirectory:</p>
         <p><code>java org.apache.xalan.xslt.Process</code>
         <br/>&nbsp;&nbsp;<code>-xsl 6-sqllib-instantdb.xsl -out 
import1.html</code></p>
         </s3><anchor name="basic-conn"/>
  @@ -398,7 +398,7 @@
         in the form of stylesheet parameters.</p>      
         <p>The second strategy is to get connection information from a nodeset in an 
XML source document (dbInfo.xml).</p>
         
  -      <p><link anchor="instantdbsetup">Set up InstantDB</link>, and run this sample 
from the extensions/sql/basic-connection 
  +      <p><link anchor="dbsetup">Set up the database</link>, and run this sample 
from the extensions/sql/basic-connection 
          directory.</p>
          <p>1. To get connection information from the stylesheet:</p>
         <p><code>java org.apache.xalan.xslt.Process</code>
  @@ -418,7 +418,7 @@
       XConnection object and connect to a datasouce.</p>
       <p>The stylesheet uses this named connection pool to instantiate an XConnection 
object and connect to the datasource. 
       The ExternalConnection class is in xalansamples.jar.</p>
  -    <p><link anchor="instantdbsetup">Set up InstantDB</link>, be sure 
xalanxamples.jar is on the class path, and run this 
  +    <p><link anchor="dbsetup">Set up the database</link>, be sure xalanxamples.jar 
is on the class path, and run this 
       sample from the extensions/sql/ext-connection directory:</p>
       <p><code>java ExternalConnection</code></p>
       <p>ExternalConnection creates the ConnectionPool, and performs a transformation 
with dbtest.xsl, which draws 
  @@ -431,7 +431,7 @@
       provides the parameter value as well as the connection information. The 
parameter value is in a node in the XML source.</p>
       <p>The stylesheet gets the required connection and parameter information from 
the XML source, sets up and executes the
       parameterized query, and retuns the query result set.</p>
  -    <p><link anchor="instantdbsetup">Set up InstantDB</link>, and run this sample 
from the sql/pquery subdirectory:</p>
  +    <p><link anchor="dbsetup">Set up the database</link>, and run this sample from 
the sql/pquery subdirectory:</p>
       <p><code>java org.apache.xalan.xslt.Process -in dbInfo.xml</code>
       <br/><code>-xsl dbTest.xsl -out dbTest.html</code></p>    
       </s3><anchor name="streamable"/>
  @@ -439,7 +439,7 @@
       <p><em>Contributed by John Gentilin ([EMAIL PROTECTED]).</em></p>    
       <p>What it does: Illustrates enabling and disabling of caching the streamable 
result set returned by a query.</p>
       <p>The stylesheets use the XConnection enableCacheNodes() and 
disableCacheNodes() methods.</p>
  -    <p><link anchor="instantdbsetup">Set up InstantDB</link>, and run these samples 
from the sql/streamable subdirectory.</p>
  +    <p><link anchor="dbsetup">Set up the database</link>, and run these samples 
from the sql/streamable subdirectory.</p>
       <p>1. To turn caching on:</p>
       <p><code>java org.apache.xalan.xslt.Process</code>
       <br/><code>-xsl cachedNodes.xsl</code></p>
  @@ -455,7 +455,7 @@
       <source>&lt;xsl:variable name="table" select='sql:query($db, $query)'/&gt;
     &lt;xsl:apply-templates select="$table/row-set" /&gt;      
     &lt;xsl:apply-templates select="$table/ext-error"/&gt;</source>
  -  <p><link anchor="instantdbsetup">Set up InstantDB</link>, and run this sample 
from the extensions/sql/show-error subdirectory:</p>
  +  <p><link anchor="dbsetup">Set up the database</link>, and run this sample from 
the extensions/sql/show-error subdirectory:</p>
     <p><code>java org.apache.xalan.xslt.Process</code>
     <br/><code> -xsl <ref>invalidSomething.xsl</ref> -out dbtestout.html</code></p>
     <p>where <ref>invalidSomething.xsl</ref> is <code>invalidConn.xsl</code> 
(specifies a database that does not exist), 
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to