EclipseLink/UserGuide/SDO/Introduction to EclipseLink SDO (ELUG)
This section introduces EclipseLink implementation of Service Data Objects (SDO) specification, as well as provides information on how you can use it in your application development.
Using SDO Metadata
SDO Type acts similarly to a Class in Java, and provides much of the same metadata as the Java Reflection API provides for Java classes.
A Type can have supertypes, which corresponds to the EclipseLink concept of inheritance policy (see Inheritance Policy in Descriptor API).
For more information, see Type API.
What You May Need to Know About Open Sequenced Type
For information, see OpenSequencedType.
What You May Need to Know About DataObjectType for Data Types
For information, see SDODataObjectType.
SDO Property acts similarly to a property in Java and provides much of the same metadata as the Java Reflection API provides for Java fields or methods.
- DataType=true + isMany=false
- DataType=true + isMany=true
- DataType=false + isMany=false + containment=true
Corresponds to EclipseLink OXM composite object mappings.
- DataType=false + isMany=true + containment=true
Corresponds to EclipseLink OXM composite collection mappings.
- DataType=false + isMany=false + containment=false
Corresponds to EclipseLink OXM reference mappings.
- DataType=false + isMany=true + containment=false
Corresponds to EclipseLink OXM collection reference mappings.
For more information, see Property API.
You can use the following EclipseLink helper classes to define SDO metadata:
Information pending: modifying and accessing the underlying EclipseLink metadata
For more information, see the following:
How to Define Metadata with EclipseLink SDOXSDHelper
You use the SDOXSDHelper to do the following:
- Define SDO metadata, where SDO metadata is derived from XML schemas.
- Generate XML schemas from SDO types.
You can customize metadata using the following annotations that you apply to the XML schema:
- Standard annotations:
- Information pending
- EclipseLink annotations:
- Information pending
You can also use various APIs to determine the XML representation about the SDO metadata.
How to Define Metadata with EclipseLink SDOTypeHelper
You use the SDOTypeHelper to do the following:
- Look up SDO metadata.
- Programmatically define SDO metadata (note that this is not the typical usage for the SDOTypeHelper).
You can use the following SDO classes to work with data:
A DataObject in SDO corresponds to a Java Object (POJO). To define object-XML mappings, you map the DataObject to XML. You can create your data object as either dynamic (see Dynamic DataObject Examples), or static by applying a type-safe interface to it (see Static DataObject Examples). The DataObject provides an XPath-like (see Mappings and XPath) means of data access. For example, the following code is valid in SDO:
The standard JAXB, however, would require the following:
Note that you can use the EclipseLink XPathHelper to query data objects using an XPath expression.
For more information, see EclipseLink SDODataObject API
What You May Need to Know About Serialization in SDO
SDO has its own Java serialization format. The DataObject implements the Serializable interface.
When you marshall (save) a DataObject to XML, or unmarshall an XML document into objects, the XMLDocument class contains information about the root of the XML document.
For more information, see EclipseLink SDOXMLDocument API.
What You May Need to Know About Sequence, ChangeSummary, and DataGraph
The following SDO classes allow you to obtain additional information about data objects:
- Sequence -- provides a list of properties and their corresponding values.
- ChangeSummary -- records changes to data objects.
Note that the DataGraph class has been deprecated.
For more information, see the following EclipseLink API: