1 Introduction
1.1Key Concepts
1.2Requirements
1.3Organization of this Document
2 Architecture
3 Java API
3.1DataObject
3.2DataGraph
3.3ChangeSummary
3.4Sequence
3.5Type
3.6Property
3.7DataFactory
3.8TypeHelper
3.9CopyHelper
3.10EqualityHelper
3.11XMLHelper
3.12XMLDocument
3.13XSDHelper
3.14DataHelper
3.15HelperContext
3.16HelperProvider
4 Generating Java from XML Schemas
4.1XSD, SDO, and Java Names
4.2Management of annotated XSDs
5 Java Interface Specification
5.1Code generation template
5.2Example of generated interfaces
6 Java Serialization of DataObjects
7 SDO Model for Types and Properties
8 Standard SDO Types
8.1SDO Data Types
8.2SDO Abstract Types
8.3SDO Model Types
8.4SDO Type and Property constraints
9 XML Schema to SDO Mapping
9.1Mapping Principles
9.2Mapping of XSD to SDO Types and Properties
9.3Mapping of XSD Attributes and Elements to SDO Properties
9.4Mapping of XSD Built in Data Types
9.5Examples of XSD to SDO Mapping
9.6XML use of Sequenced Data Objects
9.7XSD Mapping Details
9.8Compliance
9.9Corner cases
9.10XML without Schema to SDO Type and Property
10 Generation of XSD from SDO Type and Property
10.1Mapping of SDO DataTypes to XSD Built in Data Types
10.2Example Generated XSD
10.3Customizing Generated XSDs
11 DataGraph XML Serialization
12 XPath Expression for DataObjects
13 ChangeSummary XML format
13.1Example Use of ChangeSummary on a DataObject
14 Examples
14.1Accessing DataObjects using XPath
14.2Accessing DataObjects via Property Index
14.3Accessing the Contents of a Sequence.
14.4Serializing/Deserializing a DataGraph or DataObject
14.5Using Type and Property with DataObjects
14.6Creating XML from Data Objects
14.7Creating open content XML documents
14.8Web Services Client using XMLHelper
14.9Web services and DataGraphs Example
15 Complete Data Graph Examples
15.1Complete Data Graph Serialization
15.2Complete Data Graph for Company Example
15.3Complete Data Graph for Letter Example
15.4Complete WSDL for Web services Example
16 DataType Conversions
17 Acknowledgements
18 References
Introduction
Service Data Objects (SDO)is a data programming architectureand an API.
The main purpose of SDO is to simplify dataprogramming, so that developers can focus on business logic instead ofthe underlying technology.
SDO simplifies data programming by:
• unifying data programming across data source types
• providing support for common application patterns
• enabling applications, tools and frameworks to more easily query, view, bind,update, and introspect data.
Key Concepts
The key concepts in the SDO architecture are the Data Object, thedata graph and the Data Access Services (DAS).
A Data Object holds a set of named properties,each of which contains either a simple data-type value or a reference to another Data Object. The Data Object API provides a dynamic data API for manipulating these properties.
The data graph provides an envelope for Data Objects, and is the normal unit of transport between components. Data graphs can track changes made to the graph of Data Objects.
Changes include inserting Data Objects, deleting Data Objects and modifying Data Object property values.
Requirements
The scope of the SDO specification includes the following requirements:
1. Dynamic Data API.Data Objects often have typed Java interfaces. However,sometimes it is either impossible or undesirable to create Java interfaces to represent the Data Objects. One common reason for this is when the data being transferred is defined by the output of a query. Examples would be:
• A relational query against a relational persistence store.
• An EJBQL queries against an EJB entity bean domain model.
• Web services.
• XML queries against an XML source.
• When deployment of generated code is not practical.
Organization of this Document
This specification is organized as follows:
• Architecture: Describes the overall SDO system.
• Java API: Defines and describes the Java API for SDO.
• Generating Java from XML Schemas: Shows how Java is generated from XML Schemas (XSD).
• Java Interface Specification: Defines how Java interfaces are generated and used.
• Java Serialization of DataObjects: Defines how to serialize DataObjects.
• SDO Model for Types and Properties: Shows the SDO Type and Property in model form.
• Standard SDO Types: Defines and describes the Standard SDO Types.
• XML Schema to SDO Mapping: Defines and describes how XML Schema declarations (XSD) are mapped to SDO Types and Properties.
• Generation of XSD from SDO Type and Property: Describes how to generate XSDs from SDO Types and Properties.
• XPath Expression for DataObjects: Defines an augmented subset of XPath that can be used with SDO for traversing through Data Objects.
• Examples: Provides a set of examplesshowing how SDO is used.
• DataType Conversion Tables: Shows the set of defined datatype conversions.
Architecture
The core of the SDO framework is the DataObject, which is a generic representation of a business object and is not tied to any specific persistent storage mechanism.
A data graph is used to collect a graph of related DataObjects. In SDO version 1.0 a data graph was always wrapped by a DataGraph envelope object, whereas since SDO version 2.0 a graph of DataObjects can exist outside of a DataGraph. When data graphis used as two lower case words, it refers to any set of DataObjects. When DataGraphis used as a single upper case word, it refers specificallyto the DataGraph envelope object.
All data graphs have a single root DataObject that directly or indirectly contains all the other DataObjects in the graph. When all DataObjects in the data graph refer only to DataObjects in the data graph, then the data graph is called closed. Closureis the normal state for data graphs.
Java API
The SDO 2.1 Java API requires a minimum Java Development Kit, version 1.4.0 or higher.
The SDO API is made up of the following interfaces that relate to instance data:
• DataObject– A business data object.
• DataGraph– An envelope for a graph of DataObjects.
• ChangeSummary– Summary of changes to the DataObjects in a data graph.
• Sequence- A sequence of settings.
SDO also contains a lightweight metadata API that can beused for introspecting the model of DataObjects:
• Type – The Type of a DataObject or Property.
• Property – A Property of a DataObject.
Finally, SDO has a number of helper interfaces and classes:
• DataFactory
• TypeHelper
• CopyHelper
• EqualityHelper
• XMLHelper
• XMLDocument
• XSDHelper
• DataHelper
• HelperProvider
……
Service data objects for Java specification (758 KO) (Cours PDF)