net.sf.saxon.pull.package-info Maven / Gradle / Ivy
Show all versions of Saxon-HE Show documentation
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2018-2022 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 classes that interface Saxon to an XML parser that supplies data in the form
* of a stream of events. It provides an interface, PullProvider
, that is an abstraction
* over the pull parser interfaces provided on Java and .NET, and that can in principle be implemented
* by other data sources to deliver input documents as if they came from a parser.
* The API, defined in class PullProvider
, is loosely modelled on the StAX XMLReader
* API. It is not identical, because it is designed as an intimate and efficient interface that integrates with
* Saxon concepts such as the SequenceIterator
and the NamePool
. A class
* StaxBridge
is available that provides the PullProvider
interface on top of a
* StAX pull parser. In the .NET build, a similar class DotNetPullProvider
interfaces Saxon to the
* Microsoft XmlTextReader
.
* A source of data delivered by a PullProvider
may be presented either as a PullSource
* or as a StaxSource
. Both these are accepted by any Saxon interface that allows a JAXP
* Source
object to be supplied.
* Additional implementations of PullProvider
are available in Saxon-PE
and
* Saxon-EE
, specifically, implementations that deliver data by walking a Saxon tree structure
* (represented by class NodeInfo
), and implementations that allow queries to be evaluated
* in pull mode, with lazy construction of temporary document and element nodes.
* Some examples of application code using the pull interface with Saxon are provided in the
* PullExamples.java
file in the samples directory.
*/
package net.sf.saxon.pull;