Package com.softwareag.tamino.db.api.accessor

Provides classes and interfaces to access and query documents stored in Tamino.

See:
          Description

Interface Summary
TAccessor TAccessor is the super interface of specialized accessor interfaces, like TXMLObjectAccessor and TNonXMLObjectAccessor.
TAdministrationAccessor TAdministrationAccessor is the interface for the execution of Tamino administration functions.
TGenericAccessor TGenericAccessor provides generic access operations that can be used to execute an arbitrary but valid command statement on Tamino and obtain the result as a TResponse instance.
TInvalidatableAccessor TInvalidatableAccessor is the interface that should be implemented by all accessor classes that need to be invalidatable.
TNonXMLObjectAccessor TNonXMLAccessor is the interface for the access of non-XML data stored in a Tamino database.
TSchemaDefinition2Accessor TSchemaDefinition2Accessor is the interface for the access of TSD2 schema information.
TSchemaDefinition3Accessor TSchemaDefinition3Accessor is the interface for the access of TSD3 schema information.
TStreamAccessor The TStreamAccessor is the lowest level of access to data (XML or non-XML) stored in a Tamino database.
TSystemAccessor TSystemAccessor is the interface for the access of Tamino and Tamino API system information.
TXMLObjectAccessor TXMLObjectAccessor is the interface for the access of native XML data stored in a Tamino database.
TXQDynamicContext  
 

Class Summary
TAbstractAccessor This class provides a skeletal implementation of the TAccessor interface to minimize the effort required to implement a concrete accessor class.
TAbstractSchemaDefinitionAccessor This class provides a skeletal implementation for the schema specific accessor classes to minimize the effort required to implement a concrete schema accessor class.
TAccessFailureVerifier  
TAccessLocation TAccessorLocation serves as a property class for a TAccessor instance providing access location information.
TAccessorFactory TAccessorFactory provides all factory methods to instantiate the various concrete accessor classes.
TAccessorMessages This class defines constants for the keys of the messages defined in com.softwareag.tamino.db.api.accessor.TAccessorMessages.xml.
TAdministrationAccessorImpl TAdministrationAccessorImpl is the implementation class for TAdministrationAccessor.
TDefineMode Class representing information to control a schema defintion.
TGenericAccessorImpl TGenericAccessor provides generic access operations that can be used to execute an arbitrary but valid command statement on Tamino and obtain the result as a TResponseHandle instance.
TMediaType TMediaType represents the media-type parameter for a serialization specification.
TNonXMLObjectAccessorImpl TNonXMLObjectAccessor is the implementation class for TNonXMLObjectAccessor.
TOutputMethod TOutputMethod represents the method parameter for the serialization specification.
TPreparedXQuery TPreparedXQuery represents a Tamino xquery expression.
TQuery TQuery represents a Tamino query expression.
TQueryBuilder TQueryBuilder is a helper class that can be used for building TQuery instances for often used query expressions.
TQueryBuilder.TExplainLevel Enum class for the explanation level constants used with the TQueryBuilder.explain() method.
TQuerySearchMode Class representing the _querysearchmode parameter for a xquery/x-query operation.
TSchemaDefinition2AccessorImpl TSchemaDefinition2AccessorImpl implements TSchemaDefinition2Accessor and realizes the concrete meta data access to Tamino.
TSchemaDefinition3AccessorImpl TSchemaDefinition3AccessorImpl is the implementation class for TSchemaDefinition3Accessor.
TScroll TScroll represents the scroll parameter for a cursor operation.
TSensitive Class representing the sensitive parameter for a xquery operation.
TStreamAccessorImpl TStreamAccessorImpl is the implementation class for TStreamAccessor.
TSystemAccessorImpl TSystemAccessorImpl is the implementation class for TSystemAccessor.
TUndefineItem TUndefineItem represents the item to be undefined.
TXMLObjectAccessorImpl TXMLObjectAccessorImpl is the implementation class for TXMLObjectAccessor.
TXQTypes List of supported XML data types.
TXQuery TXQuery represents a Tamino xquery expression.
TXQueryBuilder TXQueryBuilder is a helper class that can be used for building TXQuery instances for often used xquery expressions.
 

Exception Summary
TAccessorException TAccessorException is the general purponse exception class for the accessor interfaces.
TAdminException TAdminException represents an exception that can occur during the processing of an administrative command.
TCursorException TCursorException is used for all tamino cursor based failures.
TDefineException TDefineException is needed to to express exceptions that can occur during the definition of schema related data on Tamino.
TDeleteException TDeleteException represents an exception that can occur during the processing of a delete for documents stored on Tamino.
TInsertException TInsertException represents an exception that can occur during the processing of an insert operation.
TQueryException TQueryException represents an exception that can occur during the processing of a query operation.
TRetrieveException TRetrieveException represents an exception that can occur during the processing of a retrieval for a specific document stored on Tamino.
TUndefineException TUndefineException is needed to to express exceptions that can occur during the undefining of schema related data on Tamino.
TUpdateException TUpdateException represents an exception that can occur during the processing of an update operation.
TXQTypeException TXQTypeException represents an exception that can occur during external variable binding to XQuery.
TXQueryException TXQueryException represents an exception that can occur during the processing of a xquery operation.
 

Package com.softwareag.tamino.db.api.accessor Description

Provides classes and interfaces to access and query documents stored in Tamino.

An accessor provides access to data stored in a Tamino database or data related to Tamino database. There are several different types of accessors. First of all there is an accessor for the lowest level of access to any XML or non-XML document stored in Tamino. This is the TStreamAccessor. This accessor treats all documents as byte or character streams. It provides direct access to the response documents as they are returned by Tamino without interpreting the results. You also need to provide input documents as streams. You normally don't need to use the TStreamAccessor unless

Secondly, there are accessors that provide access on a higher level of abstraction. These are the TXMLObjectAccessor and TXMLNonObjectAccessor. The TXMLObjectAccessor is used for accessing XML documents and the TNonXMLObjectAccessor for non-XML documents. Both accessors treat documents as objects. The TXMLObjectAccessor handles TXMLObject instances and the TNonXMLObjectAccessor TNonXMLObject instances. A TXMLObjectAccessor is always based on a particular object model. The object model determines the way in which the XML document content is represented. The object model currently supported are DOM, JDOM, SAX and stream. These higher level accessors always interpret the response document returned by Tamino and present the results in TReponse instances.

Thirdly, there are a number of special purpose accessors for access to meta and system information. You can use TSchemaDefinition2Accessor and TSchemaDefinition3Accessor for accessing and manipulating TSD2 respectively TSD3 schema information. The TSystemAccessor provides access to Tamino server and Taminp API information.

The following code snippet shows how a client might work with a TXMLObjectAccessor:

    
    TAccessLocation accessLocation = TAccessLocation.newInstance( "ino:etc" );
    TXMLObjectAccessor xmlObjectAccessor = connection.newXMLObjectAccessor( accessLocation , TDOMObjectModel.getInstance() );
    // Assume there are Patient documents within ino:etc
    TResponse response = xmlObjectAccessor.query( TXQuery.newInstance( "Patient" );
    if ( response.hasQueryContent() ) {
        TXMLObjectIterator iterator = response.getXMLObjectIterator();
        while ( iterator.hasNext() ) {
                // Iterate over the result set
                TXMLObject xmlObject = iterator.next();
                StringWriter writer = new StringWriter();
                xmlObject.writeTo( writer );
                System.out.println( writer );
        }
    }
    
  

Encoding information of XML documents

Note that at the moment, the encoding information stored in the database gets lost. For TXMLObjectAccessor this is because the underlying SAX parsers ingnore the encoding info respectively for the TStreamAccessor implementation no encoding info is recognized.

Setting a specific SAXParser

To set your specific SAXParser which should be used by JAXP you have 3 possibilities (for example with the XERCES Parser):

  1. set a property like so:
    System.setProperty("javax.xml.parsers.SAXParserFactory","org.apache.xerces.jaxp.SAXParserFactoryImpl");
  2. use the java option -D:
    java -D javax.xml.parsers.SAXParserFactory=org.apache.xerces.jaxp.SAXParserFactoryImpl
  3. The first JAR File in the CLASSPATH which include the META-INF\services\javax.xml.parsers.SAXParserFactory File will be used to get the information about the SAXParser.
Handling of General Entities

The previous version of the API tried to set the Apache/Xerces specific feature "http://apache.org/xml/features/nonvalidating/load-external-dtd". This feature simplified the parsing of XML documents, because the DTD was not searched and so no problems came up if it was not existant or not accessible. This caused that general entities got lost. They where neither translated nor kept.
Now the API will let the parser try to translate them. To force the API to behave as in the previous version you should set the following preference property: TPreference.getInstance().setUseApacheLoadExternalDTD( false );



Copyright (c) 2013 Software AG. All Rights Reserved.