Qizx/open API

net.axyana.qizxopen.dm
Interface XMLEventHandler

All Known Implementing Classes:
TreeEncoder, XMLEventHandlerBase

public interface XMLEventHandler

An abstract "XML Event" handler.

Conceptually similar to SAX, but better adapted to the XQuery Data Model.

An Event is in short: Document start/end, Element start/end, Attribute node, Namespace node, Text node, PI node, Comment node, other atomic node.

Used for serialization or any kind of tree construction or transformation, in particular "push" style evaluation of XQuery constructors.

All event methods begin with "ev" to avoid clashes with SAX.


Method Summary
 void abort()
          Signals an error in the event flow.
 void definePrefixHints(NSPrefixMapping prefixes)
          Optional: defines a preferred prefix/namespace mapping for serialization.
 void evAtom(java.lang.Object value)
          A special atom with any value (serializable).
 void evAtomText(java.lang.String value)
          Text of an atom.
 void evAttribute(QName name, java.lang.String value)
          Adds an attribute on the current element.
 void evComment(java.lang.String value)
          A comment node.
 void evDocumentEnd()
          Ends a document.
 boolean evDocumentStart()
          Starts a document.
 void evDTD(java.lang.String name, java.lang.String publicID, java.lang.String systemID)
          DTD definition.
 void evElementEnd(QName name)
          Ends an element.
 void evElementStart(QName name)
          Starts an element.
 void evNamespace(java.lang.String prefix, java.lang.String uri)
          Adds a namespace node on the current element.
 void evPI(java.lang.String target, java.lang.String value)
          A processing-instruction node.
 void evText(java.lang.String value)
          Text chunk inside an element.
 void noSpace()
          Indicates when evAtomText() must not insert space.
 void reset()
          Resets the state prior to use startDocument() or startElement().
 java.lang.String resolvePrefix(java.lang.String prefix)
          Resolves a prefix to an URI in the context of the current node.
 void terminate()
          Terminates a document or simple subtree.
 void traverse(int flags, FONIDocument document, int nodeId)
          Convenience method: traverses and generates a FONI document using this receiver.
 void traverse(int flags, Node node)
          Convenience method: traverses and generates a subtree into this receiver.
 

Method Detail

reset

public void reset()
Resets the state prior to use startDocument() or startElement().

The general contract is to put the handler in a clean state before event generation, for example clearing the previously built tree in a DOMBuilder.


terminate

public void terminate()
               throws DataModelException
Terminates a document or simple subtree. May perform consistency checks.

Throws:
DataModelException

abort

public void abort()
           throws DataModelException
Signals an error in the event flow.

Throws:
DataModelException

evDocumentStart

public boolean evDocumentStart()
                        throws DataModelException
Starts a document.

Not called when only a fragment is generated.

Returns:
true if not inside another node (in which case it should be discarded)
Throws:
DataModelException

evDTD

public void evDTD(java.lang.String name,
                  java.lang.String publicID,
                  java.lang.String systemID)
           throws DataModelException
DTD definition.

Throws:
DataModelException

evDocumentEnd

public void evDocumentEnd()
                   throws DataModelException
Ends a document. Must be balanced by a matching startDocument().

Throws:
DataModelException

evElementStart

public void evElementStart(QName name)
                    throws DataModelException
Starts an element. Must be balanced by a matching endElement().

Throws:
DataModelException

evNamespace

public void evNamespace(java.lang.String prefix,
                        java.lang.String uri)
                 throws DataModelException
Adds a namespace node on the current element. Must follow startElement and precede any child. May be interleaved with attribute().

Throws:
DataModelException

evAttribute

public void evAttribute(QName name,
                        java.lang.String value)
                 throws DataModelException
Adds an attribute on the current element. Must follow startElement and precede any child. May be interleaved with namespace(). Supposed to throw an exception if attribute is duplicated.

Throws:
DataModelException

evElementEnd

public void evElementEnd(QName name)
                  throws DataModelException
Ends an element. Discards prefix/namespace mappings possibly defined by the element.

Throws:
DataModelException

evText

public void evText(java.lang.String value)
            throws DataModelException
Text chunk inside an element. No space is generated before or after.

Throws:
DataModelException

evAtomText

public void evAtomText(java.lang.String value)
                throws DataModelException
Text of an atom. The difference with text() is that a space in requested between two atoms. Hence the argument 'first'.

Throws:
DataModelException

noSpace

public void noSpace()
Indicates when evAtomText() must not insert space.


evPI

public void evPI(java.lang.String target,
                 java.lang.String value)
          throws DataModelException
A processing-instruction node.

Throws:
DataModelException

evComment

public void evComment(java.lang.String value)
               throws DataModelException
A comment node.

Throws:
DataModelException

evAtom

public void evAtom(java.lang.Object value)
            throws DataModelException
A special atom with any value (serializable).

Throws:
DataModelException

traverse

public void traverse(int flags,
                     Node node)
              throws DataModelException
Convenience method: traverses and generates a subtree into this receiver.

Parameters:
flags - a combination of flags of StaticContext if true, copy all in-scope namespace nodes (not only those defined on the node itself). A false value is generally used.
Throws:
DataModelException

traverse

public void traverse(int flags,
                     FONIDocument document,
                     int nodeId)
              throws DataModelException
Convenience method: traverses and generates a FONI document using this receiver.

Throws:
DataModelException

resolvePrefix

public java.lang.String resolvePrefix(java.lang.String prefix)
Resolves a prefix to an URI in the context of the current node.

Returns:
null if the prefix cannot be resolved.

definePrefixHints

public void definePrefixHints(NSPrefixMapping prefixes)
Optional: defines a preferred prefix/namespace mapping for serialization. This table is used when no mapping is in scope in the current context.


© 2005 Axyana Software