Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "EclipseLink/DesignDocs/317962/Phase3"

(xml-discriminator-node)
Line 17: Line 17:
 
! Method
 
! Method
 
|-
 
|-
| XmlDescriminatorNode
+
| XmlDiscriminatorNode
 
| xml-discriminator-node  
 
| xml-discriminator-node  
 
| align="center" |  
 
| align="center" |  
Line 24: Line 24:
 
| align="center" |  
 
| align="center" |  
 
|-
 
|-
| XmlDescriminatorValue
+
| XmlDiscriminatorValue
 
| xml-discriminator-value  
 
| xml-discriminator-value  
 
| align="center" |  
 
| align="center" |  
Line 32: Line 32:
 
|}
 
|}
  
== XmlDescriminatorNode ==
+
== XmlDiscriminatorNode ==
 
=== Purpose ===
 
=== Purpose ===
 
Provide a means to set the class type indicator when using inheritance.
 
Provide a means to set the class type indicator when using inheritance.

Revision as of 12:02, 17 August 2010

Phase 3 - MOXy Equavilents of EclipseLink JPA Annotations

This phase of development involves providing additional MOXy annotations and XML metadata support equivalent to that of EclipseLink JPA.

Annotations/XML Metadata

The following MOXy annotations/XML metadata will be targeted in this phase:

MOXy Annotation XML Metadata Tag Package Type Field Method
XmlDiscriminatorNode xml-discriminator-node X
XmlDiscriminatorValue xml-discriminator-value X

XmlDiscriminatorNode

Purpose

Provide a means to set the class type indicator when using inheritance.

Java Metadata

package org.eclipse.persistence.oxm.annotations;
 
@Target({TYPE}) 
@Retention(RUNTIME)
public @interface XmlDiscriminatorNode {
    String value();
}

XML Metadata

xml-discriminator-node

The xml-discriminator-node metadata tag will be used to set the class type indicator when using inheritance. The value will be in the form of an XPath to an attribute, i.e. @xsi:type.

XML Schema

Following is the proposed XSD change necessary to provide this support:

<xs:element name="java-type">
    <xs:complexType>
        <xs:all>
            <xs:element ref="xml-type" minOccurs="0"/>
            <xs:element ref="xml-root-element" minOccurs="0"/>
            <xs:element ref="xml-see-also" minOccurs="0"/>
            <xs:element ref="xml-java-type-adapter" minOccurs="0"/>
            <xs:element ref="xml-class-extractor" minOccurs="0"/>
            <xs:element ref="xml-properties" minOccurs="0" />
            <xs:element name="java-attributes" minOccurs="0">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element ref="java-attribute" minOccurs="0" maxOccurs="unbounded" />
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
        </xs:all>
        <xs:attribute name="name" type="xs:string" />
        <xs:attribute name="xml-accessor-order" type="xml-access-order" default="UNDEFINED" />
        <xs:attribute name="xml-accessor-type" type="xml-access-type" default="PUBLIC_MEMBER" />
        <xs:attribute name="xml-customizer" type="xs:string" />
        <xs:attribute name="xml-discriminator-node" type="xs:string" />
        <xs:attribute name="xml-inline-binary-data" type="xs:boolean" default="false" />
        <xs:attribute name="xml-transient" type="xs:boolean" default="false" />
    </xs:complexType>
</xs:element>

Example:

The following example will demonstrate ...

Testing

This section identifies the test package(s) for each feature outlined on this page.

XML Metadata

XML Metadata Package

Annotations

Annotation Package

Open Issues

This section lists open issues.

Issue# Description/Notes
1

Decisions

This section lists decisions made. These are intended to document the resolution of open issues or constraints added to the project that are important.

Decision# Description/Notes Decision
1

Back to the top