All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.sf.saxon.s9api.package-info Maven / Gradle / Ivy

There is a newer version: 12.5
Show newest version
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2018-2023 Saxonica Limited
// This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
// If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
// This Source Code Form is "Incompatible With Secondary Licenses", as defined by the Mozilla Public License, v. 2.0.
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

/**
 * 

This package provides Saxon's preferred Java API for XSLT, XQuery, XPath, and XML Schema processing. * The interface is designed to hide as much as possible of the detail of the * implementation. However, the API architecture faithfully reflects the internal architecture * of the Saxon product, unlike standard APIs such as JAXP and XQJ which in many cases force * compromises in the design and performance of the application.

*

An application starts by loading a {@link net.sf.saxon.s9api.Processor}, which allows configuration options * to be set. As far as possible, an application should instantiate a single Processor.

*

The interfaces for XSLT, XQuery, and XPath processing all follow the same pattern. There is a three-stage * execution model: first a compiler is created using a factory method in the Processor object. * The compiler holds compile-time options and the static context information. Then the compiler's * compile() method is called to create an executable, a representation of the compiled stylesheet, * query, or expression. This is thread-safe and immutable once created. To run the query or transformation, * first call the load() method to create a run-time object called variously an {@link * net.sf.saxon.s9api.XsltTransformer}, * {@link net.sf.saxon.s9api.XQueryEvaluator}, or {@link net.sf.saxon.s9api.XPathSelector}. This holds run-time context * information * such as parameter settings and the initial context node; the object is therefore not shareable and should * only be run in a single thread; indeed it should normally only be used once. This object also provides * methods allowing the transformation or query to be executed.

*

In Saxon-EE the Processor owns a {@link net.sf.saxon.s9api.SchemaManager} that holds * the cache of schema components and can be used to load new schema components from source schema documents. * It can also be used to create a {@link net.sf.saxon.s9api.SchemaValidator}, which in turn is used to validate * instance * documents.

*

Source documents can be constructed using a {@link net.sf.saxon.s9api.DocumentBuilder}, which holds all the options * and parameters to control document building.

*

The output of a transformation, or of any other process that generates an XML tree, can be sent to a * {@link net.sf.saxon.s9api.Destination}. There are a number of implementations of this interface, including a * {@link net.sf.saxon.s9api.Serializer} which translates the XML document tree into lexical XML form.

*

There are classes to represent the objects of the XDM data model, including {@link net.sf.saxon.s9api.XdmValue}, * {@link net.sf.saxon.s9api.XdmItem}, {@link net.sf.saxon.s9api.XdmNode}, and {@link * net.sf.saxon.s9api.XdmAtomicValue}. These can be manipulated using methods based on the Java 8 streams * processing model: for details see package {@link net.sf.saxon.s9api.streams}.

*
*/ package net.sf.saxon.s9api;




© 2015 - 2024 Weber Informatics LLC | Privacy Policy