You are viewing a plain text version of this content. The canonical link for it is here.
Posted to general@xml.apache.org by dl...@locus.apache.org on 2000/03/07 17:03:45 UTC

cvs commit: xml-site/sources/xalan faq.xml BUGS DONE STATUS commandline.xml dtm.xml extensions.xml getstarted.xml overview.xml readme.xml resources.xml samples.xml usagepatterns.xml

dleslie     00/03/07 08:03:45

  Modified:    sources/xalan BUGS DONE STATUS commandline.xml dtm.xml
                        extensions.xml getstarted.xml overview.xml
                        readme.xml resources.xml samples.xml
                        usagepatterns.xml
  Added:       sources/xalan faq.xml
  Log:
  Xalan 0.20.0 Gold Candidate
  
  Revision  Changes    Path
  1.3       +136 -28   xml-site/sources/xalan/BUGS
  
  Index: BUGS
  ===================================================================
  RCS file: /home/cvs/xml-site/sources/xalan/BUGS,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- BUGS	2000/01/20 16:39:03	1.2
  +++ BUGS	2000/03/07 16:03:42	1.3
  @@ -1,29 +1,137 @@
  -<s3 title="Known bugs">
  -  <p>We are aware of the following bugs (SPR ID# and description):</p>
  -    <ul>                                
  -<li>SCUU4EMMUC&nbsp;&nbsp;ValidateXPath sample throws exception with illegal xpath<br/><br/></li>
  -<li>PDIK4ERNDJ&nbsp;&nbsp;Errors messages are overly verbose, can they be simplified.<br/><br/></li>
  -<li>PDIK4ERPLJ&nbsp;&nbsp;$x="foo" does not mean the same as not($x!="foo")<br/><br/></li>
  -<li>DMAN4ESS98&nbsp;&nbsp;Sort with data-type="number" should only rearrange numbers.<br/><br/></li>
  -<li>PDIK4ESTEB&nbsp;&nbsp;exclude-result-prefixes, should not apply to any included/imported stylesheets<br/><br/></li>
  -<li>DMAN4ETPTK&nbsp;&nbsp;case-order attribute apparently ignored in xsl:sort<br/><br/></li>
  -<li>PDIK4ETKTJ&nbsp;&nbsp;Attribute value template does not parse.<br/><br/></li>
  -<li>PDIK4ETPCT&nbsp;&nbsp;xsl:element name attribute should generate error if result from the AVT is not a QName.<br/><br/></li>
  -<li>PDIK4EUNA6&nbsp;&nbsp;"xsl:element" created element does not acquire namespace prefixes from stylesheet.<br/><br/></li>
  -<li>PDIK4EUQN6&nbsp;&nbsp;LRE with namespace prefixed QName attribute(ped:attr) does not pass attribute to result tree.<br/><br/></li>
  -<li>PDIK4EYP2U&nbsp;&nbsp;Parameters are not evaluated by XPATH expressions correctly.<br/><br/></li>
  -<li>PDIK4F7PZC&nbsp;&nbsp;Should we generate namespaces if it's set to ""<br/><br/></li>
  -<li>PDIK4F7QUC&nbsp;&nbsp;attribute name is accepting an invalid QName and "xmlns" as valid names.<br/><br/></li>
  -<li>PDIK4F7TP5&nbsp;&nbsp;Using sort with position() fails.<br/><br/></li>
  -<li>PDIK4F8N4Y&nbsp;&nbsp;"xsl:elements" elements are not getting copy of namespace nodes from element node.<br/><br/></li>
  -<li>PDIK4F9L5Q&nbsp;&nbsp;Problems with whitespace stripping in stylesheet.<br/><br/></li>
  -<li>PDIK4F9PTP&nbsp;&nbsp;Customer problem. Attempt to create DOM output w/o creating root node first, crashes.<br/><br/></li>
  -<li>PDIK4F9QVX&nbsp;&nbsp;URL encoding should escape the space character as '%20'.<br/><br/></li>
  -<li>PDIK4FBMT8&nbsp;&nbsp;document not extracting a document with different encoding.<br/><br/></li>
  -<li>DMAN4FEPC5&nbsp;&nbsp;Some xsl:sort attributes must reject bad keyword values<br/><br/></li>
  -<li>DMAN4FERJ3&nbsp;&nbsp;Number format patterns should act the same whether 1 or 2 patterns<br/><br/></li>
  -<li>DMAN4FFQBJ&nbsp;&nbsp;Need correct URL in system-property<br/><br/></li>
  -<li>SCUU4ELPVP&nbsp;&nbsp;Performance: XT is often faster than LotusXSL<br/><br/></li>
  -    </ul>
  - <p>The format-number function sometimes behaves incorrectly when the second argument (pattern-string) has two sub-patterns for positive and negative numbers. You may find that you do not get a minus sign on negative numbers. You can either avoid using the second pattern or insert a literal minus sign at the front of the second pattern. If you choose the latter, you will have to re-edit the pattern when we fix the problem. There may also be incorrect behavior if you set the zer0-digit to a different character.</p>
  +<s3 title="Known bugs in the current Xalan version">
  +  <p>We are aware of the following bugs in the current version 0.20.0:</p>
  +  <ul>
  +        <li>DMAN4DXQLE:   Mistaken use of I instead of or causes crash
  +
  +        </li>
  +        <li>DMAN4FERJ3:   Number format patterns should act the same whether 1 or 2 patterns
  +
  +        </li>
  +        <li>DMAN4FQJZ8:   Need better argument checking for xsl:key
  +
  +        </li>
  +        <li>DMAN4FQK9Z:   Should flag two xsl:key keyspaces with same name
  +
  +        </li>
  +        <li>DMAN4FUSQ6:   Handling of null strings by contains() is not consistent across JDKs
  +
  +        </li>
  +        <li>DMAN4FVS7S:   Using defined constants from instance variables in switch fails in some compilers
  +
  +        </li>
  +        <li>DMAN4FYS5A:   Need better JavaDoc for XObject and subclasses
  +
  +        </li>
  +        <li>DMAN4GBR4Z:   Need nicer format to render zero as roman numeral
  +
  +        </li>
  +        <li>DMAN4GBR8W:   last() should insist on zero arguments
  +
  +        </li>
  +        <li>DMAN4GKRZ3:   Certain match patterns involving id() don't work
  +
  +        </li>
  +        <li>DMAN4GLT3L:   xsl:when test="" should have a specific error message
  +
  +        </li>
  +        <li>DMAN4GLTN7:   xsl:sort should reject all child elements
  +
  +        </li>
  +        <li>DMAN4GRPXQ:   Need specific error for xsl:stylesheet (or transform) not used as top-level element
  +
  +        </li>
  +        <li>DMAN4GRQXY:   Infinite-loop detection is not working for apply-templates with modes
  +
  +        </li>
  +        <li>DMAN4GRRP6:   Bad error message for elements inside xsl:decimal-format
  +
  +        </li>
  +        <li>DMAN4GRS4C:   Single-character attributes should raise an error when value is set longer
  +
  +        </li>
  +        <li>DMAN4GRSQW:   Invalid value for letter-value attribute in xsl:number should raise an error
  +
  +        </li>
  +        <li>DMAN4GRTJS:   Attributes count and from of xsl:number should have an error when value is not a pattern
  +
  +        </li>
  +        <li>DMAN4GYUGL:   Performance: should avoid calls to mult when we already know the outcome
  +
  +        </li>
  +        <li>DMAN4H2RE6:   namespace::xmlns not recognized as special
  +
  +        </li>
  +        <li>DMAN4H3VML:   Attribute values fail to override in DOM scenario
  +
  +        </li>
  +        <li>DMAN4H429H:   Torture test of format-number obtains garbage
  +
  +        </li>
  +        <li>PDIK4D2JP5:   Escaping of attribute quotes wasn't being done correctly when method="html".
  +
  +        </li>
  +        <li>PDIK4D2JPR:   Equality comparisons with nodesets and other nodesets, strings, and numbers not to spec.
  +
  +        </li>
  +        <li>PDIK4DJS4Q:   cdata-section-elements not outputing literal result element correctly
  +
  +        </li>
  +        <li>PDIK4DRPKM:   Use of 9/5 in a xpath expression generates a cryptic error message
  +
  +        </li>
  +        <li>PDIK4E6MR3:   Concat() does not check for number of arguments.
  +
  +        </li>
  +        <li>PDIK4E6NZE:   Stylesheet should not contain more then 1 template with the same name.
  +
  +        </li>
  +        <li>PDIK4ERNDJ:   Errors messages are overly verbose. Simplify where possible.
  +
  +        </li>
  +        <li>PDIK4EUNA6:   "xsl:element" created element does not acquire namespace prefixes from stylesheet.
  +
  +        </li>
  +        <li>PDIK4FXM49:   Stylesheets need to use Externalizable instead of Serializable
  +
  +        </li>
  +        <li>PDIK4G5P7U:   command line interface with -tt option does not output mention of built-in template for text nodes.
  +
  +        </li>
  +        <li>PDIK4GBTCQ:   Performance: Space stripping taking too long
  +
  +        </li>
  +        <li>PDIK4GBTDY:   Performance: Attributes are taking a long time to return from the DTM
  +
  +        </li>
  +        <li>PDIK4GSRAB:   element-available crashes if namespace prefix can not be resolved
  +
  +        </li>
  +        <li>PDIK4GTR77:   function-available fails if lxslt:component is not in stylesheet.
  +
  +        </li>
  +        <li>PDIK4GTS2Z:   function-available and element-available do not work for XSLT/XPATH components.
  +
  +        </li>
  +        <li>PDIK4GTS6H:   function-available crashes if namespace prefix can not be resolved
  +
  +        </li>
  +        <li>SBOG4G5JCF:   Need to be able to choose stylesheet via media="xxx" and type="text/xslt"
  +
  +        </li>
  +        <li>SBOG4G5JF3:   Need ability to do more than one XML per command line
  +
  +        </li>
  +        <li>SCUU4ELPVP:   Performance: XT is often faster than LotusXSL
  +
  +        </li>
  +        <li>SCUU4EMMUC:   ValidateXPath sample throws exception with illegal xpath
  +
  +        </li>
  +        <li>SCUU4GBPJ5:   org.apache.xalan.xslt.Process does not resource all strings
  +
  +        </li>
  +        <li>SCUU4H3R39:   [linux] JVM crashes processing lre01 (attribute in xsl namespace); all other tests run
  +
  +        </li>
  +  </ul>
   </s3>    
  
  
  
  1.3       +566 -14   xml-site/sources/xalan/DONE
  
  Index: DONE
  ===================================================================
  RCS file: /home/cvs/xml-site/sources/xalan/DONE,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- DONE	2000/01/20 16:39:04	1.2
  +++ DONE	2000/03/07 16:03:42	1.3
  @@ -1,14 +1,566 @@
  -<s3 title="Bug fixes since the last version">
  -  <p>Bugs (SPR ID and Description) fixed since version 0.19.1:</p>
  -    <ul>                                                                                                            
  -<li>MMIY4ELLNZ&nbsp;&nbsp;Error reporting mechanism needs major improvements.<br/><br/></li>
  -<li>PDIK4ELNRC&nbsp;&nbsp;Outp tests 19,20,21,22,23 now failing to output xml headers w/ different encodings.<br/><br/></li>
  -<li>PDIK4ELPBD&nbsp;&nbsp;Document()'s error resources should be in XSLT not XPATH.<br/><br/></li>
  -<li>PDIK4ELSE3&nbsp;&nbsp;Entref01: value-of is not passing "&amp;" thru to result output file.<br/><br/></li>
  -<li>SCUU4ELPRP&nbsp;&nbsp;TestThreads: running processors on multiple threads throws exceptions.<br/><br/></li>
  -<li>SCUU4ELPWT&nbsp;&nbsp;Samples do not compile from LotusXSL distribution.<br/><br/></li>
  -<li>SCUU4ELRSG&nbsp;&nbsp;Xalan's samples\pipe does not appear to work from end-user perspective.<br/><br/></li>
  -<li>PDIK4ESQA5&nbsp;&nbsp;LRE attribute creation will include nodes with names in the XSLT namespace.<br/><br/></li>
  -<li>PDIK4ESQEF&nbsp;&nbsp;Both forms of exclude-result-prefixes fail to suppress the default namespace - #default.<br/><br/></li>      
  -   </ul>
  -</s3>    
  +<s3 title="Work done since the last Xalan version">
  +  <p>The following features were added in 0.20.0:</p>
  +  <ul>
  +    <li>Xerces 1.02 integration - This was pretty simple, just some packaging changes in the SAX2 classes.</li>
  +    <li>API and JavaDoc - We tried to make the API cleaner and easier to understand.</li>
  +    <li>Disable compilation with debug data - This cut down on the size of our JAR file by 300K or so.</li>
  +  </ul>
  +</s3>
  +<s3 title="Bugs Pended since the last Xalan version">
  +  <p>The following are Pending bugs (we think they're fixed but haven't tested them):</p>
  +  <ul>
  +        <li>PDIK4GZM3K:   Calling initXPath twice in a row will cause ArrayIndexOBE due to m_tokenQueue being to small.
  +
  +        </li>
  +        <li>SBOG4GYUUS:   No env support to get variable, in 2nd pipe of piped transform
  +
  +        </li>
  +        <li>SBOG4H3L4K:   MDOCS\mdocs04, MDOCS\mdocs08, and 09 throw null pointer exception with SAX-based tests.
  +
  +        </li>
  +  </ul>
  +</s3>
  +
  +<s3 title="Bugs resolved since the last Xalan version">
  +  <p>The following are Resolved bugs (fixed and tested):</p>
  +  <ul>
  +        <li>DLEE4FYH9D:   No support for sending primitives in extension functions
  +
  +        </li>
  +        <li>DMAN465L5N:   Browser hangs when running demo
  +
  +        </li>
  +        <li>DMAN465LF8:   Problem with relative URIs in nested import/include
  +
  +        </li>
  +        <li>DMAN46GRGT:   Must create a new instance of XSLProcessor for each process() call
  +
  +        </li>
  +        <li>DMAN46HL8J:   Empty text nodes generated when stripping whitespace
  +
  +        </li>
  +        <li>DMAN46HSBF:   Non-expanded entity references are lost
  +
  +        </li>
  +        <li>DMAN46PTL7:   CDATA treatment of character entities should follow spec painfully
  +
  +        </li>
  +        <li>DMAN46PTTQ:   Extra lines around output from CDATA section
  +
  +        </li>
  +        <li>DMAN475K6J:   Two rules for exact same pattern don't resolve as they should
  +
  +        </li>
  +        <li>DMAN4D5SKA:   xsl:message doesn't recognize terminate attribute
  +
  +        </li>
  +        <li>DMAN4D5SPC:   xsl:message puts out garbage around literal message
  +
  +        </li>
  +        <li>DMAN4D5SRT:   Decimal format for per-mille is not working
  +
  +        </li>
  +        <li>DMAN4D5T4Z:   xsl:decimal-format element not recognized
  +
  +        </li>
  +        <li>DMAN4DBRUM:   Compound inequality not being evaluated per spec
  +
  +        </li>
  +        <li>DMAN4DHNXH:   Match patterns comment() and processing-instruction() not firing
  +
  +        </li>
  +        <li>DMAN4DHPF2:   No way to express &lt; or &lt;= in a predicate
  +
  +        </li>
  +        <li>DMAN4DHPJT:   Numeric sorting of NaN inconsistent; spec doesn't address
  +
  +        </li>
  +        <li>DMAN4DWTUK:   round() not handling .5 cases per spec
  +
  +        </li>
  +        <li>DMAN4E7UU8:   Included stylesheets need distinguished namespaces, etc.
  +
  +        </li>
  +        <li>DMAN4EFSVL:   Boolean-valued lang() function emits no output
  +
  +        </li>
  +        <li>DMAN4EFTBU:   boolean(node-set) should return true for non-empty set
  +
  +        </li>
  +        <li>DMAN4EFU46:   Equality of result tree fragments fails
  +
  +        </li>
  +        <li>DMAN4EFUNB:   decimal-format reassignment of characters in format string has no effect
  +
  +        </li>
  +        <li>DMAN4EJUUG:   Default decimal-format declarations cannot be changed
  +
  +        </li>
  +        <li>DMAN4ESS98:   Sort with data-type="number" should only rearrange numbers.
  +
  +        </li>
  +        <li>DMAN4ETPTK:   case-order attribute apparently ignored in xsl:sort
  +
  +        </li>
  +        <li>DMAN4FEPC5:   Some xsl:sort attributes must reject bad keyword values
  +
  +        </li>
  +        <li>DMAN4FFQBJ:   Need correct URL in system-property
  +
  +        </li>
  +        <li>DMAN4FNSEU:   Need error message for xsl:choose lacking an xsl:when
  +
  +        </li>
  +        <li>DMAN4FQJUL:   Use of key() in keyspace causes crash
  +
  +        </li>
  +        <li>DMAN4FQK48:   key() has badly-formed error message when keyspace doesn't exist
  +
  +        </li>
  +        <li>DMAN4FQRJL:   key() should issue an error if it doesn't get exactly two arguments
  +
  +        </li>
  +        <li>DMAN4FVSJG:   Some bad links on Apache Xalan pages
  +
  +        </li>
  +        <li>DMAN4FWUKK:   key() is not creating a complete node-set
  +
  +        </li>
  +        <li>DMAN4FYPWC:   Descriptions missing in JavaDocs
  +
  +        </li>
  +        <li>DMAN4FYQFS:   Need better JavaDocs strings in XPathProcessorImpl class
  +
  +        </li>
  +        <li>DMAN4FYREQ:   Miscellaneous cleanup needed on Xalan API page on apache.org Website
  +
  +        </li>
  +        <li>DMAN4FYSFJ:   Need better JavaDoc for XSLTProcessorApplet class
  +
  +        </li>
  +        <li>DMAN4FYSTE:   Need better JavaDoc for XSLTProcessor Interface
  +
  +        </li>
  +        <li>DMAN4GBLKN:   Generated numbers sometimes have wrong format
  +
  +        </li>
  +        <li>DMAN4GBMGY:   Wacky numbering when level=multiple and from has only one level
  +
  +        </li>
  +        <li>DMAN4GBQXL:   Conversion of non-convertible string to number no longer obtains NaN
  +
  +        </li>
  +        <li>DMAN4GDLHD:   Strange counting in xsl:number level="any" when count path has a predicate
  +
  +        </li>
  +        <li>DMAN4GDLQQ:   Numbering separate levels with xsl:number level=single misses top level
  +
  +        </li>
  +        <li>DMAN4GEVDF:   Version number cannot be built into system-property
  +
  +        </li>
  +        <li>DMAN4GHQNU:   Using sort with either last() or position() in select expression crashes
  +
  +        </li>
  +        <li>DMAN4GHVGP:   NumberFormat09 crashes after issuing incorrect error message
  +
  +        </li>
  +        <li>DMAN4GJPXR:   Can crash under some conditions when variable is undefined
  +
  +        </li>
  +        <li>DMAN4GJRZH:   Null test in xsl:if triggers wrong error message
  +
  +        </li>
  +        <li>DMAN4GKV7N:   Unions in select patterns often fail
  +
  +        </li>
  +        <li>DMAN4GRRTD:   No error message for bad attribute in decimal-format
  +
  +        </li>
  +        <li>DMAN4GSLST:   Disallowed name for created PI causes runtime exception
  +
  +        </li>
  +        <li>DMAN4GSM9Q:   Must catch bad NCnames in xsl:element
  +
  +        </li>
  +        <li>DMAN4GSP5T:   Missing select on xsl:copy-of causes stack dump
  +
  +        </li>
  +        <li>DMAN4GSV35:   Missing name in call-template causes stack dump
  +
  +        </li>
  +        <li>DMAN4GTPUZ:   Xalan only: vendor name is wrong
  +
  +        </li>
  +        <li>DMAN4GXR7E:   Using absolute filepath for XSL file causes stack dump
  +
  +        </li>
  +        <li>DMAN4GYTXG:   Boolean function doesn't anticipate null input, stack-dumps
  +
  +        </li>
  +        <li>DMAN4GYU8X:   Garbage in test attribute of xsl:if causes stack dump
  +
  +        </li>
  +        <li>DMAN4GYVXL:   Numeric expressions stack-dump if an operator or function gets a null as operand
  +
  +        </li>
  +        <li>DMAN4GYW5T:   Functions that take string arguments should check for null (as opposed to null string)
  +
  +        </li>
  +        <li>DMAN4GZ277:   Functions that expect node-set will crash if they get a null instead
  +
  +        </li>
  +        <li>DMAN4H2N2Z:   Under DOM, lang() fails in a case where it works under DTM
  +
  +        </li>
  +        <li>DMAN4H2NDH:   URL-related functions fail under DOM, but okay under DTM
  +
  +        </li>
  +        <li>DMAN4H3SUC:   Matching on id('literal') fails under DOM only
  +
  +        </li>
  +        <li>MMIY4ELLNZ:   Error reporting mechanism needs major improvements
  +
  +        </li>
  +        <li>MMIY4G5RKT:   Need to have XSLTInputSource have a setDocumentHandler method, etc.
  +
  +        </li>
  +        <li>MMIY4G5RPR:   Stylesheet Attribute validation seems not to be working
  +
  +        </li>
  +        <li>MMIY4G5RY5:   Processor needs to be smarter about using DTM vs. Xerces liaison
  +
  +        </li>
  +        <li>MMIY4G5RZU:   xsl:sort should do simple string compare if lang="english"
  +
  +        </li>
  +        <li>PDIK4D2JCF:   Failure to parse attribute with a SPACE within quoted string
  +
  +        </li>
  +        <li>PDIK4D2JLR:   Problems parsing &lt;xsl:with-param&gt; stmt
  +
  +        </li>
  +        <li>PDIK4D9RX5:   FormatterToXML is throwing a NullPointerException
  +
  +        </li>
  +        <li>PDIK4DASEE:   Predicate test failing when testing for number that has space around it
  +
  +        </li>
  +        <li>PDIK4DBTZG:   method="html" failing to esc non-ASCII chars in URI attributes via HTML 4.O Spec
  +
  +        </li>
  +        <li>PDIK4DHUR4:   &lt;Option selected="selected"&gt; not being output correctly for HTML output.
  +
  +        </li>
  +        <li>PDIK4DHUVS:   &lt;? Processing Instructions?&gt; not being not being terminated correctly for HTML output.
  +
  +        </li>
  +        <li>PDIK4DJSE3:   xsl:output method="xsl" not outputing proper xml header for result file
  +
  +        </li>
  +        <li>PDIK4DJSKZ:   omit-xml-declaration is not a recognize attribute for method="xml"
  +
  +        </li>
  +        <li>PDIK4DRL8E:   HTML DTD being output after initial data.
  +
  +        </li>
  +        <li>PDIK4DRLCG:   No error reporting of invalid use of disable-output-escaping
  +
  +        </li>
  +        <li>PDIK4DSKP4:   Included template w/higher priority not being instantiated
  +
  +        </li>
  +        <li>PDIK4DVTJS:   Marginal error reporting for toplevel elements with undefined namespaces.
  +
  +        </li>
  +        <li>PDIK4E4KCL:   Not allowed to have xsl:apply-imports within a xsl:for-each
  +
  +        </li>
  +        <li>PDIK4E8L6L:   &lt;xsl:namespace-alias stylesheet-prefix="axsl" result-prefix="xsl"/&gt; not working correctly
  +
  +        </li>
  +        <li>PDIK4E8QBB:   The expression in a use attribute on xsl:key should not restricted to return a node-set.
  +
  +        </li>
  +        <li>PDIK4E8UHQ:   Extend tests that use Javascript not running w/ latest js.jars
  +
  +        </li>
  +        <li>PDIK4EBQWT:   Processor crashes running example for embedded stylesheets from spec
  +
  +        </li>
  +        <li>PDIK4ECQK3:   Document() not creating a union when single argument is a nodeset.
  +
  +        </li>
  +        <li>PDIK4ECTX7:   NPE when passing document() a nodeset of 'doc' as second argument
  +
  +        </li>
  +        <li>PDIK4ECVJJ:   document("") does NOTrefer to the root node of the stylesheet
  +
  +        </li>
  +        <li>PDIK4ED222:   exclude-result-prefixes="ped bdd #default" not working with multiple prefixes
  +
  +        </li>
  +        <li>PDIK4EF2FS:   xml header being output all the time
  +
  +        </li>
  +        <li>PDIK4EF2KL:   Doctype declaration not output html/HTML when it's suppose to.
  +
  +        </li>
  +        <li>PDIK4EKLX9:   Attribute sets test atrs07, seems to be generating wrong output
  +
  +        </li>
  +        <li>PDIK4EKNM8:   Prop01 returns the value of system-property('xsl:version') as a string not a number
  +
  +        </li>
  +        <li>PDIK4ELNRC:   Outp tests 19,20,21,22,23 now failing to output xml headers w/ different encodings.
  +
  +        </li>
  +        <li>PDIK4ELPBD:   Document()'s error resources should be in XSLT not XPATH.
  +
  +        </li>
  +        <li>PDIK4ELSE3:   Entref01: value-of is not passing "&amp;" thru to result output file.
  +
  +        </li>
  +        <li>PDIK4ERPLJ:   $x="foo" does not mean the same as not($x!="foo")
  +
  +        </li>
  +        <li>PDIK4ESQA5:   LRE attribute creation will include nodes with names in the XSLT namespace.
  +
  +        </li>
  +        <li>PDIK4ESQEF:   both forms of exclude-result-prefixes fail to suppress the default namespace - #default
  +
  +        </li>
  +        <li>PDIK4ESTEB:   exclude-result-prefixes, should not apply to any included/imported stylesheets
  +
  +        </li>
  +        <li>PDIK4ETKTJ:   Attribute value template does not parse.
  +
  +        </li>
  +        <li>PDIK4ETPCT:   xsl:element name attribute should generate error if result from the AVT is not a QName.
  +
  +        </li>
  +        <li>PDIK4EUQN6:   LRE with namespace prefixed QName attribute(ped:attr) does not pass attribute to result tree.
  +
  +        </li>
  +        <li>PDIK4EYP2U:   Parameters are not evaluated by XPATH expressions correctly.
  +
  +        </li>
  +        <li>PDIK4F7PZC:   Should we generate namespaces if it's set to ""
  +
  +        </li>
  +        <li>PDIK4F7QUC:   attribute name is accepting an invalid QName and "xmlns" as valid names.
  +
  +        </li>
  +        <li>PDIK4F7TP5:   Using sort with position() fails.
  +
  +        </li>
  +        <li>PDIK4F8N4Y:   &lt;xsl:elements&gt; elements are not getting copy of namespace nodes from element node.
  +
  +        </li>
  +        <li>PDIK4F9L5Q:   Problems with whitespace stripping in stylesheet.
  +
  +        </li>
  +        <li>PDIK4F9PTP:   Customer problem. Attempt to create DOM output w/o creating root node first, crashes.
  +
  +        </li>
  +        <li>PDIK4F9QVX:   URL encoding should escape the space character as '%20'.
  +
  +        </li>
  +        <li>PDIK4FBMT8:   document not sucking in a document of different encoding.
  +
  +        </li>
  +        <li>PDIK4FHTUQ:   The xml:space attributes are not stripped from the tree.
  +
  +        </li>
  +        <li>PDIK4FJNZV:   Using &lt;xsl:output indent="yes"&gt; exclusively within a stylesheet does not perform indent.
  +
  +        </li>
  +        <li>PDIK4FJR54:   xsl:number fails to generate proper result if xml file has comment before doc element
  +
  +        </li>
  +        <li>PDIK4FPU6T:   redirect doesn't create files relative to the output file
  +
  +        </li>
  +        <li>PDIK4FXLWA:   Stylesheet should hold memory about the liaison it should use
  +
  +        </li>
  +        <li>PDIK4FXM2R:   Problem with computation of opPos -= 3; in org/apache/xalan/xpath/dtm/DTMNodeLocator.java
  +
  +
  +        </li>
  +        <li>PDIK4FYPHX:   document() in included .xsl is based on URI of including .xsl not included .xsl
  +
  +        </li>
  +        <li>PDIK4FYSLG:   "version" attribute on &lt;xsl:stylesheet&gt; is required.
  +
  +        </li>
  +        <li>PDIK4G3TVT:   Expansion of entity reference is hosing numbering.
  +
  +        </li>
  +        <li>PDIK4G5NUY:   xsl:output attribute 'indent' not indenting non-html elements.
  +
  +        </li>
  +        <li>PDIK4G6MYB:   From forum: German Umlauts (ISO-8859-1) are not output to result tree correctly.
  +
  +        </li>
  +        <li>PDIK4GBR22:   Attributes that contain CRLF, must output a character reference for CRLF
  +
  +        </li>
  +        <li>PDIK4GBR5Z:   Test for the preceding::* axes are broken
  +
  +        </li>
  +        <li>PDIK4GBRM4:   Intl01 Fails. It use to output entity references for the correctly for Big5 encoding.
  +
  +        </li>
  +        <li>PDIK4GBTA7:   Performance: Depth-first search enhancement.
  +
  +        </li>
  +        <li>PDIK4GBTET:   Performance: SaxAttributeImpl is tooooooooooo big.
  +
  +        </li>
  +        <li>PDIK4GCLA7:   Processing Instruction with in a for-each loop is not being totally ignored.
  +
  +        </li>
  +        <li>PDIK4GCPRG:   Atrs24: It's easy to generate an attribute of the form abc:xyz:Attr="blablabla"
  +
  +        </li>
  +        <li>PDIK4GCRA9:   xsl:copy-of not copying elements namespace nodes that are inherited from the parent.
  +
  +        </li>
  +        <li>PDIK4GCT6V:   xsl:copy: missing select attribute causes crash.
  +
  +        </li>
  +        <li>PDIK4GHL4C:   System w/default encoding of DP-2312 (DPK), is not being overridden to UTF-8.
  +
  +        </li>
  +        <li>PDIK4GHMZA:   Simple LRE stylesheet not processing the version attribute correctly
  +
  +        </li>
  +        <li>PDIK4GHPZ7:   Basic test of xsl:copy is failing.
  +
  +        </li>
  +        <li>PDIK4GHQAQ:   Failure of xsl:copy to copy attributes.
  +
  +        </li>
  +        <li>PDIK4GHQTH:   LRE01, stylesheet attribute extension-element-prefixes is broken
  +
  +        </li>
  +        <li>PDIK4GHS8L:   Need to integrate with xerces 1.0.2 w/ Sax support
  +
  +        </li>
  +        <li>PDIK4GKQB2:   Namespace axes is not implemented
  +
  +        </li>
  +        <li>PDIK4GLUPM:   Overwriting previously set attributes crashing in MutableAttrListImpl
  +
  +        </li>
  +        <li>PDIK4GLUVU:   Attributes set tests are failing in FormatterToXML
  +
  +        </li>
  +        <li>PDIK4GMLVR:   NPE: Caused by sending RTF out to the DOM.
  +
  +        </li>
  +        <li>PDIK4GMSHL:   Slct03 failing; adding attribute to &lt;out&gt; when it should'nt be.
  +
  +        </li>
  +        <li>PDIK4GRMZ5:   Failing to match a LocationPathPattern based on an IdKeyPattern.
  +
  +        </li>
  +        <li>PDIK4GRQZX:   Failing to match "attribute::*" in match pattern
  +
  +        </li>
  +        <li>PDIK4GRR3Q:   Failing to match "child::*" in match pattern
  +
  +        </li>
  +        <li>PDIK4GSQK7:   XSLT element-available function not working.
  +
  +        </li>
  +        <li>PDIK4GSSF5:   Makefiles; cleanup?; compile with g:none, removes debug code (opt/debug builds)
  +
  +        </li>
  +        <li>PDIK4GZRHZ:   Element from XSLT namespace may have any attribute not from XSLT namespace provided.....
  +
  +        </li>
  +        <li>PDIK4H3QXA:   Invalid attributes of the form x="x", without namespace URI are not being flagged as errors.
  +
  +        </li>
  +        <li>PDIK4H3TNC:   xsl:attribute will allow generation of null namespace nodes.
  +
  +        </li>
  +        <li>RWER4GJQHK:   showtree-19991008.xsl perf benchmark crashes
  +
  +        </li>
  +        <li>RWER4GJUY3:   Greek numbering crashes with array bounds exception with HTML output
  +
  +        </li>
  +        <li>SBOG45UMEH:   Tests 43, 34: Namespace handling in patterns seems to fail in XML4J2DOM liaison
  +
  +        </li>
  +        <li>SBOG45UMVJ:   Test62,63: XML4J2DOM: Dropped tag end (&gt;)
  +
  +        </li>
  +        <li>SBOG4FWN66:   Problem with "//a" and large docs (Inconsistent Behavior Xalan v. XT and ODI Stylus)
  +
  +        </li>
  +        <li>SBOG4FWNH2:   StylesheetRoot creates wrong liaison if processor is not passed
  +
  +        </li>
  +        <li>SBOG4G67ZU:   Stylesheet serialization is broken
  +
  +        </li>
  +        <li>SCUU4D9S36:   Process.java does not check for errors in command line
  +
  +        </li>
  +        <li>SCUU4ELPRP:   TestThreads: running processors on multiple threads throws exceptions
  +
  +        </li>
  +        <li>SCUU4ELRSG:   Xalan's samples\pipe does not appear to work from end-user perspective
  +
  +        </li>
  +        <li>SCUU4FER9P:   Documentation typos/errors in Xalan 0.19.2 Overview, etc.
  +
  +        </li>
  +        <li>SCUU4GBPDY:   JVM crashes processing idky14 with XercesLiaison
  +
  +        </li>
  +        <li>SCUU4GBPM4:   DTM.java(1517) System.out.println("Not descendent..."); - should be if(DEBUG) or something
  +
  +        </li>
  +        <li>SCUU4GBRB5:   Placeholder: Move doc-related README, etc. files to new xdocs structure
  +
  +        </li>
  +        <li>SCUU4GTSBS:   TransformToDom sample throws exception; build xalan_0_19_5
  +
  +        </li>
  +  </ul>
  +</s3>
  +
  +<s3 title="Bugs closed since the last Xalan version">
  +  <p>The following are Closed bugs (not really a bug; no longer applicable; etc.):</p>
  +  <ul>
  +        <li>DMAN465KYD:   Demo page exposes possible timing issues
  +
  +        </li>
  +        <li>DMAN46RS8G:   Attribute-sets not interacting well
  +
  +        </li>
  +        <li>DMAN4EFUYU:   decimal-format pattern-separator setting has no effect
  +
  +        </li>
  +        <li>DMAN4G5TLR:   xsl:number assumption of separators is no longer correct
  +
  +        </li>
  +        <li>DMAN4GBQTW:   Null string should be a substring of itself; "contains" function defect
  +
  +        </li>
  +        <li>PDIK47NLGY:   xsl:stylesheet is not synonymous with xsl:transform
  +
  +        </li>
  +        <li>PDIK4D2JFT:   &lt;xsl:text disable-output-escaping="yes"&gt; not working with &lt;xsl:output method=html&gt;
  +
  +        </li>
  +        <li>SBOG45VNAM:   uri() function doesn't take into account the base uri of the stylesheet.
  +
  +        </li>
  +  </ul>
  +</s3>
  
  
  
  1.4       +18 -17    xml-site/sources/xalan/STATUS
  
  Index: STATUS
  ===================================================================
  RCS file: /home/cvs/xml-site/sources/xalan/STATUS,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- STATUS	2000/02/17 16:48:45	1.3
  +++ STATUS	2000/03/07 16:03:42	1.4
  @@ -1,18 +1,19 @@
  -<s3 title="Version of Xerces to use">
  -<p>The version of xalan.jar shipped with this release works with the xerces.jar shipped in Xerces-java version 1.0.1.</p>
  -</s3>
  -<s3 title="Things still to be done">
  -  <p>We still need to do the following:</p>
  -    <ul>
  -      <li>Switch from Makefile et.al. to an Ant-based system (contact: shane_curcur@lotus.com working on).<br/><br/></li>
  -      <li>Create a simple 'minitest' so anyone can verify very basic 
  -      functionality of Xalan. (shane_curcuru@lotus.com working on).<br/><br/></li>
  -      <li>Have more regular builds, synched with Xerces builds.<br/><br/></li>
  -      <li>attribute:: and child:: (ChildOrAttributeAxisSpecifier) in patterns are not 
  -      yet implemented.<br/><br/></li>
  -      <li>The main focus for the next release (0.19.2, and upcoming 0.19.3) will be performance.<br/><br/></li>
  -      <li>Extensions need further work to become more robust and less confusing.<br/><br/></li>
  -      <li>Beyond this, and a few other minor conformance issues, the goal is to 
  -      reach a level of stability that can be tagged as a 1.0.0 release.<br/><br/></li>
  -    </ul>
  +<s3 title="To-do tasks for future Xalan versions">
  +  <p>Things we are planning or would like to do in Xalan:</p>
  +  <ul>
  +    <li>Updating this STATUS file regularly</li>
  +    <li>This (Xalan 0.20.0) is a Gold Candidate release.  Before we release this as the long-awaited Xalan 1.0.0, we'd 
  +    like you all to bang on it a bit, especially via the API.  We've done a pretty good job at testing via the
  +     org.apache.xalan.xslt.Process command-line utility, but we have more limited exposure to running in more complicated 
  +     run-time scenarios, especially multi-threaded, etc.</li>
  +    <li>We're looking at replacing our current make system with Ant for post Xalan 1.0.  Shane shane_curcuru@lotus.com is looking
  +    into this.</li>
  +    <li>It would be great if someone would volunteer to own JBuilder support for Xalan, e.g., regularly test to make sure we 
  +    compile and run correctly in that environment, produce project files for JBuilder for released version of Xalan, etc.</li>
  +    <li>Ditto for other IDE's: Visual Cafe, MSVJ++, whatever people have expertise in.  If you're interested, post a note to the
  +    list.
  +    The best person to maintain stuff like this is someone who works with the builder on a regular basis, and that isn't me! </li>
  +    <li>There's a lot of talk now about Xalan 2.0 and what that will be, including a possible top-down redesign.  
  +    Watch the xalan-dev list for more information and for ideas about how you can get involved.</li>
  +  </ul>
   </s3>    
  
  
  
  1.7       +42 -33    xml-site/sources/xalan/commandline.xml
  
  Index: commandline.xml
  ===================================================================
  RCS file: /home/cvs/xml-site/sources/xalan/commandline.xml,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- commandline.xml	2000/02/17 16:48:45	1.6
  +++ commandline.xml	2000/03/07 16:03:42	1.7
  @@ -68,9 +68,9 @@
       for performing XSL transformation. To perform a transformation from the command line or a script,
       do the following:</p>
    		<ol>
  -    <li>Install &xslt4j;. See <resource-ref idref="Installation"/>.<br/><br/></li> 
  -    <li>Set the java Classpath to include xalan.jar and xerces.jar. See <link idref="getstarted"
  -     anchor="classpath">Setting the class path</link><br/><br/></li>
  +    <li><link idref="getstarted" anchor="download">Download &xslt4j;</link>.<br/><br/></li> 
  +    <li><link idref="getstarted"
  +     anchor="classpath">Set the java classpath</link> to include xalan.jar and xerces.jar<br/><br/></li>
       <li>Call java and the Process class with the appropriate flags and
       arguments (described below). The following command line, for example, includes the -IN, -XSL,
       and -OUT flags with their accompanying arguments -- the XML source document, the XSL
  @@ -78,40 +78,49 @@
       <code>java org.apache.xalan.xslt.Process -IN foo.xml -XSL foo.xsl -OUT foo.out</code>
       </li></ol>
       <p>The command line utility can take the following flags and arguments:</p> 
  -      <source>
  -        -IN inputXMLURL
  -        -XSL XSLTransformationURL
  -        -OUT outputFileName
  -        -LXCIN compiledStylesheetFileNameIn
  -        -LXCOUT compiledStylesheetFileNameOut
  -        -PARSER fully qualified class name of parser liaison
  -        -E (Keep--do not expand -- entity refs)
  -        -V (Version info)
  -        -QC (Quiet Pattern Conflicts Warnings)
  -        -Q  (Quiet Mode)
  -        -LF (Use linefeeds only on output -- default is CR/LF)
  -        -CR (Use carriage returns only on output -- default is CR/LF)
  -        -INDENT (Number of spaces to indent each level in output tree --default is 0)
  -        -TT (Trace the templates as they are being called)
  -        -TG (Trace each result tree generation event)
  -        -TS (Trace each selection event)
  -        -TTC (Trace the template children as they are being processed)
  -        -VALIDATE (Validate the XML and XSL input -- validation is off by default)
  -        -EDUMP [optional]FileName (Do stackdump on error)
  -        -XML (Use XML formatter and add XML header)
  -        -TEXT (Use simple Text formatter)
  -        -HTML (Use HTML formatter)
  -        -PARAM name expression (Set a stylesheet parameter)
  -      </source>
  -      <p>Use -IN to specify the XML source document. To specify the XSL stylesheet, use -XSL 
  -      or -LXCIN. To compile an XSL stylesheet for future use as -LXCIN input, use -LXCOUT.</p>
  -      <p>Include -PARSER if you supply your own parser liaison class, which is required
  -      if you do not use the &xml4j; parser.</p>
  +      <source>-IN inputXMLURL
  +-XSL XSLTransformationURL
  +-OUT outputFileName
  +-LXCIN compiledStylesheetFileNameIn
  +-LXCOUT compiledStylesheetFileNameOut
  +-PARSER fully qualified class name of parser liaison
  +-V (Version info)
  +-QC (Quiet Pattern Conflicts Warnings)
  +-Q  (Quiet Mode)
  +-LF (Use linefeeds only on output -- default is CR/LF)
  +-CR (Use carriage returns only on output -- default is CR/LF)
  +-INDENT (Number of spaces to indent each level in output tree --default is 0)
  +-TT (Trace the templates as they are being called)
  +-TG (Trace each result tree generation event)
  +-TS (Trace each selection event)
  +-TTC (Trace the template children as they are being processed)
  +-VALIDATE (Validate the XML and XSL input -- validation is off by default)
  +-EDUMP [optional]FileName (Do stackdump on error)
  +-XML (Use XML formatter and add XML header)
  +-TEXT (Use simple Text formatter)
  +-HTML (Use HTML formatter)
  +-PARAM name expression (Set a stylesheet parameter)</source>
  +      <p>Use -IN to specify the XML source document.</p> 
  +      <p>Use -XSL to specify the XSL stylesheet file.</p>
  +      <p>Use -LXCIN to specify a compiled XSL stylesheet file.</p>
  +      <p>Use -LXCOUT to compile an XSL stylesheet for future use as -LXCIN input.</p>
  +      <note>You can only use -LXCIN with a compiled stylesheet that you have already created with the -LXOUT switch. For an
  +       example, see <link anchor="compiledstylesheet">Using a compiled stylesheet</link></note>
  +      <p>Include -PARSER if you supply your own parser liaison class, which is required if you do not use DTM or the 
  +        Xerces parser.</p>
         <p>Use -TEXT if you want the output to include only element values (not element tags with element names and
  -      attributes). Use -HTML to write 4.0 transitional HTML (some elements, such as ltxxbr&gt;, are
  +      attributes).</p>
  +      <p>Use -HTML to write 4.0 transitional HTML (some elements, such as &lt;br&gt;, are
         not well formed.</p>
         <p>To set stylesheet parameters from the command line, use -PARAM name expression. If 
         you want to set the parameter to a string value, enclose the string in single quotes (') to
         make it an expression.</p>
  +      <p><anchor name="compiledstylesheet"/><em>Using a compiled stylesheet</em></p>
  +        <p>If you are using a stylesheet repeatedly, you can improvide performance by compiling the stylesheet the first time
  +          you use it and using the compiled stylesheet for subsequent transformations.</p>
  +        <p>For example, the following command line performs a transformation and compiles the stylesheet:"<br/><br/>
  +      <code>java org.apache.xalan.xsltProcess -in foo.xml -xsl foo.xsl -lxcout foo.style</code><br/><br/>
  +      The following command line uses the compiled stylesheet for the next transformation:<br/><br/>
  +      <code>java org.apache.xalan.xsltProcess -in foo2.xml -lxcin foo.style</code></p>
      </s2>
   </s1>
  
  
  
  1.5       +22 -15    xml-site/sources/xalan/dtm.xml
  
  Index: dtm.xml
  ===================================================================
  RCS file: /home/cvs/xml-site/sources/xalan/dtm.xml,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- dtm.xml	2000/02/17 16:48:45	1.4
  +++ dtm.xml	2000/03/07 16:03:43	1.5
  @@ -60,19 +60,26 @@
   
   <s1 title="&xslt4j; DTM">
         
  -	 <s2 title="Using the &xslt4j; DTM (Document Table Model)">
  -     <p>DOM (Document Object Model) is a standard interface for interacting with XML documents. &xslt4j;
  -     supports this interface: when you provide a Node as input for an XML source document or XSL 
  -     stylesheet, &xslt4j; uses an implementation of the DOM interface. For large XML documents, however,
  -     this may involve considerable overhead, since &xslt4j; must create one or more Java objects for each Node
  -     in the document.</p>
  -     <p>For those cases where you provide a URL, file, character stream, SAX input stream, or byte stream as input
  -     and use the  default XML liaison and parser, &xslt4j; avoids this overhead by implementing a DTM, effectively
  -     a "pseudo-DOM" that uses integer arrays in place of the DOM. For larger input trees, the performance
  -      improvements can be very significant.</p>
  -     <p>The XSLTProcessorFactory getProcessor() method sets up an XSLT processor to use the default liaison and
  -     parser. If your input is a DOM, you must use a "standard" DOM parser. In that case, you can use the 
  -     XercesLiaison and Xerces XML parser. For more information, see <link idref="usagepatterns"
  -     anchor="dom-in">Processing DOM input</link>.</p>     
  +	 <s2 title="Using the &xslt4j; Document Table Model (DTM)">
  +     <p>The Document Object Model (<resource-ref idref="DOM"/>) provides a standard interface for interacting
  +     with XML documents. &xslt4j; supports this interface. For large XML documents, however, this may involve considerable
  +     overhead, since &xslt4j; must create one or more Java objects for each Node in the document DOM tree.</p>
  +     <p>For the majority of cases -- your input and output are URLS, files, or streams, and you use the default Liaison
  +     (<resource-ref idref="DTMLiaisonDoc"/>) and XML parser, &xslt4j; avoids this overhead by implementing the Document Table
  +     Model (DTM), a "pseudo-DOM" that uses integer arrays in place of the DOM. For larger input and output trees, the
  +      performance improvements can be very significant.</p>
  +     <p>The <resource-ref idref="XSLTProcessorFactoryGetProcessorDoc"/> sets up an XSLT processor to use the default DTM liaison
  +      and XML parser. If your input or output turns out to be a DOM Node, the XSLTProcessor automatically switches to the
  +      <resource-ref idref="XercesLiaisonDoc"/> and the Xerces DOM parser. You can explicitly instantiate an XSLTProcessor to use
  +      XercesLiaison and the Xerces DOM parser as follows:</p>
  +      <p><code>org.apache.xalan.xsltXSLT.Processor xsltProc = org.apache.xalan.xslt.XSLTProcessorFactory.getProcessor(</code><br/>
  +      <code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new org.apache.xalan.xpath.xdom.XercesLiaison());</code></p>
  +      <p>For more information, see <link idref="usagepatterns" anchor="dom-in">Processing DOM input and Producing DOM
  +      output</link>.</p>
  +      <note>The DTM parser always attempts to expand entitity references in the source tree and stylesheet
  +      tree. If you attempt to turn off entity reference expansion -- with DTMLiaison
  +      setShouldExpandEntitityRefs(false) -- DTMLaison does not make the setting and issues a message to that
  +      effect. If you want to turn off entity refereence expansion, instantiate the XSLTProcessor to use XercesLiaison and the
  +      Xerces DOM parser.</note>
   	 </s2>
  -</s1>
  +</s1>
  \ No newline at end of file
  
  
  
  1.5       +30 -28    xml-site/sources/xalan/extensions.xml
  
  Index: extensions.xml
  ===================================================================
  RCS file: /home/cvs/xml-site/sources/xalan/extensions.xml,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- extensions.xml	2000/02/02 16:04:08	1.4
  +++ extensions.xml	2000/03/07 16:03:43	1.5
  @@ -19,14 +19,14 @@
   <li>Examples: <link anchor="ex-basic">basic JavaScript example</link>, <link anchor="ex-redirect">the Redirect extension</link>, <link anchor="ex-java-namespace">using the java namespace</link>, <link anchor="ex-java">using a Java Hashtable</link>, <link anchor="ex-javascript">using a JavaScript array</link></li>
   </ul><anchor name="intro"/>
     <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. An extension (a collection of elements and functions) inhabits a namespace, either a namespace you declare and designate as an extensions namespace, or the predefined java namespace that &xslt4j; provides.</p>
  +  <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. An extension (a collection of elements and functions) inhabits a namespace, either a namespace you declare and designate as an extensions namespace, or the predefined java namespace 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 form of the content you can place in an XML element. Extension elements may perform quite sophisticated actions, given that the extension routine has direct access to the XSL 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.</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 XSL 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 extensions to the core library of functions that XPath provides. An extension function passes arguments to the extension 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.</p>
  +<p><em>Extension functions</em>You can think of extension functions as extendint 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.</p>
   </s2><anchor name="supported-lang"/>
   <s2 title="Supported languages">
  -<p>&xslt4j; uses the Bean Scripting Framework (BSF), an architecture for incorporating scripting into Java applications and applets. BSF allows an application to take advantage of scripting while being independent of any specific scripting language. To date, we have tested extensions implemented in Java and JavaScript. Other languages with BSF support appear in the table below.</p>
  +<p>&xslt4j; uses the <jump href="http://www.alphaworks.ibm.com/tech/bsf">Bean Scripting Framework (BSF)</jump>, an architecture for incorporating scripting into Java applications and applets. BSF allows an application to take advantage of scripting while being independent of any specific scripting language. To date, we have tested extensions implemented in Java and JavaScript. Other languages with BSF support appear in the table below.</p>
   <p>BSF requires two JAR files on the class path: bsf.jar and bsfengines.jar. These two JAR files are shipped with &xslt4j;, and that is all that is required for Java extensions. The additional JAR files or DLLs required to support extensions in other languages are listed in the table below. These files are available from the sources indicated and are not shipped with &xslt4j;.</p>
   <table>
     <tr>
  @@ -75,7 +75,7 @@
   </table>
   </s2><anchor name="basic-pattern"/>
   <s2 title="The basic pattern">
  -<p>Let's examine a simple example. The stylesheet below uses an extension element and an extension function to transform an element in the XML source into a statement in the output indicating the date by which a customer can expect to a response to a given enquiry.</p>
  +<p>Let's examine a simple example. The stylesheet below uses an extension element and an extension function to transform an element in the XML source into a statement in the output indicating the date by which a customer can expect a response to a given enquiry.</p>
   
   <p>The source element contains a numdays attribute. The extension element contains a multiplier attribute, which is used to set a variable in the extension. The extension function computes the deadline, that is the current date plus numdays * multiplier. So for &lt;deadline numdays="3"/&gt; (in the XML source) and &lt;timelapse multiplier="2"/&gt; (in the stylesheet), the extension computes a deadline 6 days from now, and the stylesheet template  transform the deadline element into a string along the lines of <code>&lt;p&gt;We have received your enquiry and will respond by April 29, 2000 12:07:16 PM EST.&lt;/p&gt;</code></p>
   <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 both extension elements and extension functions.</note>
  @@ -107,8 +107,9 @@
     &lt;lxslt:component prefix="my-ext" elements="timelapse" functions="getdate"&gt;
       &lt;lxslt:script lang="javascript"&gt;
         var multiplier=1;
  -      // The methods or functions that implement extension elements always take two arguments. 
  -      // The first argument is the XSL Processor context; the second argument is the element node.
  +      // The methods or functions that implement extension elements always take 2
  +      // arguments. The first argument is the XSL Processor context; the second 
  +      // argument is the element node.
         function timelapse(xslProcessorContext, elem)
         {
           multiplier=parseInt(elem.getAttribute("multiplier"));
  @@ -140,7 +141,7 @@
   <s2 title="Syntax">
   <p>You can always use the pattern illustrated above to set up and use extension elements and extension functions. For extension functions implemented in Java, you can also use the java namespace, described in <link anchor="java-namespace">Alternative: using the predefined java extension namespace</link>. Unless you are using the predefined java extension namespace, do the following:</p>
   <s3 title="1. Declare the lxslt namespace">
  -<p><code>xmlns:lxslt="http://xml.apache.org/xslt"</code></p>
  +<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>
   <note>You may also use the LotusXSL alias for this namespace: "http://xsl.lotus.com/".</note>
   </s3>
  @@ -148,22 +149,23 @@
   <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 one of the following:</p>
   <ul>
  -  <li>An arbitrary (but unique) string.<br/>
  +  <li>An arbitrary (but unique) string that matches the prefix attribute of an lxslt:component element in the stylesheet.<br/>
     Example: <code>xmlns:ext1="xyz"</code><br/><br/></li>
     <li><code>[class:]<ref>FQCN</ref></code><br/>
      where <ref>FQCN</ref> is a Java fully qualified class name. If the extension only involves static class method
      calls (no instance constructors or instance method calls) precede the class name with <code>class:</code>.<br/>
      Example: <code>xmlns:ext2="java.util.Hashtable"</code><br/><br/></li>
  -  <li>The file name or URL for another document that contains the xslt:component element.<br/>
  +  <li>The file name or URL for another document that contains the lxslt:component element.<br/>
     Example: <code>xmlns:ext3="my-component.txt"</code></li>
   </ul>
  -<p>If the stylesheet contains an xslt:component element with a prefix attribute set to the extension prefix, the only function of the URI is to provide a unique namespace. If the stylesheet does not contain an xslt:component, the URI must identify a Java class or a document containing the xslt:component.</p>
  +<note>&xslt4j; identifies the URI by working through the list above. In other words, if the URI does not match an lxslt:comonent element prefix in the stylesheet, &xslt4j; attempts to map the URI to a fully qualified class name on the class path, and so on.</note>
  +<p>If the stylesheet contains an lxslt:component element with a prefix attribute set to the extension prefix, the only function of the URI is to provide a unique namespace. If the stylesheet does not contain an lxslt:component, the URI must identify a Java class or a document containing the lxslt:component.</p>
   </s3>
   <s3 title="3. Designate the extension prefixes">
   <p>In the stylesheet element:</p> 
   <p><code>extension-element-prefixes="<ref>prefix-1 prefix-2 ...</ref>"</code></p>
   <p>In a literal result element or extension element include the xsl prefix:</p>
  -<p><code>xsl:extension-element-prefixes="<ref>prefix1 prefix 2 ...</ref>"</code></p>
  +<p><code>xsl:extension-element-prefixes="<ref>prefix1 prefix2 ...</ref>"</code></p>
   <p>Keep in mind that where you declare namespaces and designate extension prefixes determines the scope of those namespaces.To make your extensions available throughout the stylesheet, include these settings and attribute in the stylesheet element.</p>
   <p>By default, namespace declarations are included in the transformation output. To exclude namespaces from the output, use</p>
   <p><code>exclude-result-prefixes="<ref>prefix-1 prefix-2 ...</ref>"</code></p>
  @@ -173,16 +175,16 @@
   </s3>
   <s3 title="4. Set up an lxslt:component">
   <p>In the scope of the xslt namespace declaration:</p>
  -<p><code>&lt;xslt:component prefix="<ref>prefix</ref>" </code><br/>
  +<p><code>&lt;lxslt: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;/xslt: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 xslt:component is actually available.</p>
  -<note>If your extension namespace is a fully qualified class name, you do not need to include the xslt:component. If you do not include it, you cannot use the function-available and element-available functions to determine whether a given element or function is actually available at runtime.</note>
  +   <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 your extension namespace is a fully qualified class name, you do not need to include the lxslt:component. If you do not include it, you cannot use the function-available and element-available functions to determine whether a given element or function is actually available at runtime.</note>
   </s3>
   <s3 title="5. Set up the lxslt:script element">
  -<p>In each xslt:component, you must include an lxslt:script element. If the extension is implemented in Java:</p>
  +<p>In each lxslt:component, you must include an lxslt:script element. If the extension is implemented in Java:</p>
   <p><code>&lt;lxslt:script lang="javaclass" src="<ref>[class:]FQCN</ref>"/&gt;</code></p>
   <p>where <ref>FQCN</ref> is the fully qualified class name. If the extension only involves static class method calls (no instance constructors or instance method calls) precede the class name with <code>class:</code>.<br/>
   Example: <code>&lt;lxslt:script lang="javaclass"</code><br/>
  @@ -227,8 +229,8 @@
   <p>JavaScript example: <code>function myElement(xslProcContext, element)</code></p>
   </s3>
   <s3 title="The Redirect extension">
  -<p>The Redirect extension (<jump href = "apidocsorg/apache/xalan/xslt/extensions/Redirect.html">org.apache.xalan.xslt.extensions.Redirect</jump>) is shipped with &xslt4j; (more extensions are on the way!).</p>
  -<p>A standard XSL transformation involves three parameters: the XML source tree, an XSL stylesheet, and the transformation result tree. Whether, the result tree is output to a file, a character stream, a byte stream, a DOM, or a SAX document handler, the initial transformation sends the entire result to a single target, represented by the <resource-ref idref="XSLTResultTargetDoc"/>.</p> 
  +<p>The Redirect extension (<jump href = "apidocs/org/apache/xalan/xslt/extensions/Redirect.html">org.apache.xalan.xslt.extensions.Redirect</jump>) is shipped with &xslt4j; (more extensions are on the way!).</p>
  +<p>A standard XSL transformation involves three parameters: the XML source tree, an XSL stylesheet, and the transformation result tree. Whether the result tree is output to a file, a character stream, a byte stream, a DOM, or a SAX document handler, the initial transformation sends the entire result to a single target, represented by the <resource-ref idref="XSLTResultTargetDoc"/>.</p> 
   <p>The Redirect extension 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>
   </s3><anchor name="ex-redirect"/> 
  @@ -342,7 +344,7 @@
   <p><code><ref>prefix</ref>:<ref>FQCN.methodName</ref> (<ref>args</ref>)</code></p>
   <p>where <ref>FQCN</ref> is the fully qualified class name whose static method <ref>methodName</ref> is to be invoked using the <ref>args</ref> arguments.<br/>
   Example: <code>variable new-pop</code><br/>
  -<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;select="my-ext:java.lang.Integer.valueOf(string(@population)"</code></p>
  +<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;select="my-ext:java.lang.Integer.valueOf(string(@population))"</code></p>
   
   <p><code><ref>prefix</ref>:<ref>methodName</ref> (<ref>object</ref>, <ref>args</ref>)</code></p>
   <p>where <ref>methodName</ref> is the name of the method to invoke on <ref>object</ref> with the <ref>args</ref> arguments.<br/>
  @@ -355,18 +357,18 @@
   <p>If you want to pass a node-set to an extension function, set up a Java method to accept an 
   org.w3c.dom.NodeList (or an org.apache.xalan.xpath.MutableNodeList, which extends NodeList, if you want to modify the nodes).</p>
   <p>Suppose, for example, you have a myExtensions.ProcessNodes class with the following doSomething method:</p>
  -<p><code>public static void doSomething(org.w3c.dom.NodeList nList)</code></p>
  +<p><code>public static boolean doSomething(org.w3c.dom.NodeList nList)</code></p>
   <p>Assuming you set up this extension in the node-ext namespace, any of the following extension calls from a stylesheet are syntactically possible:</p>
   <p><code>&lt;!--Process the current node--&gt;</code><br/>
  -<code>node-ext:MyExtensions.ProcessNodes.doSomething(.)</code></p>
  +<code>&lt;xsl:variable name="success" select="node-ext:MyExtensions.ProcessNodes.doSomething(.)"/&gt;</code></p>
   <p><code>&lt;!--Process all nodes in current context--></code><br/>
  -<code>node-ext:MyExtensions.ProcessNodes.doSomething(*)</code></p>
  +<code>&lt;xsl:variable name="success" select="node-ext:MyExtensions.ProcessNodes.doSomething(*)"/&gt;</code></p>
   <p><code>&lt;!-- Process all nodes --></code><br/>
  -<code>node-ext:MyExtensions.ProcessNodes.doSomething(/*)</code></p>
  +<code>&lt;xsl:variable name="success" select="node-ext:MyExtensions.ProcessNodes.doSomething(/*)"/&gt;</code></p>
   <p><code>&lt;!--Process the foo/baz nodes in current context --></code><br/>
  -<code>node-ext:MyExtensions.ProcessNodes.doSomething(foo/baz)</code></p>
  +<code>&lt;xsl:variable name="success" select="node-ext:MyExtensions.ProcessNodes.doSomething(foo/baz)"/&gt;</code></p>
   <p><code>&lt;!--Process the/foo/baz and /bar/saz nodes --></code><br/>
  -<code>node-ext:MyExtensions.ProcessNodes.doSomething(/foo/baz | /bar/saz)</code></p>
  +<code>&lt;xsl:variable name="success" select="node-ext:MyExtensions.ProcessNodes.doSomething(/foo/baz | /bar/saz)"/&gt;</code></p>
   <p>The NodeList is in fact a list of references into the XML document, so keep in mind that getNextSibling(), for example, gets you the next sibling in the document, which may not be the next Node in the NodeList.</p>
   </s3>
   <s3 title="Implementing extension functions">
  @@ -384,7 +386,7 @@
   </s3>
   <s3 title="Use the java namespace when you make extension function calls">
   <p>Use "java" as the prefix with the syntax described in <link anchor="ext-func-calls">Extension function Java calls</link>.</p>
  -<p>That is all. You do not need to set an extension-element-prefixes attribute, and you do not include an xslt:component element. Given the absence of the lxslt:component element, you cannot use the function-available method to determine at runtime whether a Java method call is actually available. </p>
  +<p>That is all. You do not need to set an extension-element-prefixes attribute, and you do not include an lxslt:component element. Given the absence of the lxslt:component element, you cannot use the function-available method to determine at runtime whether a Java method call is actually available. </p>
   <p>Using the java namespace clearly involves less setup than using your own namespace, as long as these restrictions are not a problem. Remember that you always have the option of setting up your own namespace and extra overhead is really minimal.</p>
   </s3><anchor name="ex-java-namespace"/> 
   <s3 title="Example: Formatting a date">
  @@ -410,7 +412,7 @@
     <li>The exclude-result-prefixes stylesheet attribute prevents the java namespace declaration from
      appearing in the output.</li>
     <li>The XSLT type returned by any LocationPath expression is node-set, so the XSLT string
  -    function is used to convert the format, year, month, and day attribute node-set values to
  +    function is used to convert the format, year, month, and day attribute values from node-sets to
       strings.</li>
     <li>The format attribute provides a String argument for constructing a java.text.SimpleDateFormat
       object.</li>
  
  
  
  1.2       +16 -17    xml-site/sources/xalan/getstarted.xml
  
  Index: getstarted.xml
  ===================================================================
  RCS file: /home/cvs/xml-site/sources/xalan/getstarted.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- getstarted.xml	2000/02/17 16:48:45	1.1
  +++ getstarted.xml	2000/03/07 16:03:43	1.2
  @@ -7,32 +7,32 @@
   <li><link anchor="classpath">Setting up the system class path</link></li>
   <li><link anchor="samples">Trying out the samples</link></li>
   <li><link anchor="commandline">Performing your own transformations from the command line</link></li>
  -<li><link anchor="java-apps">Creating your own XSLT applications</link></li>
  +<li><link anchor="java-apps">Setting up your own XSLT applications</link></li>
   </ul>
   <anchor name="download"/>
   <s2 title="Downloading what you need">
   <p>To use Xalan, you need the following:</p>
   <ul>
  -<li>The JDK or JRE 1.1.6 or later</li>
  +<li>The JDK or JRE 1.1.8 or 1.2.2</li>
   <li>xalan.jar</li>
   <li>xerces.jar</li>
   </ul>
  -<p>You can get the Sun JDK or JRE from <jump href="http://www.java.sun.com">java.sun.com</jump>. Download the latest release of Xalan and Xerces-java from <jump href="http://xml.apache.org/dist/">xml.apache.org</jump>. Check the <link idref="readme" anchor="status">version release notes</link> to verify that you are using the correct version of Xerces. <em>Important</em> You may experience unpredicable difficulties and anomalies if your &xslt4j; and &xml4j; builds are not in synch. You can use &xslt4j; with some other XML parser, but it is up to you to implement a liaison to that parser. Your liaison class should extend org.apache.xalan.xpath.xml.XMLParserLiaisonDefault and implement org.apache.xalan.xpath.XPathSupport.</p>
  -<note>You may also download the latest releases of LotusXSL and the XML Parser for Java from <jump href="http://www.alphaworks.ibm.com/tech/LotusXSL">alphaWorks</jump>. LotusXSL and the XML Parser for Java are Xalan and Xerces-java respectively, along with additional features and with wrappers to support the core API in place on alphaWorks before the first releases of Xalan and Xerces-java on xml.apache.org in November 1999. The alphaWorks LotusXSL release also provides continued support for earlier alphaWorks releases of the XML4J DOM and TXDOM parsers.</note>
  -<p>If you plan to run <link idref="extensions">XSLT extensions</link>. you need bsf.jar and bsfengines.jar, both of which are included in the Xalan distribution. If you plan to run XSLT extensions implemented in JavaScript or another scripting language, you will need one or more additional files as indicated in <link idref="extensions" anchor="supported-lang">extensions language requirements</link>.</p>
  +<p>You can get the Sun JDK or JRE from <jump href="http://www.java.sun.com">java.sun.com</jump>. Download the latest release of &xslt4j; and Xerces-java from <jump href="http://xml.apache.org/dist/">xml.apache.org</jump>. Check the <link idref="readme" anchor="status">version release notes</link> to verify that you are using the correct version of Xerces. <em>Important</em> You may experience unpredictable anomalies if your &xslt4j; and &xml4j; builds are not in synch. You can use &xslt4j; with other XML parsers, but it is up to you to implement liaisons to those parsers. Your liaison class should extend <resource-ref idref="XMLParserLiaisonDefaultDoc"/> and implement <resource-ref idref="XPathSupportDoc"/>.</p>
  +
  +<p>If you plan to run <link idref="extensions">XSLT extensions</link>. you need bsf.jar and bsfengines.jar, both of which are included in the &xslt4j; distribution. If you plan to run XSLT extensions implemented in JavaScript or another scripting language, you will need one or more additional files as indicated in <link idref="extensions" anchor="supported-lang">extensions language requirements</link>.</p>
   </s2><anchor name="classpath"/>
   <s2 title="Setting up the system class path">
   <p>At the very minimum, you must include xalan.jar and xerces.jar on the system class path. To run the sample applications, include xalansamples.jar To run extensions, include bsf.jar and bsfengines.jar. All these JAR files are distributed with &xslt4j;. For extensions implemented in JavaScript or another scripting language, see <link idref="extensions" anchor="supported-lang">extensions language requirements</link> to identify any additional JAR files you must place on the class path and where you can get them.</p>
  -<p>If you are using JDK or JRE 1.1.x (at least 1.1.7, please), also include classes.zip on the class path.</p>
  +<p>If you are using JDK or JRE 1.1.8, also include classes.zip on the class path.</p>
   </s2><anchor name="samples"/>
   <s2 title="Trying out the samples">
  -<p>The Xalan distribution includes a number of basic sample applications. These samples are easy to run, and you can review the source files -- all of which are brief -- to see just how they work.</p>
  +<p>The &xslt4j; distribution includes a number of basic sample applications. These samples are easy to run, and you can review the source files -- all of which are brief -- to see just how they work.</p>
   <p>To run the samples, do the following:</p>
   <ol>
   <li>Set up your class path (see above), including xalansamples.jar.</li>
   <li>Be sure java.exe is on your path.</li>
   <li>Go to the samples subdirectory containing the sample (use the DOS shell if you are running Windows).</li>
  -<li>Run the sample from the command line.</li>
  +<li>Use java.exe to run the sample from the command line.</li>
   <li>Examine the application source files.</li>
   </ol>
   <p>For example, go to the SimpleTransformation subdirectory and issue the following command:</p>
  @@ -41,8 +41,7 @@
   <p>The extensions examples require additional JAR files on the class path, and the procedure for running the sample applet and sample servlet is different. For more information about all the samples, see <link idref="samples">&xslt4j; Samples</link>.</p>
   </s2><anchor name="commandline"/>
   <s2 title="Performing your own transformations from the command line">
  -<p>java.org.apache.xalan.xslt.Process provides a basic utility for performing transformations from the command line. You use this utility, for example, to run the extensions samples. The command-line for the most standard of
  - transformations is as follows:</p>
  +<p>java.org.apache.xalan.xslt.Process provides a basic utility for performing transformations from the command line. You use this utility, for example, to run the extensions samples. The command-line for most standard transformations is as follows:</p>
   <p><code>java org.apache.xalan.xslt.Process -in <ref>xmlSource</ref></code><br/>
   <code>&nbsp;&nbsp;&nbsp;&nbsp;-xsl <ref>stylesheet</ref> -out <ref>outputfile</ref></code></p>
   <p>where <ref>xmlSource</ref> is the XML source file name, <ref>stylesheet</ref> is the XSL stylesheet file name, and <ref>outputfile</ref> is the output file name.</p>
  @@ -53,18 +52,18 @@
   <p>You can start by using your own XML source files and XSL stylesheets with the sample applications, which illustrate a number of the <link anchor="usage-patterns">basic usage patterns</link>.</p>
   <p>If you modify a java source file, be sure to compile the class and place it on the system class path. Here are some basic points to keep in mind as you are setting up transformations:</p>
   <ul>
  -<li>Use one of the <resource-ref idref="XSLTProcessorFactoryDoc"/> static getProcessor methods to set up an <resource-ref idref="XSLTProcessorDoc"/>. <br/><br/>By default, the XSLTProcessor uses the <resource-ref idref="DTMLiaisonDoc"/> and the high-performance <link idref="dtm"> Document Table Model (DTM)</link>"pseudo" DOM parser to process the input.  If your input is a DOM node (rather than a file, character stream, byte stream, or SAX input stream), you must use a "standard" DOM liaison and parser, such as the <resource-ref idref="XercesLiaisonDoc"/> and the Xerces DOM parser. For an example, see <link anchor="dom-in">Processing DOM input</link>.<br/><br/></li>
  +<li>Use the <resource-ref idref="XSLTProcessorFactoryGetProcessorDoc"/> to set up an <resource-ref idref="XSLTProcessorDoc"/> object.<br/><br/></li>
   <li>Set up <resource-ref idref="XSLTInputSourceDoc"/> objects for the XML input and XSL stylesheet. You can use a file name or URL, character streams, byte streams, or SAX input stream to instantiate an XSLTInputSource object.<br/><br/>
   If the XML document contains a stylesheet Processing Instruction (PI), you do not need to create a separate
   XSLTInputSource object for an XSL stylesheet.<br/><br/></li>
  -<li>For improved performance with a series of transformations, use the XSLTProcessor processStylesheet method to compile the XSL stylesheet (the result is a <resource-ref idref="StylesheetRootDoc"/>.<br/><br/>
  -This is also useful when you need to get information from the stylesheet before the tranformation occurs, for
  +<li>For improved performance with a series of transformations, use the <resource-ref idref="XSLTProcessorProcessStylesheetDoc"/> to compile the XSL stylesheet (the result is a <resource-ref idref="StylesheetRootDoc"/>), and then use the <resource-ref idref="StylesheetRootProcessDoc"/> to perform the transformations.<br/><br/>
  +Compiling the stylesheet is also useful when you need to get information from the stylesheet before the tranformation occurs, for
   instance, when you need to find out the output encoding in order to construct the right kind of Writer.
  -You must also compile the stylesheet if you are using the XSLTProcessor as a SAX document handler.<br/><br/></li>
  +You must also compile the stylesheet if you are using the XSLTProcessor as a SAX document handler (see <link idref="usagepatterns" anchor="sax">Generating and responding to SAX events</link>).<br/><br/></li>
   <li>Set up an <resource-ref idref="XSLTResultTargetDoc"/> for the transformation output. You can use a file name or URL, character stream, byte stream, or SAX document handler to instantiate an XSLTOutputTarget object.<br/><br/></li>
  -<li>Use the XSLTProcessor (or, in some cases, the <link idref="StylesheetRootDoc"/>) process method to perform the transformation.<br/><br/>
  -&xslt4j; is thread-safe for one instance per thread. If you are using the same instance of XSLTProcessor to perform
  -more than one transformation, call the reset method between transformations.</li>
  +<li>Use the XSLTProcessor process() method to perform the transformation, or the StylesheetRoot process() method to perform a series of transformations with the same stylesheet.<br/><br/>
  +XSLTProcessor is thread-safe for one instance per thread. If you are using the same instance of XSLTProcessor to perform
  +more than one transformation, call the reset method between transformations. StylesheetRoot is multithread-safe, and a single instance may be used across threads. Accordingly, you can call a StylesheetRoot object process() method repeatedly without resetting the StyleSheetRoot.</li>
   </ul>
   <p>For more information on setting up applications, see <link idref="usagepatterns">Usage Patterns</link>.</p>
   </s2>
  
  
  
  1.11      +32 -22    xml-site/sources/xalan/overview.xml
  
  Index: overview.xml
  ===================================================================
  RCS file: /home/cvs/xml-site/sources/xalan/overview.xml,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- overview.xml	2000/02/17 16:48:45	1.10
  +++ overview.xml	2000/03/07 16:03:43	1.11
  @@ -67,18 +67,19 @@
   <li><link anchor="glossary">Glossary</link></li>
   </ul><anchor name="intro"/>
     <s2 title="Introduction">
  -    <p>&xslt4j; (named after a rare musical instrument) fully implements the <resource-ref idref="xsl-draft-used"/>. 
  -    XSLT is the first part of the XSL stylesheet language for XML. It includes the XSL Transformation vocabulary and the
  -    XML Path language (XPath), a language for addressing parts of XML documents. For links to background materials, 
  +    <p>&xslt4j; (named after a rare musical instrument) fully implements the <resource-ref idref="XSLT"/> and the 
  +    <resource-ref idref="XPath"/>. XSLT is the first part of the XSL stylesheet language for XML. It includes the XSL
  +     Transformation vocabulary and XPath, a language for addressing parts of XML documents. For links to background materials, 
       discussion groups, frequently asked questions, and tutorials on XSLT, see <link anchor="uptospeed">Getting up
       to speed with XSLT</link>.</p> 
  -    <note>XSL also includes a formatting vocabulary, which is still under design and is not part of &xslt4j;. 
  +    <note>XSL also includes a vocabulary for formatting documents, which is still under design and is not part of &xslt4j;. 
       For more information, see <jump href="http://www.w3.org/TR/xsl/">W3C XSL Working Draft</jump> and the <jump
       href="http://xml.apache.org/fop">Apache XML FOP (Formatting Objects Project)</jump>.</note>
  -    <p>You use XSLT to compose stylesheets (themselves XML documents) for transforming XML documents into other XML
  -    documents, HTML documents, or other document types. In structural terms, an XSLT stylesheet specifies the transformation
  -    of one tree of nodes (the XML input) into another tree of nodes (the output or transformation result).</p>
  -    <note>The XSLT stylesheet may include cascading style sheets (CSS) in the result.</note> 
  +    <p>You use the XSLT language to compose XSL stylesheets. An XSL stylesheet contains instructions for
  +     transforming XML documents from one document type into another document type (XML, HTML, or other). In structural
  +     terms, an XSL stylesheet specifies the transformation of one tree of nodes (the XML input) into another tree of nodes 
  +     (the output or transformation result).</p>
  +    <note>The XSL stylesheet may include cascading style sheets (CSS) in the result.</note> 
       <p>In the following example, the foo.xsl stylesheet is used to transform foo.xml into foo.out:</p>
       <p>foo.xml:</p>
           <source>&lt;?xml version="1.0"?>
  @@ -92,23 +93,25 @@
   &lt;/xsl:stylesheet></source>
   <p>foo.out:</p>
   <source>&lt;out>Hello&lt;/out></source>
  -<p>By default, &xslt4j; uses a high-performance <link idref="dtm">Document Table Model (DTM)</link> to parse the input -- XML documents and XSL stylesheets, but it can be set to use the &xml4j; XML parser, and it can be adapted to work with other DOM-producing mechanisms and SAX document handlers. The input may appear in the form of a file, a character stream, a byte stream, a DOM, or a SAX input stream.</p>
  +<p>By default, &xslt4j; uses a high-performance <link idref="dtm">Document Table Model (DTM)</link> to parse XML documents and XSL stylesheets. It can be set to use the &xml4j; XML parser, and it can be adapted to work with other DOM-producing mechanisms and SAX document handlers. The input may appear in the form of a file, a character stream, a byte stream, a DOM, or a SAX input stream.</p>
   <p>&xslt4j; performs the transformations specified in the XSL stylesheet and produces a document file, a character
  - stream, a byte stream, a DOM, or a series of SAX events, as you specify when you set up the transformation.</p>
  + stream, a byte stream, a <resource-ref idref="DOM"/>, or a series of <resource-ref idref="SAX"/> events, as you specify when you set up the transformation.</p>
         </s2><anchor name="features"/>
      	  <s2 title="&xslt4j; Features">
   	    <ul> 
  -		    <li>Implements the <resource-ref idref="xsl-draft-used"/>.</li> 
  -    	  <li>Uses <jump href="http://xml.apache.org/xerces-j/index.html">&xml4j;</jump> 
  -        (and <jump href="http://www.alphaworks.ibm.com/tech/xml4j">the alphaWorks XML Parser for Java</jump>)</li>
  +		    <li>Implements the <resource-ref idref="XSLT"/></li> 
  +        <li>Incorporates the <resource-ref idref="XPath"/></li>
  +        <li>Optionally uses the high-performance DTM (Document Table Model) to avoid the object overhead involved in the
  +         construction and manipulation of DOM trees</li>
  +    	  <li>Interfaces directly to the <jump href="http://xml.apache.org/xerces-j/index.html">&xml4j; XML parser</jump></li>
       	  <li>Can interface to a SAX document handler or to any XML parser that produces Java DOM Trees</li>
       	  <li>Can output to SAX or DOM</li>
           <li>May be run from the <link idref="commandline">command line</link></li>
       	  <li>Includes an <link idref="getstarted" anchor="applet">applet wrapper</link></li>
           <li>May be used in a <link idref="samples" anchor="servlet">servlet</link> to transform XML documents into HTML
  -         and serve the results to clients.</li>
  +         and serve the results to clients</li>
           <li>Supports <link idref="extensions">Java and scripting language extensions</link></li>
  -        <li>Provides <link idref="extensions" anchor="redirect">an extension to support the production of multiple 
  +        <li>Provides <link idref="extensions" anchor="redirect">a redirect extension to support the production of multiple 
           output documents in a single operation</link></li>
   	    </ul> 
   	  </s2><anchor name="towork"/>
  @@ -118,8 +121,8 @@
       </s2><anchor name="uptospeed"/>
       
       <s2 title="Getting up to speed with XSLT">
  -    <p>If you are still working through the details of the XSLT spec (the W3C 1.0 Recommendation), you may want to
  -     consult one or more of the following:</p>
  +    <p>If you are still working through the details of the XSLT spec (the W3C 1.0 Recommendation), you may want 
  +    to consult one or more of the following:</p>
       <ul>
       <li>Elliotte Rusty Harold's <jump href="http://metalab.unc.edu/xml/books/bible/updates/14.html">Chapter 14 of 
       the XML Bible: XSL Transformations</jump><br/><br/></li>
  @@ -130,14 +133,16 @@
       <li>Dave Pawson's <jump href="http://freespace.virgin.net/b.pawson/xsl/index.html#top">XSL Frequently Asked
        Questions</jump><br/><br/></li>
       <li>Objects by Design's <jump href="http://www.objectsbydesign.com/projects/xmi_to_html.html">Transforming XMI to
  -     HTML</jump><br/><br/></li>
  +     HTML</jump> (oriented towards XMI, "an XML-based, stream representation of a UML model," but also covers "generic"
  +     XML transformations)<br/><br/></li>
        <li>Nic Miloslav's <jump href="http://zvon.vscht.cz/HTMLonly/XSLTutorial/Books/Book1/index.html">XSL Tutorial</jump>
        <br/><br/></li>
        <li>OASIS (the Organization for the Advancement of Structured Information Standards): 
        <jump href="http://www.oasis-open.org/cover/xsl.html">Extensible Stylesheet Language (XSL)</jump> by Robin
        Cover</li>
  +     <li>Donald Ball's <jump href="http://www.webslingerZ.com/balld/xsl/designer_manual.xml">A Guide to XML and XSL for Designers</jump><br/><br/></li>
       </ul>
  -    <p>When you come across other useful introductionary or background materials, please email <human-resource-ref
  +    <p>When you come across other useful introductory or background materials, please email <human-resource-ref
        idref="dleslie"/>, so he can add them to this list.</p>
        
       </s2><anchor name="glossary"/>
  @@ -146,6 +151,10 @@
           <label>XSL Instruction</label>
           <item>Any tag with an XSL namespace prefix.<br/><br/></item>
           
  +        <label>Template</label>
  +        <item>An element, usually with child elements, that specifies a "rule" or set of 
  +        instructions to perform when a particular kind of node is encountered in the source tree.<br/><br/></item>
  +                
           <label>XSL Template Instruction</label>
           <item>Any tag with an XSL namespace prefix
               that occurs inside an xsl:template element.<br/><br/></item>
  @@ -162,10 +171,11 @@
           <label>Stylesheet Tree</label>
           <item>The stylesheet tree produced from the XSL file.<br/><br/></item>
           
  -        <label>Pattern List</label>
  -        <item>A parsed query or match pattern.<br/><br/></item>
  +        <label>Match Pattern</label>
  +        <item>The part of a template that defines the kind(s) of nodes to which the template applies.<br/><br/></item>
  +
         </gloss>
  -      <p>For more definitions of XSLT terminology, see Dave Lawson's 
  +      <p>For more definitions of XSLT terminology, see Dave Pawson's 
         <jump href="http://freespace.virgin.net/b.pawson/xsl/xslvocab.html#top">XSLT Terminology
         Clarification</jump>.</p>
       </s2>
  
  
  
  1.10      +11 -5     xml-site/sources/xalan/readme.xml
  
  Index: readme.xml
  ===================================================================
  RCS file: /home/cvs/xml-site/sources/xalan/readme.xml,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- readme.xml	2000/02/17 16:48:45	1.9
  +++ readme.xml	2000/03/07 16:03:43	1.10
  @@ -68,7 +68,7 @@
    </ul>
     <s2 title="Status">
      <ul>
  -    <li><link anchor="status">Version of &xml4j; to use</link></li>
  +    <li><link anchor="status">Version of Xerces to use</link></li>
       <li><link anchor="done">Bug fixes</link></li>
       <li><link anchor="bugs">Outstanding bugs</link></li>
      </ul>
  @@ -113,13 +113,18 @@
      example. Be sure xalan.jar and xerces.jar are on the class path. To recompile (and run!) the class files in the
      Servlet subdirectory, the javax.servlet and javax.servlet.http packages must also be on the class path. Sun
      distributes these packages in the JSWDK 1.0.1 servlet.jar file.</p> 
  -   <p>After recompiling a sample, you can use the Sun jar utility to place your  new .class files in
  +   <p>After recompiling a sample, you can use the Sun jar utility to place your new .class files in
       xalansamples.jar.</p>
      </s3><anchor name="doc"/>
      <s3 title="Rebuilding the &xslt4j; documentation">
        <p>&xslt4j; includes a number of XML source files, XSL stylesheets, document type definition (DTD)
         files, entity relationship (ENT) files, graphics, and a JavaScript file that provide the input for the Xalan
         HTML User's Guide, and the overview and package-level documents used during the generation of Javadoc.</p>
  +      <p>To rebuild the documentation, you must use the JDK 1.2.2 java and javadoc tools. If the JDK 1.2.2 bin and lib
  +      directories are not on your class path, you can edit the make.include file in the Xalan root directory so the make file
  +      can find the JDK 1.2.2 java and javadoc tools. You can also include java and javadoc arguments on the make file command
  +      line. See the make.include file for the details.</p>
  +      
        <p>To generate the Xalan HTML User's Guide, run the Xalan make file in the Xalan xdocs directory:<br/><br/>
        <code>make stylebook</code></p>
        <p>To generate Xalan API documentation, set up the make file to use the Javadoc tool in the Java JDK 1.2.2 bin 
  @@ -134,18 +139,19 @@
         <p>If you want to rebuild the documentation without using the GNU build environment, keep the following in
          mind:</p>
          <ul>
  -       <li>Be sure stylebook-1.0-b1.jar, xalan.jar, bsf.jar, bsfengines.jar, and xerces.jar are on the class
  +       <li>Be sure stylebook-1.0-b2.jar, xalanjdoc.jar, xalan.jar, bsf.jar, bsfengines.jar, and xerces.jar are on the class
          path.<br/><br/></li>
          <li>To build doc in a build/docs subdirectory, run StyleBook from the xdocs directory as follows:<br/><br/>
   <code>java org.apache.stylebook.StyleBook "targetDirectory=../build/docs/" sources/xalanLocal.xml style</code>
          <br/><br/></li>
  -       <li>To build the html source files that javadoc needs for top-level and package-level documentation, run
  +       <li>To build the HTML source files that javadoc needs for top-level and package-level documentation, run
           StyleBook from the xdocs directory as follows:<br/><br/>
           <code>java org.apache.stylebook.StyleBook "loaderConfig=sbk:/style/loaderjdoc.xml" targetDirectory=../src sources/javadocPackages.xml style</code><br/><br/></li>
           <li>Before you run javadoc, make sure the following directory structure exists under the Xalan root
            directory: build/docs/apidocs.<br/><br/></li>
          <li>To build the API documentation, run the JDK 1.2.2 javadoc tool from the xdocs directory:<br/><br/>
  -<code>javadoc -overview ../src/javadocOverview.html -sourcepath ../src org.apache.xalan.xpath org.apache.xalan.xpath.xdom org.apache.xalan.xpath.dtm org.apache.xalan.xpath.xml org.apache.xalan.xslt org.apache.xalan.xslt.trace org.apache.xalan.xslt.client org.apache.xalan.xslt.extensions  -windowtitle Xalan -d ../build/docs/apidocs</code></li>
  +<code>-doclet xalanjdoc.Standard -public -overview ../src/javadocOverview.html -sourcepath ../src -group "XSLT Packages" "org.apache.xalan.xslt*" -group "XPath Packages" "org.apache.xalan.xpath*" org.apache.xalan.xpath org.apache.xalan.xpath.xdom org.apache.xalan.xpath.dtm org.apache.xalan.xpath.xml org.apache.xalan.xslt org.apache.xalan.xslt.trace org.apache.xalan.xslt.client org.apache.xalan.xslt.extensions -windowtitle Xalan -d ../build/docs/apidocs
  +</code></li>
   </ul>
     </s3>    
    </s2><anchor name="contact"/>
  
  
  
  1.7       +18 -26    xml-site/sources/xalan/resources.xml
  
  Index: resources.xml
  ===================================================================
  RCS file: /home/cvs/xml-site/sources/xalan/resources.xml,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- resources.xml	2000/02/17 16:48:45	1.6
  +++ resources.xml	2000/03/07 16:03:43	1.7
  @@ -14,9 +14,9 @@
   <resources>
   &apiResources;
    	
  -  <resource id="Xalan-current" title="Xalan-Java 0.19.2 XSLT Processor" location="http://xml.apache.org/xalan"/>
  +  <resource id="Xalan-current" title="Xalan-Java 0.19.4 XSLT Processor" location="http://xml.apache.org/xalan"/>
       <resource id="Xalan-dist" title="Xalan distribution" location="http://xml.apache.org/dist/"/>
  -    <resource id="LotusXSL-current" title="LotusXSL 0.19.2" location="http://www.alphaworks.ibm.com/tech/LotusXSL"/>   
  +    <resource id="LotusXSL-current" title="LotusXSL 0.19.4" location="http://www.alphaworks.ibm.com/tech/LotusXSL"/>   
   	
    <resource id="ApacheLicense" title="The Apache Software License, Version 1.1" location="http://xml.apache.org/dist/LICENSE.txt"/>
   	
  @@ -28,16 +28,13 @@
     <resource id="Demo" title="Xalan Browser Demo" location="http://xml.apache.org/xalan/XMLViewer.htm"/>
   
     
  -  <resource id="xsl-draft-used" title="W3C Recommendation 16 November 1999 XSL Transformations (XSLT) Version 1.0" location="http://www.w3.org/TR/1999/REC-xslt-19991116"/>
  +  <resource id="XSLT" title="W3C Recommendation 16 November 1999 XSL Transformations (XSLT) Version 1.0" location="http://www.w3.org/TR/xslt"/>
     
  -  
  -  <resource id="xpath-draft-used" title="W3C Working Draft 9 August 1999 XML Path Language (XPath)" location="http://www.w3.org/1999/08/WD-xpath-19990813"/>
  -  
  -    
  -  <resource id="xsl-draft-latest" title="XSLT World Wide Web Consortium (W3C) XSL Transformations (XSLT) Specification" location="http://www.w3.org/TR/WD-xslt"/>
  +  <resource id="XPath" title="XML Path Language (XPath) Version 1.0" location="http://www.w3.org/TR/xpath"/>
  +
     <resource id="DOM-draft-august" title="August 18 Document Object Model (DOM) Level 1 Specification" location="http://www.w3.org/TR/1998/PR-DOM-Level-1-19980818/"/>
     <resource id="DOM-draft-october" title="October 1 Document Object Model (DOM) Level 1 Specification" location="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001"/>
  -  <resource id="DOM-draft-latest" title="Latest DOM" location="http://www.w3.org/TR/PR-DOM-Level-1 "/>
  +  <resource id="DOM" title="DOM" location="http://www.w3.org/DOM"/>
   
       
     <resource id="xml4j-used" title="Version 3.0.0EA3 of the XML Parser for Java" location="http://www.alphaworks.ibm.com/tech/xml4j"/>    
  @@ -54,14 +51,6 @@
     <resource id="SamplesDir" title="'samples' directory" location="Samples"/>
     <resource id="ReadMeProductionDir" title="'readme_production' directory" location="../production"/>
     <resource id="SourceCodeDir" title="'xml-xalan/src' directory" location="../src"/>
  -  <resource id="run_sh" title="run.sh" location="run.sh"/>
  -  <resource id="xml4j16_test_sh" title="testSuite/xml4j1tx/test.sh" location="testSuite/xml4j1tx/test.sh"/>
  -  <resource id="xml4j2tx_test_sh" title="testSuite/xml4j2tx/test.sh" location="testSuite/xml4j2tx/test.sh"/>
  -  <resource id="xml4j2dom_test_sh" title="testSuite/xml4j2dom/test.sh" location="testSuite/xml4j2dom/test.sh"/>
  -  <resource id="TestSuiteDir" title="'testSuite' directory" location="testSuite"/>
  -  <resource id="TestWithXML4J14SuiteDir" title="'testSuite\xml4j1tx' directory" location="testSuite\xml4j1tx"/>
  -  <resource id="TestWithXML4J2DOMSuiteDir" title="'testSuite\xml4j2dom' directory" location="testSuite\xml4j2dom"/>
  -  <resource id="TestWithXML4J2TXSuiteDir" title="'testSuite\xml4j2tx' directory" location="testSuite\xml4j2tx"/>
     
     <resource id="APIOverview" title="API Overview" location="api.html"/>
   	  <resource id="APIDocumentationDir" title="'apidocs' directory" location="apidocs"/>
  @@ -69,6 +58,7 @@
     <resource id="APIDocumentation" title="API Documentation" location="apidocs/index.html"/>	
     <resource id="ReadmeDocumentation" title="Release Notes" location="readme.html"/>
     <resource id="readme.xml" title="XML version of the Readme file" location="../docs/readme.xml"/>
  +
     <human-resource id="xalandev" name="Xalan Development Mailing List" mailto="xalan-dev@xml.apache.org"/>
     <human-resource id="sboag" name="Scott Boag" mailto="scott_boag@lotus.com"/>
      <human-resource id="dnbertoni" name="David N. Bertoni" mailto="david_n_bertoni@lotus.com"/>
  @@ -80,21 +70,23 @@
   		<human-resource id="sanjiva" name="Sanjiva Weerawarana" mailto="sanjiva@watson.ibm.com"/> 
   		  <human-resource id="dday" name="Don Day" mailto="dond@us.ibm.com"/> 
   
  -<resource id="TestLXSLDoc" title="TestLXSL Documentation" location="TestLXSL\index.html"/>	
   <resource id="SAX" title="SAX" location="http://www.megginson.com/SAX/sax.html"/>	
   <resource id="SAXDocumentHandler" title="org.xml.sax.DocumentHandler" location="http://www.megginson.com/SAX/javadoc/org.xml.sax.DocumentHandler.html#_top"/>
   <!--Javadoc methods-->
  +<resource id="XSLTProcessorFactoryGetProcessorDoc" title="XSLTProcessorFactory static getProcessor() method"
  +location="apidocs/org/apache/xalan/xslt/XSLTProcessorFactory.html#getProcessor()"/>
   <resource id="XSLTProcessorProcessDoc" title="XSLTProcessor process() method" location="apidocs/org/apache/xalan/xslt/XSLTProcessor.html#process(org.apache.xalan.xslt.XSLTInputSource, org.apache.xalan.xslt.XSLTInputSource, org.apache.xalan.xslt.XSLTResultTarget)"/>
  -<resource id="XSLTProcessorProcessStylesheetDoc" title="processStylesheet method" location="apidocs/org/apache/xalan/xslt/XSLTProcessor.html#processStylesheet(java.lang.String)"/>     
  -<resource id="XSLTProcessorSetStylesheetParamDoc" title="setStylesheetParam method" location="apidocs/org/apache/xalan/xslt/XSLTProcessor.html#setStylesheetParam(java.lang.String, java.lang.String)"/>
  -<resource id="XSLTProcessorCreateXString" title="createXString method" location="apidocs/org/apache/xalan/xslt/XSLTProcessor.html#createXString(java.lang.String)"/>
  -<resource id="XSLTProcessorCreateXObject" title="createXObject method" location="apidocs/org/apache/xalan/xslt/XSLTProcessor.html#createXObject(java.lang.Object)"/>
  -<resource id="XSLTProcessorCreateXNumber" title="createXNumber method" location="apidocs/org/apache/xalan/xslt/XSLTProcessor.html#createXNumber(double)"/>
  -<resource id="XSLTProcessorCreateXBoolean" title="createXBoolean method" location="apidocs/org/apache/xalan/xslt/XSLTProcessor.html#createXBoolean(boolean)"/>
  +<resource id="StylesheetRootProcessDoc" title="StylesheetRoot process() method" location="apidocs/org/apache/xalan/xslt/StylesheetRoot.html#process(org.apache.xalan.xslt.XSLTInputSource, org.apache.xalan.xslt.XSLTResultTarget)"/>
  +<resource id="XSLTProcessorProcessStylesheetDoc" title="XSLTProcessor processStylesheet() method" location="apidocs/org/apache/xalan/xslt/XSLTProcessor.html#processStylesheet(java.lang.String)"/>     
  +<resource id="XSLTProcessorSetStylesheetParamDoc" title="setStylesheetParam() method" location="apidocs/org/apache/xalan/xslt/XSLTProcessor.html#setStylesheetParam(java.lang.String, java.lang.String)"/>
  +<resource id="XSLTProcessorCreateXString" title="createXString() method" location="apidocs/org/apache/xalan/xslt/XSLTProcessor.html#createXString(java.lang.String)"/>
  +<resource id="XSLTProcessorCreateXObject" title="createXObject() method" location="apidocs/org/apache/xalan/xslt/XSLTProcessor.html#createXObject(java.lang.Object)"/>
  +<resource id="XSLTProcessorCreateXNumber" title="createXNumber() method" location="apidocs/org/apache/xalan/xslt/XSLTProcessor.html#createXNumber(double)"/>
  +<resource id="XSLTProcessorCreateXBoolean" title="createXBoolean() method" location="apidocs/org/apache/xalan/xslt/XSLTProcessor.html#createXBoolean(boolean)"/>
   <resource id="XSLTProcessorCreateXNodeSet" title="createXNodeSet(NodeList nl) method" location="apidocs/org/apache/xalan/xslt/XSLTProcessor.html#createXNodeSet(org.w3c.dom.NodeList)"/>
   <resource id="XSLTProcessorCreateXNodeSet2" title="createXNodeSet(Node n) method" location="apidocs/org/apache/xalan/xslt/XSLTProcessor.html#createXNodeSet(org.w3c.dom.Node)"/>
  -<resource id="XSLTProcessorCreateXNull" title="createXNull method" location="apidocs/org/apache/xalan/xslt/XSLTProcessor.html#createXNull()"/>
  -<resource id="XSLTProcessorApplettransformtoHTMLstringstringDoc" title="XSLTProcessorApplet transformHTML() method" location="apidocs/org/apache/xalan/xslt/client/XSLTProcessorApplet.html#transformToHtml(java.lang.String, java.lang.String)"/>
  +<resource id="XSLTProcessorCreateXNull" title="createXNull() method" location="apidocs/org/apache/xalan/xslt/XSLTProcessor.html#createXNull()"/>
  +<resource id="XSLTProcessorApplettransformtoHTMLstringstringDoc" title="XSLTProcessorApplet transformToHTML() method" location="apidocs/org/apache/xalan/xslt/client/XSLTProcessorApplet.html#transformToHtml(java.lang.String, java.lang.String)"/>
   <resource id="XSLTProcessorAppletsetDocumentURLDoc" title="XSLTProcessorApplet setDocumentURL() method" location="apidocs/org/apache/xalan/xslt/client/XSLTProcessorApplet.html#setDocumentURL(java.lang.String)"/>
   <resource id="XSLTProcessorAppletsetStyleURLDoc" title="XSLTProcessorApplet setStyleURL() method" location="apidocs/org/apache/xalan/xslt/client/XSLTProcessorApplet.html#setStyleURL(java.lang.String)"/>
   
  
  
  
  1.2       +35 -20    xml-site/sources/xalan/samples.xml
  
  Index: samples.xml
  ===================================================================
  RCS file: /home/cvs/xml-site/sources/xalan/samples.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- samples.xml	2000/02/17 16:48:45	1.1
  +++ samples.xml	2000/03/07 16:03:43	1.2
  @@ -12,9 +12,10 @@
   <li><link anchor="transformtodom">TransformToDom</link></li>
   <li><link anchor="usestylesheetparam">UseStylesheetParam</link></li>
   <li><link anchor="xpath">ApplyXPath</link></li>
  -<li><link anchor="pipe">Pipe (SAX)</link></li>
  +<li><link anchor="pipe">Pipe</link></li>
  +<li><link anchor="sax">PureSAX</link></li>
   <li><link anchor="extensions">Extensions</link></li>
  -<li><link anchor="applet">Applet</link></li>
  +<li><link anchor="appletxmltohtml">AppletXMLtoHTML</link></li>
   <li><link anchor="servlet">Servlet</link></li>
   </ul>       
   	  <s2 title="Samples to help you get started">
  @@ -50,7 +51,8 @@
       <p>What it does: The TransformToDom class uses the foo.xsl stylesheet to transform foo.xml, produces an output
        DOM, and traverses the DOM, printing the traversal to System.out. In contrast to SimpleTransform,
         TransformToDom illustrates the procedure for creating an output DOM that is available for further
  -      processing.</p>
  +      processing. The XSLTProcessor is set up to use XercesLiaison and the Xerces DOM parser rather than the default DTM liaison
  +      and parser.</p>
      <p>You can run it from the TransformToDom subdirectory with</p>
       <p><code>java TransformToDom</code></p>
       </s2><anchor name="usestylesheetparam"/>
  @@ -59,13 +61,16 @@
          and prints the output to System.out. The stylesheet parameter appears as a text node in the output.</p>
       <p>Run this sample from the UseStylesheetParam subdirectory with</p> 
       <p><code>java UseStylesheetParam <ref>param</ref></code></p>
  -    <p>where <ref>param</ref> is the stylesheet parameter.</p>  
  +    <p>where <ref>param</ref> is the stylesheet parameter (a string of your choice).</p>  
       </s2><anchor name="xpath"/>
       <s2 title="ApplyXPath">
  -    <p>What it does: The ApplyXPath class executes an XPath expression against an XML document and returns
  -     information about the route it takes and the nodes (if any) it finds.</p>
  +    <p>What it does: The ApplyXPath class uses the XPathAPi class to execute an XPath expression against an XML document 
  +    and returns the nodes (if any) it finds. XPathAPI contains some convenience methods for using XPath expressions to return
  +    single Nodes, NodeLists, and XObjects. In the future, we plan to incorporate user feedback and move these methods into the
  +    core API.</p>
        <note>You can use this sample as an aid when you want to find out what a given XPath expression returns from a
  -     given XML file. Keep in mind that the context node for the XPath expression is the document root.</note>
  +     given XML file. Keep in mind that the context node (base point of evaluation) for the XPath expression is the document
  +     root.</note>
       <p>Run this sample from the ApplyXPath subdirectory with</p> 
       <p><code>java ApplyXPath <ref>XMLFile XPathExpression</ref></code></p>
       <p>where <ref>XMLFile</ref> is an XML source file and <ref>XPathExpression</ref> is an XPath expression to
  @@ -74,6 +79,8 @@
       <p><code>java ApplyXPath foo.xml /</code></p>
       <p>and</p>
       <p><code>java ApplyXPath foo.xml /doc/name/@first</code></p>
  +    <p>If you are interested in the API for executing XPath expressions, we suggest you take a look at the methods in XPathAPI,
  +    and send us feedback on what best meets your needs.</p>
       </s2><anchor name="pipe"/>
       <s2 title="Pipe">
       <p>What it does: The Pipe class uses the output of the first transformation as input to a second
  @@ -83,16 +90,22 @@
          for the entire result tree to be constructed (as the DOM consumer must do).</p>
       <p>Run this sample from the Pipe subdirectory with</p> 
       <p><code>java Pipe</code></p>
  -    <p>For other examples using the SAX document handler, see <link idref="getstarted" anchor="sax">Generating and
  -     responding to SAX events</link>.</p>
  +    <p>For other examples using the SAX document handler, see the next section and <link idref="getstarted"
  +     anchor="sax">Generating and responding to SAX events</link>.</p>
  +    </s2><anchor name="sax"/>
  +    <s2 title="PureSAX">
  +    <p>What it does: The PureSAX class uses SAX DocumentHandlers and the Xerces SAX parser to produce a stylesheet tree, 
  +    an XML input tree, and the transformation result tree.</p>
  +    <p>Run this sample from the PureSax subdirectory with</p> 
  +    <p><code>java PureSAX</code></p>    
       </s2><anchor name="extensions"/>
       <s2 title="Extensions">
       <p>The extensions subdirectory contains four samples with &xslt4j; extensions. Two of the samples use
        extensions implemented in JavaScript, and two of the samples use extensions implemented in Java. All of
        the samples are documented in <link idref="extensions">Extensions</link>.</p>
        <p>To run these examples, you must place bsf.jar and bsfengines.jar (distributed with &xslt4j;), and js.jar
  -     (available from http://www.mozilla.org/rhino) on the class path. You do not need js.jar
  -     on the class path for the samples that use Java extensions. </p>
  +     (available from <jump href="http://www.mozilla.org/rhino">http://www.mozilla.org/rhino</jump>) on the class path. 
  +     You do not need js.jar  on the class path for the samples that use Java extensions. </p>
        <p>Use java.org.apache.xalan.xslt.Process, the &xslt4j; command-line utility, to run these samples from
         the <link idref="commandline">command line</link>. The command line must include an -in flag with the 
         XML source and an -xsl flag with the XSL stylesheet. If you want the output to be printed to a file, rather
  @@ -100,19 +113,19 @@
         <p>Run these samples from the extensions directory as follows (each of the following is a single command
          line):</p> 
   
  -      <p><code>java org.apache.xslt.xalan.Process -in 1basicJscript</code> 
  +      <p><code>java org.apache.xalan.xslt.Process -in 1basicJscript</code> 
           <br/>&nbsp;&nbsp;<code>-xsl 1basicJscript</code></p>
  -      <p><code>java org.apache.xslt.xalan.Process -in 2java-namespace.xml</code> 
  +      <p><code>java org.apache.xalan.xslt.Process -in 2java-namespace.xml</code> 
           <br/>&nbsp;&nbsp;<code>-xsl 2java-namespace.xsl</code></p>
  -      <p><code> java org.apache.xslt.xalan.Process -in 3numlistJava.xml</code> 
  +      <p><code> java org.apache.xalan.xslt.Process -in 3numlistJava.xml</code> 
           <br/>&nbsp;&nbsp;<code>-xsl 3numlistJava.xsl</code></p>
  -      <p><code> java org.apache.xslt.xalan.Process -in 4numlistJcript.xml </code>
  +      <p><code> java org.apache.xalan.xslt.Process -in 4numlistJcript.xml </code>
           <br/>&nbsp;&nbsp;<code>-xsl 4numlistJscript.xsl</code></p>
  -    </s2><anchor name="applet"/>
  +    </s2><anchor name="appletxmltohtml"/>
       <s2 title="AppletXMLtoHTML">
       <p>The applet uses a stylesheet to transform an XML document into HTML. It displays the XML document, the
        stylesheet, and the HTML output.</p>
  -    <p>How to run it: See <jump href="samples/applet/readme.html">sample applet readme</jump>.</p>
  +    <p>How to run it: See <jump href="..\samples/appletXMLtoHTML/readme.html">sample applet readme</jump>.</p>
       <p>For a brief introduction to using applets to perform transformations, see <link idref="getstarted"
       anchor="applet">Using the &xslt4j; applet wrapper</link></p>  
       </s2><anchor name="servlet"/>
  @@ -128,10 +141,12 @@
       </ol>
       <p>Examples:</p>
   <gloss>
  -<label>http://localhost/servlet/DefaultApplyXSL?URL=/data.xml&amp;xslURL=/style.xsl</label>
  -<item>...applies the style.xsl stylesheet to the data.xml data.  Both files are
  +<label>http://localhost/servlet/DefaultApplyXSL?URL=/data.xml&amp;xslURL=
  +/style.xsl</label>
  +<item>...applies the style.xsl stylesheet to the data.xml data. Both files are<br/>
   served from the Web server's HTTP XSLTInputSource root.<br/><br/></item>
  -<label>http://localhost/servlet/DefaultApplyXSL?URL=/data.xml&amp;xslURL=/style.xsl&amp;debug=true</label>
  +<label>http://localhost/servlet/DefaultApplyXSL?URL=/data.xml&amp;xslURL=
  +/style.xsl&amp;debug=true</label>
   <item>...ensures that XML and XSL processor messages are returned in the event of problems
   applying style.xsl to data.xml<br/><br/></item>
   <label>http://localhost/servlet/DefaultApplyXSL/data.xml?xslURL=/style.xsl</label>
  
  
  
  1.2       +32 -23    xml-site/sources/xalan/usagepatterns.xml
  
  Index: usagepatterns.xml
  ===================================================================
  RCS file: /home/cvs/xml-site/sources/xalan/usagepatterns.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- usagepatterns.xml	2000/02/17 16:48:45	1.1
  +++ usagepatterns.xml	2000/03/07 16:03:43	1.2
  @@ -76,21 +76,21 @@
   
     <s2 title="Introduction">  
   <p>&xslt4j; takes as primary input an XML source document and an XSL stylesheet, both represented by instances of the <resource-ref idref="XSLTInputSourceDoc"/>. You can use a URL or file, a character stream, a byte stream, a DOM tree, or a SAX input source to create an XSLTInputSource object. The stylesheet may also take the form of a compiled stylesheet (an instance of the <resource-ref idref="StylesheetRootDoc"/>. If the XML document contains a stylesheet Processing Instruction (PI), a separate stylesheet is not required.</p>
  -<p>&xslt4j; uses an implementation of the <resource-ref idref="XMLParserLiaisonDoc"/> to interact with an XML parser and sends the output to <resource-ref idref="XSLTResultTargetDoc"/>. Unless your ar processing a DOM, you probably want to use the default <link idref="dtm">Document Table Model (DTM)</link> liaison and XML parser. When you process DOM input, you can use the <resource-ref idref="XercesLiaisonDoc"/> along with the &xml4j; XML parser.</p>
  -<p>The XSLT and XPath engines are independent of any given DOM or XML implementation. All parser-dependent
  +<p>&xslt4j; uses an implementation of the <resource-ref idref="XMLParserLiaisonDoc"/> to interact with an XML parser and sends the output to <resource-ref idref="XSLTResultTargetDoc"/>. Unless your are reading or creating a DOM, you probably want to use the default <link idref="dtm">DTM (Document Table Model)</link> liaison and XML parser. When you read from a DOM or write to a DOM, use the <resource-ref idref="XercesLiaisonDoc"/> along with the &xml4j; XML parser.</p>
  +<p>The XSLT and XPath engines are independent of any given XML parser implementation. All parser-dependent
   calls are funneled through the XMLParserLiaison.</p>
   <p>For detailed API documentation (javadoc), see <resource-ref idref="APIDocumentation"/>. For an overview of the
   command-line utility, see <link idref="commandline">Command-Line Utility</link>.</p>     
   </s2>
   <anchor name="files"/>
  -<s2 title="Using XML source, XSL stylesheet, and output files">
  -<p>Use an XML file and an XSL file to instantiate XSLTInput objects, create a processor with the default DTM liaison, and send the transformation output to an output file. For example:</p>
  +<s2 title="Using a stylesheet file to transform an XML source file into an output file">
  +<p>Use an XML file and an XSL file to instantiate XSLTInput objects, create a processor, and write the transformation output to a file. For example:</p>
   <source>public static void Transform(String xmlSourceURL, String xslURL, String outputURL)
     throws java.io.IOException, 
            java.net.MalformedURLException, 
            org.xml.sax.SAXException
   {
  -  // Use XSLTProcessor to instantiate an XSLTProcessor.
  +  // Use XSLTProcessorFactory to instantiate an XSLTProcessor.
     org.apache.xalan.xslt.XSLTProcessor processor =
                    org.apache.xalan.xslt.XSLTProcessorFactory.getProcessor();
                    
  @@ -105,15 +105,15 @@
     // Perform the transformation.
     processor.process(xmlSource, xslSheet, xmlResult);
    }</source>
  -<p>For an online example, see <link idref="samples" anchor="simpletransform">SimpleTransform</link>.</p>
  -<p>You can perform this same operation from the <link idref="commandline">command line</link>. For example:</p>
  +<p>You can perform this same transformation from the <link idref="commandline">command line</link>. For example:</p>
   <p><code>java org.apache.xalan.xslt.Process -in foo.xml -xsl foo.xsl -out output.xml</code></p>
  +<p>For an online example, see <link idref="samples" anchor="simpletransform">SimpleTransform</link>.</p>
   </s2><anchor name="streams"/>
   <s2 title="Using data streams in place of files">
   <p>The context in which you perform a transformation may call for input in the form of a character stream, byte stream, or SAX input stream, and output in the form of a character stream, byte stream, or SAX document handler. Suppose, for example, you want to output a stream of bytes for further processing:</p>
   <source>import org.apache.xalan.xslt.*;
   ...
  -java.io.OutputStream byteStream = new java.io.OutputStream();
  +java.io.OutputStream byteStream = new java.io.ByteArrayOutputStream();
   XSLTRegultTarget out = new XSLTResultTarget(byteStream)
   // Do the transformation...
   // Work with the OutputStream...</source>
  @@ -121,7 +121,7 @@
   </s2><anchor name="params"/>
   <s2 title="Setting stylesheet parameters">
   <p>An XSL stylesheet can include parameters that get set at run time when a transformation takes place. When we generate the HTML documents that make up the Xalan doc set, for example, we send the stylesheet an id parameter along with each XML source document. The id identifies that document and enables the stylesheet to integrate it into the overall doc set.</p>
  -<p>To set a stylesheet parameter, use the XSLTProcessor setStylesheetParam(String paramName, String paramExpr) method. paramExpr is an XPath expression, so if the parameter is a String, enclose it in single quotes to make it a String expression.</p>
  +<p>To set a stylesheet parameter, use the XSLTProcessor setStylesheetParam(String key, String expression) method, where key is the parameter name and expression is an XPath expression. If the parameter is a String, enclose it in single quotes to make it a String expression.</p>
   <p>You can also use setStylesheetParam(String key, XObject value). This option is useful when you are working with the XPath API. For example, you could use the XObject returned by an Xpath function to set a parameter.</p>
   <p>From the <link idref="commandline">command line</link>, include a -param argument. For example:</p>
   <p><code>java org.apache.xalan.xsltProcess -in foo.xml -xsl foo.xsl -param 'boo'</code></p>
  @@ -132,23 +132,25 @@
   <source>import org.apache.xalan.xslt.*;
   ...
   XSLTProcessor processor = XSLTProcessorFactory.getProcessor();
  -StylesheetRoot style = processor.processStylesheet(new XSLTInputSource("foo.xsl"));
  +StylesheetRoot style = processor.processStylesheet
  +                                       (new XSLTInputSource("foo.xsl"));
   processor.setStylesheet(style); // Good form!
   ...
   processor.process(new XSLTInputSource("foo.xml"),
                     null, // Use the Stylesheet property setting.
                     new XSLTOutputTarget("foo.out"));</source>
  -<p>Alternative: For convenience, StylesheetRoot has its own process method, so another way to do the preceding is as follows:</p>
  +<p>Alternative: StylesheetRoot has its own process method, so another way to do the preceding is as follows:</p>
   <source>import org.apache.xalan.xslt.*;
   ..
   XSLTProcessor processor = XSLTProcessorFactory.getProcessor();
   StylesheetRoot style = processor.processStylesheet(new XSLTInputSource("foo.xsl"));
   ...
   style.process(new XSLTInputSource("foo.xml"), new XSLTOutputTarget("foo.out"));</source>
  +<p>You should use the StylesheetRoot process() method if you are using a StylesheetRoot object to transform multiple XML sources.</p>
   <p>If you want to use the XSLTProcessor as a SAX document handler, you must provide the processor a compiled stylesheet. See <link anchor="sax">Generating and Responding to SAX events</link>.</p>
   </s2><anchor name="dom-in"/>
   <s2 title="Processing DOM input">
  -<p>The XML source and XSL stylesheet for a transformation may appear in the form of a DOM Node. To perform transformations with DOM input, you cannot use the default high-performance DTM liaison and parser. <link idref="dtm">DTM (Document Table model)</link> uses a table of integers to represent a DOM, thus avoiding much of the overhead of creating and manipulating actual DOM nodes, which often involve a large number of Java objects. If you are processing DOM input, you must use a DOM parser, such as the Xerces DOM parser. When you create the XSLTProcessor for the transformation, you must specify that it is to use the Liaison for such a DOM parser.</p>
  +<p>The XML source and XSL stylesheet for a transformation may appear in the form of a DOM Node. To perform transformations with DOM input, you cannot use the default <link idref="dtm">DTM (Document Table Model)</link> liaison and parser. If you are processing DOM input, set up the XSLTProcessor to use XercesLiaison and the Xerces XML parser.</p>
   <p>The following code fragments illustrate the procedure for working with DOM input:</p>
   <source>import org.apache.xerces.parsers.DOMParser;
   import org.w3c.dom.Document;
  @@ -163,18 +165,19 @@
   
   // Set up the XSLTProcessor to use XercesLiaison.
   XSLTProcessor xsltProc = XSLTProcessorFactory.getProcessor
  -                 (new org.apache.xalan.xpath.xdom.XercesLiaison())
  +                 (new org.apache.xalan.xpath.xdom.XercesLiaison());
   // or you can use XSLTProcessorFactory.getProcessorUsingLiaisonName
  -//                ("org.apache.xalan.xpath.xdom.XercesLiaison")
  +//                ("org.apache.xalan.xpath.xdom.XercesLiaison");
   ...
   // Perform the transformation.</source>
   </s2><anchor name="dom-out"/>
   <s2 title="Producing DOM output">
  -<p>To produce a DOM Node as your transformation output, use a new Node to create the XSLTResultTarget for the transformation. Then when you perform the transformation, the result is output as a DOM Node. For example:</p>
  +<p>To produce a DOM Node as your transformation output, use a new Node to create the XSLTResultTarget for the transformation. Then when you perform the transformation, the result is output as a DOM Node. As with DOM input, you must set up the XSLTProcessor to use the Xerces liaison and XML parser. For example:</p>
   <source>import org.w3.dom.Document;
   import org.apache.xalan.xslt.*;
   ...
  -XSLTProcessor xsltProc = XSLTProcessorFactory.getProcessor();
  +XSLTProcessor xsltProc = XSLTProcessorFactory.getProcessor
  +                 (new org.apache.xalan.xpath.xdom.XercesLiaison());
   org.w3c.dom.Document out = new org.apache.xerces.dom.DocumentImpl();
   XSLTResultTarget resultTarget = new XSLTResultTarget(out);
   processor.process(new XSLTInputSource("foo.xml"),
  @@ -218,7 +221,7 @@
       processor.process(new XSLTInputSource("foo.xml"), null, saxResult);
   	}
   }</source>
  -<p>XSLTProcessor also has a DocumentHandler property (in fact, XSLTProcessor extends DocumentHandler). By setting this property, you instruct the processor to process a sequence of SAX events. The processor needs a compiled stylesheet to perform this transformation.</p>
  +<p>XSLTProcessor also has a DocumentHandler property. By setting this property, you instruct the processor to process a sequence of SAX events. The processor needs a compiled stylesheet to perform this transformation.</p>
   <p>The following example uses the output of one transformation as the input for a second transformation. It does this by using two SAX DocumentHandlers to pipe SAX events from the first transformation to the second.</p>
   <source>import org.apache.xalan.xslt.*;
   
  @@ -258,10 +261,14 @@
                          intermedResult);
   	}
   }</source>
  -<p>For a more compact (and elegant) form of this example, see the <link idref="samples" anchor="pipe">Pipe</link>.</p>
  +<p>For a more compact (and elegant) form of this example, see the <link idref="samples" anchor="pipe">Pipe</link>. For an example that uses SAX DocumentHandlers and the Xerces SAX parser to parse the XML input and XSL stylesheet and produce the transformation result, see the <link idref="samples" anchor="sax">PureSAX</link>.</p>
   </s2><anchor name="xpath"/>
   <s2 title="Working with XPath expressions">
  -<p>XSL stylesheets use XPath expressions to select nodes, specify conditions, and generate text for the result tree. XPath provides an API that you can call directly. For example, you may want to select nodes programatically and do your own processing without a stylesheet. For an example that executes individual XPath expressions against XML source files, see <link idref="samples" anchor="xpath">ApplyXPath</link>.</p>
  +<p>XSL stylesheets use XPath expressions to select nodes, specify conditions, and generate text for the result tree. XPath provides an API that you can call directly. For example, you may want to select nodes programatically and do your own processing without a stylesheet.</p>
  +<p>The XPathAPI class, in the samples/ApplyXPath subdirectory, contains several convenience methods that you can use to return single DOM Nodes, NodeLists, and XObjects. In the future, we plan to incorporate user feedback and move these methods into the core API.</p>
  +<p>If you are interested in the API for executing XPath expressions, we suggest you take a look at the methods in XPathAPI,
  +and send us feedback on what best meets your needs.</p>
  +<p>For an example that uses the XPathAPI convenience methods to execute XPath expressions against XML source files, see <link idref="samples" anchor="xpath">ApplyXPath</link>.</p>
   </s2><anchor name="applet"/>
   <s2 title="Using the &xslt4j; applet wrapper">
   <ol> 
  @@ -269,7 +276,7 @@
   <li>Specify the XML source document and XSL stylesheet.<br/><br/>
   You can use the DocumentURL and StyleURL PARAM tags or the <resource-ref idref="XSLTProcessorAppletsetDocumentURLDoc"/> and <resource-ref idref="XSLTProcessorAppletsetStyleURLDoc"/>. If the XML document contains a stylesheet Processing Instruction (PI), you do not need to specify an XSL stylesheet.<br/><br/></li>
   <li>Call the <resource-ref idref="XSLTProcessorApplettransformtoHTMLstringstringDoc"/> which performs the transformation and returns the new document as a String.</li></ol>
  -<p>For an example, see the <jump href="samples/applet/readme.html">sample applet readme</jump>.</p>
  +<p>For an example, see the <jump href="../samples/appletXMLtoHTML/readme.html">sample applet readme</jump>.</p>
   </s2><anchor name="servlet"/>
   <s2 title="Using &xslt4j; in a servlet">
   <p>You can set up a servlet to use &xslt4j; to respond to requests for XML documents by transforming those documents into HTML and serving them to clients. For a sample of how this might be done, see <link idref="samples" anchor="servlet">sample servlet</link>.</p>
  @@ -285,16 +292,18 @@
   		  can implement. The interface can be set on the 
   		  <resource-ref idref="XSLTProcessorDoc"/> by calling the addTraceListener function.<br/><br/></li>
   		  <li>The <resource-ref idref="PrintTraceListenerDoc"/> is an implementation of 
  -		  the TraceListener interface that is used by the <link idref="commandline">command-line utility</link>
  -      for the -TT, TG, and -TTC. You can examine the utility code (org.apache.xalan.xslt.Process.java)
  -      for examples of how you might use the trace functionality.<br/><br/></li>
  +		  the TraceListener interface. It is used by the <link idref="commandline">command-line utility</link><br/><br/></li>
   		  <li>The <resource-ref idref="TracerEventDoc"/> is an event that is 
   		  passed to the TraceListener.trace function. It is called before a node is 'executed' 
   		  in the stylesheet.<br/><br/></li>
   		  <li>The <resource-ref idref="GenerateEventDoc"/> is an event that is 
   		  passed to the TraceListener.generated() function. It is called after an event 
   		  occurs to create something in the result tree.<br/><br/></li>
  +      <li>The <resource-ref idref="SelectionEventDoc"/> is an event triggered by the selection of a give
  +      style tree node.</li>
   		</ul>
  +    <p>The <link idref="commandline">command-line utility</link> uses the debugger interface when you include one or more of the
  +     following switches: -TT, -TG, -TS, -TTC.</p>
       <p>Example:</p>
       <source>
   import org.apache.xalan.xslt.XSLTProcessor;
  
  
  
  1.1                  xml-site/sources/xalan/faq.xml
  
  Index: faq.xml
  ===================================================================
  <?xml version="1.0" standalone="no"?>
  <!DOCTYPE faqs SYSTEM "sbk:/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 general questions not specific to &xslt4j;, see Dave Pawson's <jump
      href="http://freespace.virgin.net/b.pawson/xsl/index.html#top">XSL Frequently Asked Questions</jump>.</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>The &xslt4j; release notes includes information about the Xerces release with which the &xslt4j; release has 
      been coordinated and tested. See <link idref="readme" anchor="status">Status</link></p></a>
    </faq>
  
    <faq title="Are there any shortcuts for using a transformation result as input for another transformation?">
    
      <q>Are there any shortcuts for using a transformation result as input for another transformation?</q>
      
      <a><p>You can always get a transformation result from the <resource-ref idref="XSLTOutputTargetDoc"/> object, 
      and use it to set an <resource-ref idref="XSLTInputSourceDoc"/> object for another transformation, but yes, there is a
      shortcut. Basically, you want to set up the XSLTResultTarget object
       that receives the output from the first transformation (performed with the XML source, the first stylesheet, and the first
       <resource-ref idref="XSLTProcessorDoc"/> object) to function as a SAX DocumentHandler in conjunction with a second
        XSLTProcessor object that uses the second stylesheet and also functions as a DocumentHandler.</p> 
      <p>To walk through a brief example, see <link idref="usagepatterns" anchor="sax">Generating and responding to 
      SAX events</link></p>.</a>
    </faq>
  
    <faq title="Why do XSLTProcessor and StylesheetRoot both have process() methods to perform transformations?">
    
      <q>Why do XSLTProcessor and StylesheetRoot both have process() methods to perform transformations?</q>
      
      <a><p>To perform a transformation, &xslt4j; uses XML input, an XSL stylesheet, and XSLTProcessor. In one scenario, you use
      <resource-ref idref="XSLTInputSourceDoc"/> objects as containers for the XML input and the XSL stylesheet. To perform the
      transformation, the <resource-ref idref="XSLTProcessorDoc"/> object "compiles" the stylesheet, producing a <resource-ref
      idref="StylesheetRootDoc"/> object, but you the user have no direct interaction with the StylesheetRoot.</p>
      <p>Example:</p>
      <source>import org.apache.xalan.xslt.*;
      ...
      XSLTProcessor proc = XSLTProcessorFactory.getProcessor();
      proc.process(new XSLTInputSource("foo.xml"), 
                   new XSLTInputSource("foo.xsl"), 
                   new XSLTOutputTarget("foo.out");</source>
      <p>Second scenario: you want to perform a number of transformations with the same stylesheet. To improve performance, you
      compile the stylesheet once, and use the resulting <resource-ref idref="StylesheetRootDoc"/> object for each
      transformation.</p>
      <p>You can use the <jump href="apidocs/org/apache/xalan/xslt/XSLTProcessor.html#process(org.apache.xalan.xslt.XSLTInputSource, org.apache.xalan.xslt.XSLTInputSource, org.apache.xalan.xslt.XSLTResultTarget)">
       XSLTProcessor process()</jump> method with a compiled stylesheet. For an example, see <link idref="usagepatterns"
      anchor="compiled">Compiling stylesheets</link>. But an XSLTProcessor object is not thread-safe and must be
      reset between transformations. A StylesheetRoot object, on the other hand, is thread-safe and may even be used concurrently
      (running in a servlet, for example) to perform multiple transformations, so it is more straightforward to use the
      <jump href="apidocs/org/apache/xalan/xslt/StylesheetRoot.html#process(org.apache.xalan.xslt.XSLTInputSource, org.apache.xalan.xslt.XSLTResultTarget)">
      StylesheetRoot process()</jump> method to perform the transformations.</p>
        <p>Example:</p>
        <source>import org.apache.xalan.xslt.*;
        ...
        // Pass in an array of XML input file names and an 
        // "uncompiled" stylesheet file name.
        public multiTransform(String[] xmlInputFiles, String xslFile)
        {
          XSLTProcessor proc = XSLTProcessor.Factory.getProcessor();
          StylesheetRoot style = proc.ProcessStylesheet
                                            (new XSLTInputSource(xslFile));
          for (int i = 0; i &lt; xmlInputFiles.length; i++) 
          {
            style.process(new XSLTInputSource(xmlInputFiles[i],
                          new XSLTResultTarget(xmlInputFiles[i] + ".out"));
          }
        }
        ...</source>
         </a>
    </faq>
  
    <faq title="What can I do to speed up transformations?">
    
      <q>What can I do to speed up transformations?</q>
      
      <a><p>To be written.</p><ul>
      <li>Use the DTM liaison and XML parser.</li>
      <li>Use compiled stylesheets.</li>
      <li>Set the XSLTProcessor to function as a SAX DocumnetHandler, and respond to SAX events rather than waiting for
       the entire transformation to be completed.</li>
       <li>Set up your stylesheets to function efficiently.</li>
      </ul></a>
    </faq>
  
    <faq title="I'm getting a NoClassDefFound error. What has to be on the class path?">
    
      <q>I'm getting a NoClassDefFound error. What has to be on the class path?</q>
      
      <a><ol>
      <li>xalan.jar xerces.jar must always be on the class path.<br/><br/></li>
      <li>As a general rule, xerces.jar must be on the class path. If you have set up an extension of <resource-ref 
      idref=" XMLParserLiaisonDefaultDoc"/> to work with another XML parser, all you need from xerces.jar are the serializers 
      and the implementation of the SAX 2 interface.<br/><br/></li>
      <li>To run the samples in the samples subdirectories, xalansamples.jar must be on the class path. To run the servlet (in
      samples/servlet), the javax.servlet and javax.servlet.http packages must also be on the class path. Sun distributes these
      packages in the JSWDK 1.0.1 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 
      class path. To run extensions implemented in JavaScript, js.jar must also be on the class path. 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>            
      </ol>
      <p>For more information, see <link idref="getstarted" anchor="classpath">Setting up the system class path</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> 
  </faqs>