Difference between revisions of "EclipseLink/Examples/MOXy"

From Eclipsepedia

Jump to: navigation, search
(Object Graphs)
m (EclipseLink MOXy Examples)
(6 intermediate revisions by one user not shown)
Line 39: Line 39:
 
*[[EclipseLink/Examples/MOXy/JSON_CollectionProperties|Collection Properties (NEW in 2.5)]]
 
*[[EclipseLink/Examples/MOXy/JSON_CollectionProperties|Collection Properties (NEW in 2.5)]]
 
*:Mapping a collection property to both JSON and XML
 
*:Mapping a collection property to both JSON and XML
 +
  
 
=== Object Graphs (NEW in 2.5) ===
 
=== Object Graphs (NEW in 2.5) ===
  
 +
*[[EclipseLink/Examples/MOXy/ObjectGraphs/Metadata|Specifying Object Graphs through Metadata]]
 +
*:Learn how to define object graphs through metadata
 +
*[[EclipseLink/Examples/MOXy/ObjectGraphs/Programmatic|Specifying Object Graphs Programmatically]]
 +
*:Learn how to define object graphs on the fly programmatically
 +
*[[EclipseLink/Examples/MOXy/ObjectGraphs/Inheritance|Handling Inheritance]]
 +
*:Learn how to leverage object graphs with models that have inheritance
 
*[[EclipseLink/Examples/MOXy/Dynamic/ObjectGraphs|Object Graphs & Dynamic JAXB]]
 
*[[EclipseLink/Examples/MOXy/Dynamic/ObjectGraphs|Object Graphs & Dynamic JAXB]]
 
*:Learn how to use Object Graphs with Dynamic JAXB
 
*:Learn how to use Object Graphs with Dynamic JAXB
 +
  
 
=== Working with JPA ===
 
=== Working with JPA ===
Line 54: Line 62:
 
*[[EclipseLink/Examples/MOXy/JPA/EmbeddedIdClass|Embedded ID Classes]]
 
*[[EclipseLink/Examples/MOXy/JPA/EmbeddedIdClass|Embedded ID Classes]]
 
*:Learn how to bind Embedded ID Classes to XML.
 
*:Learn how to bind Embedded ID Classes to XML.
 +
  
 
=== Integration with Spring ===
 
=== Integration with Spring ===
Line 60: Line 69:
  
  
=== Mapping with XPath ===
+
=== Mapping Extensions ===
*[[EclipseLink/Examples/MOXy/XPath|XPath]]
+
*[[EclipseLink/Examples/MOXy/XPath|XPath Based Mapping]]
 
*:Map objects to XML using XPath.
 
*:Map objects to XML using XPath.
 
*[[EclipseLink/Examples/MOXy/ElementMappingByAttributeValue|XPath Mapping with Predicates]]  
 
*[[EclipseLink/Examples/MOXy/ElementMappingByAttributeValue|XPath Mapping with Predicates]]  
 
*:Map elements based on the value of an attribute.
 
*:Map elements based on the value of an attribute.
 +
*[[EclipseLink/Examples/MOXy/Mappings/Bidirectional|Bidirectional Mapping (NEW in 2.5)]]
 +
*:Mapping a bidirectional relationship
  
  
Line 91: Line 102:
 
*[[EclipseLink/Examples/MOXy/Dynamic/ObjectGraphs|Object Graphs (NEW in 2.5)]]
 
*[[EclipseLink/Examples/MOXy/Dynamic/ObjectGraphs|Object Graphs (NEW in 2.5)]]
 
*:Learn how to use Object Graphs with Dynamic JAXB
 
*:Learn how to use Object Graphs with Dynamic JAXB
 +
  
 
=== Working with SDO ===
 
=== Working with SDO ===
 
*[[EclipseLink/Examples/SDO/JAXB|Converting POJOs to/from SDO DataObjects using the POJO/SDO Bridge (via JAXB)]]  
 
*[[EclipseLink/Examples/SDO/JAXB|Converting POJOs to/from SDO DataObjects using the POJO/SDO Bridge (via JAXB)]]  
*:Using SDO or SCA and want to leverage JPA to access your persistent data? Learn how to expose your objects through SDO using MOXy.  
+
*:Using SDO or SCA and want to leverage JPA to access your persistent data? Learn how to expose your objects through SDO using MOXy.
 
+
  
 
== Using Native OXM through JAXB Examples ==
 
== Using Native OXM through JAXB Examples ==
 
* [[EclipseLink/Examples/MOXy/NativeOxmJaxbContext | Creating a Native OXM aware JAXBContext]]
 
* [[EclipseLink/Examples/MOXy/NativeOxmJaxbContext | Creating a Native OXM aware JAXBContext]]
 
*:Use the EclipseLink Workbench to map Java classes to an XML Schema, and Marshal and Unmarshal XML documents using JAXB APIs.
 
*:Use the EclipseLink Workbench to map Java classes to an XML Schema, and Marshal and Unmarshal XML documents using JAXB APIs.

Revision as of 16:05, 5 April 2013

The following examples are provided to assist developers with their adoption and usage of EclipseLink's JAXB and native OXM functionality.

EclipseLink provides a standards-based JAXB implementation with many extensions. For an introduction to the JAXB 2.0 reference implementation please see the following page:


See the Developing JAXB Applications Using EclipseLink MOXy guide and EclipseLink Solutions Guide for complete information.


EclipseLink MOXy Examples

General

  • Getting Started
    No metadata is required to convert your existing object model to XML. Supply metadata (using annotations or XML) only when you need to fine tune the XML representation. Get started using MOXy.
  • Using EclipseLink MOXy's JAXB
    Java Architecture for XML Binding (JSR 222) is the standard for XML Binding in Java. JAXB covers 100% of XML Schema concepts. Learn how to use MOXy as your JAXB provider.
  • Meet in the Middle Mapping Advantages
    Compare meet-in-the-middle mapping to other approaches. Normally in XML Binding solutions there is a one-to-one correspondence between the object model and the levels of nesting in the resulting XML document. Learn how to leverage MOXy's XPath-based mapping to remove these limitations.
  • Using EclipseLink MOXy's XML Mapping (eclipselink-oxm.xml)
    Externalizing the JAXB and extended mappings in an eclipselink-oxm.xml mapping file can separate the XML bindings from the domain classes.
  • XMLNameTransformer
    Customized XML Name Conversions.


MOXy's JSON-Binding


Object Graphs (NEW in 2.5)


Working with JPA

JPA provides an easy and powerful means to use Java objects to interact with a relational database. These Java objects are called entities, and have their own characteristics. Some of these characteristics (bidirectional relationships, compound keys, embedded key classes, and lazy loading) can cause challenges when mapping these objects to XML. Learn how to easily map JPA entities to XML using MOXy.


Integration with Spring


Mapping Extensions


Extensible Models

  • MOXY Metadata Repository
    Store mappings using a MetadataSource external to the running application so that mapping overrides and extended mappings can be more dynamically integrated into deployed applications
  • Multiple Bindings Files
    Process multiple bindings files from different locations, and create a merged set of metadata. This allows a JAXBContext to be created to represent any version of the XML document.
  • XML Extensions
    Make MOXy JAXB beans extensible so that a set of additional extended mappings can be used at runtime.
  • RefreshMetadata
    Update the metadata (in this example to include information about new extensions) without stopping the application.


Dynamic JAXB

Traditional JAXB maps static classes (POJOs) to XML. Dynamic JAXB uses objects (instances of DynamicEntity) with generic get/set methods instead avoiding the need for the class generation step entirely.


Working with SDO

Using Native OXM through JAXB Examples