blob: dc783dd59dd83a2f3599a86f364df053528cefcd [file] [log] [blame]
<?xml version="1.0" standalone="no"?>
<!DOCTYPE s1 SYSTEM "../../style/dtd/document.dtd">
<!--
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
-->
<s1 title="Supported Interfaces in &xslt4j;">
<ul>
<li><link anchor="public">Public interfaces</link></li>
<li><link anchor="experimental">Experimental interfaces</link></li>
<li><link anchor="internal">Internal interfaces</link></li>
</ul><anchor name="public"/>
<s2 title="Public interfaces">
<p>A public interface of &xslt4j2; is an API that a typical client developer
should code against. Such interfaces are usually based upon
World-Wide Web Consortium (W3C) recommendations, such as XSLT 1.0 and
XPath 1.0, or Java Specification Requests (JSR's) with a status of
"Final Release", such as JAXP.</p>
<p>The &xslt4j2; team will support use of public interfaces, and will
attempt to fix severe bugs in such interfaces.</p>
<p>A particular version of a public interface will be supported for all
the maintenance drops of a particular version and release of &xslt4j2;
(that is, for a release that changes just the third digit of the
version number). At the point a new version of &xslt4j2; is made
available, (that is, a release that changes the first or second digit
of the version number) such interfaces could change to reflect the
latest standard specifications.</p>
<p>The public interfaces of &xslt4j2; are:</p>
<ul>
<li><jump href="http://java.sun.com/xml/jaxp/">JAXP 1.3</jump>
interfaces found in the
<jump href="apidocs/javax/xml/parsers/package-summary.html">
<code>javax.xml.parsers</code></jump>,
<jump href="apidocs/javax/xml/transform/package-summary.html">
<code>javax.xml.transform</code></jump>,
<jump href="apidocs/org/xml/sax/package-summary.html">
<code>org.xml.sax</code></jump>,
<jump href="apidocs/org/w3c/dom/package-summary.html">
<code>org.w3c.dom</code></jump> and
<jump href="apidocs/javax/xml/xpath/package-summary.html">
<code>javax.xml.xpath</code></jump> packages. </li>
<li>The &xslt4j2; specific XPath API, defined by the classes
<ul>
<li><jump href="apidocs/org/apache/xpath/XPathAPI.html">
<code>org.apache.xpath.XPathAPI</code></jump></li>
<li><jump href="apidocs/org/apache/xpath/CachedXPathAPI.html">
<code>org.apache.xpath.CachedXPathAPI</code></jump></li>
</ul>
</li>
<li>API's for using, configuring or defining a serializer, from the
<code>org.apache.xml.serializer</code> package:
<ul>
<li><jump href="apidocs/org/apache/xml/serializer/OutputPropertiesFactory.html">
<code>OutputPropertiesFactory</code></jump></li>
<li><jump href="apidocs/org/apache/xml/serializer/SerializerFactory.html">
<code>SerializerFactory</code></jump></li>
<li><jump href="apidocs/org/apache/xml/serializer/Serializer.html">
<code>Serializer</code></jump></li>
</ul>
</li>
<li>Properties files for configuring a serializer. (See
<link idref="usagepatterns" anchor="outputprops">Setting output
properties in your stylesheets</link> for more information.)
<ul>
<li><code>org/apache/xml/serializer/output_xml.properties</code></li>
<li><code>org/apache/xml/serializer/output_html.properties</code></li>
<li><code>org/apache/xml/serializer/output_text.properties</code></li>
</ul>
</li>
<li>Command-line interfaces for performing transformations:
<ul>
<li><link idref="commandline">&xslt4j; Command-line utility</link></li>
<li><link idref="xsltc_usage" anchor="compile">Compiling translets
from the command line</link></li>
<li><link idref="xsltc_usage" anchor="run">Running translets
from the command line</link></li>
</ul>
</li>
</ul>
</s2><anchor name="experimental"/>
<s2 title="Experimental interfaces">
<p>Interfaces and classes that are designated experimental reflect recent
World-Wide Web Consortium (W3C) draft recommendations or draft
Java Specification Requests (JSR's). Such an API is based upon
a specification that is subject to change, and so is itself subject
to change as the relevant standards body makes changes to the
specification.</p>
<p>If and when the specification upon which the API is based reaches its
final published form, the API could become a Public interface in
a subsequent release of &xslt4j2;, although the &xslt4j2; team could
decide to simply withdraw the API, if it decided that making the API
a public interface would not be appropriate.</p>
<p>As the name suggests, experimental interfaces are provided in order to
give users the opportunity to experiment with new features so that they
can provide feed-back on those features. They should not be used in
production-level code. The &xslt4j2; team may fix severe bugs in
experimental interfaces.</p>
<p>The experimental interfaces of &xslt4j2; are:</p>
<ul>
<li>The
<jump href="http://www.w3.org/TR/2004/NOTE-DOM-Level-3-XPath-20040226">
DOM Level 3 XPath API</jump> found in the
<jump href="apidocs/org/apache/xpath/domapi/package-summary.html">
<code>org.apache.xpath.domapi</code></jump> package.</li>
</ul>
</s2><anchor name="internal"/>
<s2 title="Internal interfaces">
<p>All other classes are considered to be part of the internal interface of
&xslt4j2;. Some such classes or members of such classes may themselves
be designated as <code>public</code> using the Java keyword, but that is
a consequence of the internal organization of &xslt4j2;.</p>
<p>Users who have complex and specific needs, such as the need to build
their own XSLT or XPath processors, might use these internal interfaces,
but their use is not supported. In addition these interfaces are subject
to change without notice.</p>
</s2>
</s1>