Skip to main content

Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "SMILA/Documentation/XQJ Implementation"

Line 17: Line 17:
 
Fallowing two class diagrams represent the XQJ architecture as defined by the JSR-225 (http://jcp.org/en/jsr/detail?id=225)
 
Fallowing two class diagrams represent the XQJ architecture as defined by the JSR-225 (http://jcp.org/en/jsr/detail?id=225)
  
 +
** XQJ Class Diagram 1
 
[[Image:JSR225-subpart1.jpg]]
 
[[Image:JSR225-subpart1.jpg]]
  
 +
** XQJ Class Diagram 2
 
[[Image:JSR225-subpart2.jpg]]
 
[[Image:JSR225-subpart2.jpg]]
  
Line 26: Line 28:
 
The following class diagram represents the current state of the Bdx XQJ implementation, considering as a basic priority the query functionality.  Currently not all the XQJ interfaces (functionalities) have been implemented – only the necessary operations that provide query support.
 
The following class diagram represents the current state of the Bdx XQJ implementation, considering as a basic priority the query functionality.  Currently not all the XQJ interfaces (functionalities) have been implemented – only the necessary operations that provide query support.
  
 +
[[Image:BdxXQJ.jpg]]
  
 
== Bdx XQJ Implementation – data type hierarchy ==
 
== Bdx XQJ Implementation – data type hierarchy ==
 
   
 
   
Bdx XQJ implementation provides its own type – value hierarchy for data representation. The type hierarchy is only internal used
+
Bdx XQJ implementation provides its own type – value hierarchy for data representation. The type hierarchy is only internal used.
 +
 
 +
[[Image:BdxValueType.jpg]]
 +
 
 +
Currently not all the data types (values) have been implemented; just the necessary types in order to support the main querying operations for few basic XS data types.
 +
 
 +
 
 +
== Bdx XQJ Implementation characteristics ==
 +
 
 +
1. Package structure & nomenclature
 +
The base package of the Bdx XQJ Implementation is: org.eclipse.eilf.xmlstorage.internal.xquery.bdx.
 +
Most of the Bdx XQJ implementation sources follow the next naming format:
 +
- for concrete implementation of XQJ interfaces: BdxXQNameImpl;
 +
- for sources that support the basic XQJ implementation: BdxName
 +
- there are also sources with only the concrete class name
 +
The type – value hierarchy implementation sources follow the next naming format:
 +
- sources representing types: XQTypeNameType, BdxNameType
 +
- sources representing values: XQValueNameValue
 +
Sub-packages details:
 +
- org.eclipse.eilf.xmlstorage.internal.xquery.bdx: contains the implementation classes of the XQJ interfaces (javax.xml.xquery);
 +
- org.eclipse.eilf.xmlstorage.internal.xquery.bdx.bind: provides the external binding that allows client code to bind variables;
 +
- org.eclipse.eilf.xmlstorage.internal.xquery.bdx.map: maps/converts Oracle Berkeley DB Xml from/to XQJ items;
 +
- org.eclipse.eilf.xmlstorage.internal.xquery.bdx.message: offers localized messages support. Current Bdx XQJ Implementation version doesn’t use this functionality for all error messages. It only shows how this featuring shall be used/adapted in order to support full internationalization messages support;
 +
- org.eclipse.eilf.xmlstorage.internal.xquery.bdx.ou: object utilities class;
 +
- org.eclipse.eilf.xmlstorage.internal.xquery.bdx.txn: provides transaction demarcation for client code
 +
- org.eclipse.eilf.xmlstorage.internal.xquery.bdx.type and org.eclipse.eilf.xmlstorage.internal.xquery.bdx.value provide the data type hierarchy which is internal used by the current implementation;
 +
- org.eclipse.eilf.xmlstorage.internal.xquery.bdx.util: utility class for internal usage.
 +
(Next versions of the Bdx XQJ Implementation will most probably have minor changes in current package structure – which will not affect the client code implementation)

Revision as of 07:35, 2 September 2008

Summary

This page specifies the IT-Design and Guidelines for the XQJ (JSR-225) implementation furthermore referenced as Bdx – XQJ Implementation within this web page. The Bdx XQJ Implementation will make possible for final Java clients to use the XQJ API in order to access the Oracle Berkeley DB Xml (“embeddable XML database with XQuery based access to documents stored in containers and indexed based on their content”).


Bdx XQJ Implementation Overview

The architecture does interface data from Oracle Berkeley DB Xml to end Java clients based on the XQJ (JSR-225) specifications. The following picture outlines a simplified overview of the structure together with the focus for this document.

BdxXQJImplementationOverview.jpg

Bdx XQJ implementation provides part of the XQJ functionality, especially for the query support.


UML Class Diagrams

  • XQJ (JSR-225) – class diagram

Fallowing two class diagrams represent the XQJ architecture as defined by the JSR-225 (http://jcp.org/en/jsr/detail?id=225)

    • XQJ Class Diagram 1

JSR225-subpart1.jpg

    • XQJ Class Diagram 2

JSR225-subpart2.jpg


Bdx XQJ Implementation

The following class diagram represents the current state of the Bdx XQJ implementation, considering as a basic priority the query functionality. Currently not all the XQJ interfaces (functionalities) have been implemented – only the necessary operations that provide query support.

BdxXQJ.jpg

Bdx XQJ Implementation – data type hierarchy

Bdx XQJ implementation provides its own type – value hierarchy for data representation. The type hierarchy is only internal used.

BdxValueType.jpg

Currently not all the data types (values) have been implemented; just the necessary types in order to support the main querying operations for few basic XS data types.


Bdx XQJ Implementation characteristics

1. Package structure & nomenclature The base package of the Bdx XQJ Implementation is: org.eclipse.eilf.xmlstorage.internal.xquery.bdx. Most of the Bdx XQJ implementation sources follow the next naming format: - for concrete implementation of XQJ interfaces: BdxXQNameImpl; - for sources that support the basic XQJ implementation: BdxName - there are also sources with only the concrete class name The type – value hierarchy implementation sources follow the next naming format: - sources representing types: XQTypeNameType, BdxNameType - sources representing values: XQValueNameValue Sub-packages details: - org.eclipse.eilf.xmlstorage.internal.xquery.bdx: contains the implementation classes of the XQJ interfaces (javax.xml.xquery); - org.eclipse.eilf.xmlstorage.internal.xquery.bdx.bind: provides the external binding that allows client code to bind variables; - org.eclipse.eilf.xmlstorage.internal.xquery.bdx.map: maps/converts Oracle Berkeley DB Xml from/to XQJ items; - org.eclipse.eilf.xmlstorage.internal.xquery.bdx.message: offers localized messages support. Current Bdx XQJ Implementation version doesn’t use this functionality for all error messages. It only shows how this featuring shall be used/adapted in order to support full internationalization messages support; - org.eclipse.eilf.xmlstorage.internal.xquery.bdx.ou: object utilities class; - org.eclipse.eilf.xmlstorage.internal.xquery.bdx.txn: provides transaction demarcation for client code - org.eclipse.eilf.xmlstorage.internal.xquery.bdx.type and org.eclipse.eilf.xmlstorage.internal.xquery.bdx.value provide the data type hierarchy which is internal used by the current implementation; - org.eclipse.eilf.xmlstorage.internal.xquery.bdx.util: utility class for internal usage. (Next versions of the Bdx XQJ Implementation will most probably have minor changes in current package structure – which will not affect the client code implementation)

Back to the top