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 "EclipseLink/DesignDocs/317962/Phase2.1"

(Example: Property-level xml-properties)
Line 28: Line 28:
 
| align="center" |  
 
| align="center" |  
 
| align="center" | X
 
| align="center" | X
| align="center" | X
 
| align="center" | X
 
|-
 
| xml-properties
 
| XmlProperties
 
| align="center" |  
 
| align="center" | X
 
 
| align="center" | X
 
| align="center" | X
 
| align="center" | X
 
| align="center" | X
Line 41: Line 34:
 
| XmlTransformation
 
| XmlTransformation
 
| align="center" |    
 
| align="center" |    
| align="center" |  
+
| align="center" | X
| align="center" |  
+
| align="center" | X
| align="center" |  
+
| align="center" | X
 
|-
 
|-
 
| xml-read-transformer
 
| xml-read-transformer
 
| XmlReadTransformer
 
| XmlReadTransformer
 
| align="center" |    
 
| align="center" |    
| align="center" |  
+
| align="center" | X
| align="center" |  
+
| align="center" | X
| align="center" |  
+
| align="center" | X
 
|-
 
|-
 
| xml-write-transformer
 
| xml-write-transformer
 
| XmlWriteTransformer
 
| XmlWriteTransformer
 
| align="center" |    
 
| align="center" |    
| align="center" |  
+
| align="center" | X
| align="center" |  
+
| align="center" | X
| align="center" |  
+
| align="center" | X
|-
+
| xml-write-transformers
+
| XmlWriteTransformers
+
| align="center" |  
+
| align="center" |  
+
| align="center" |  
+
| align="center" |  
+
 
|}
 
|}
  
== Example: xml-class-extractor ==
+
== xml-class-extractor ==
  
 +
=== Example ===
 
The following example will demonstrate how the <code>xml-class-extractor</code> can be applied.
 
The following example will demonstrate how the <code>xml-class-extractor</code> can be applied.
  
Line 78: Line 65:
 
</source>
 
</source>
  
== Example: Type-level xml-property ==
+
== xml-property ==
  
 +
=== Example: type-level xml-property ===
 
The following example will demonstrate how a type-level <code>xml-property</code> can be applied.
 
The following example will demonstrate how a type-level <code>xml-property</code> can be applied.
  
Line 86: Line 74:
 
<java-type name="org.example.Employee">
 
<java-type name="org.example.Employee">
 
     <xml-property name="identifier" value="101" value-type="Integer.class" />
 
     <xml-property name="identifier" value="101" value-type="Integer.class" />
 +
    <xml-property name="isTrue" value="false" value-type="Boolean.class" />
 
</java-type>
 
</java-type>
 
</source>
 
</source>
  
== Example: Property-level xml-property ==
+
=== Example: property-level xml-property ===
 
+
 
The following example will demonstrate how a property-level <code>xml-property</code> can be applied.
 
The following example will demonstrate how a property-level <code>xml-property</code> can be applied.
  
Line 99: Line 87:
 
         <xml-element java-attribute="myelement">
 
         <xml-element java-attribute="myelement">
 
             <xml-property name="isAttribute" value="false" value-type="Boolean.class" />
 
             <xml-property name="isAttribute" value="false" value-type="Boolean.class" />
 +
            <xml-property name="comment" value="this is an element" value-type="String.class" />
 
         </xml-element>
 
         </xml-element>
 
     </java-attributes>
 
     </java-attributes>
Line 104: Line 93:
 
</source>
 
</source>
  
== Example: Type-level xml-properties ==
+
== xml-transformation ==
  
The following example will demonstrate how type-level <code>xml-properties</code> can be applied.
+
Following is the proposed schema structure for <code>xml-transform</code>:
 +
<source lang="xml">
 +
<xs:complexType name="xml-transformation">
 +
  <xs:sequence>
 +
    <xs:element name="xml-read-transformer" type="xml-read-transformer"/>
 +
    <xs:element name="xml-write-transformer" type="xml-write-transformer" minOccurs="0" maxOccurs="unbounded"/>
 +
    <xs:element name="xml-access-type" type="xml-access-type" minOccurs="0"/>
 +
    <xs:element name="xml-property" type="xml-property" minOccurs="0" maxOccurs="unbounded"/>
 +
    <xs:element name="xml-access-methods" type="xml-access-methods" minOccurs="0"/>
 +
  </xs:sequence>
 +
  <xs:attribute name="name" type="xs:string" use="required"/>
 +
  <xs:attribute name="fetch" type="orm:fetch-type"/>
 +
  <xs:attribute name="optional" type="xs:boolean"/>
 +
  <xs:attribute name="access" type="orm:access-type"/>
 +
  <xs:attribute name="mutable" type="xs:boolean"/>
 +
  <xs:attribute name="attribute-type" type="xs:string"/>
 +
</xs:complexType>
 +
</source>
 +
 
 +
=== Example ===
 +
The following example will demonstrate how the <code>xml-transformation</code> can be applied.
  
Setting <code>xml-properties</code> on a type via [http://wiki.eclipse.org/EclipseLink/DesignDocs/293925/MOXyExtensions EclipseLink XML metadata] can be accomplished as follows:
+
Setting <code>xml-transformation</code> via [http://wiki.eclipse.org/EclipseLink/DesignDocs/293925/MOXyExtensions EclipseLink XML metadata] can be accomplished as follows:
 
<source lang="xml">
 
<source lang="xml">
 
<java-type name="org.example.Employee">
 
<java-type name="org.example.Employee">
     <xml-properties>
+
     <java-attributes>
         <xml-property name="identifier" value="101" value-type="Integer.class" />
+
         <xml-element java-attribute="myelement">
         <xml-property name="isTrue" value="false" value-type="Boolean.class" />
+
            <xml-transformation>
     </xml-properties>
+
            </xml-transformation>
 +
         </xml-element>
 +
     </java-attributes>
 
</java-type>
 
</java-type>
 
</source>
 
</source>
  
== Example: Property-level xml-properties ==
+
== xml-read-transformer ==
  
The following example will demonstrate how property-level <code>xml-properties</code> can be applied.
+
Following is the proposed schema structure for <code>xml-read-transformer</code>:
 +
<source lang="xml">
 +
<xs:complexType name="xml-read-transformer">
 +
  <xs:attribute name="transformer-class" type="xs:string"/>
 +
  <xs:attribute name="method" type="xs:string"/>
 +
</xs:complexType>
 +
</source>
  
Setting <code>xml-properties</code> on a field/method via [http://wiki.eclipse.org/EclipseLink/DesignDocs/293925/MOXyExtensions EclipseLink XML metadata] can be accomplished as follows:
+
== Example ==
 +
 
 +
The following example will demonstrate how the <code>xml-read-transformer</code> can be applied.
 +
 
 +
Setting <code>xml-read-transformer</code> via [http://wiki.eclipse.org/EclipseLink/DesignDocs/293925/MOXyExtensions EclipseLink XML metadata] can be accomplished as follows:
 
<source lang="xml">
 
<source lang="xml">
 
<java-type name="org.example.Employee">
 
<java-type name="org.example.Employee">
 
     <java-attributes>
 
     <java-attributes>
         <xml-element java-attribute="myelement">
+
         <xml-element java-attribute="myelement" write-only="true">
             <xml-properties>
+
             <xml-read-transformer />
                <xml-property name="isAttribute" value="false" value-type="Boolean.class" />
+
        </xml-element>
                <xml-property name="comment" value="this is an element" value-type="String.class" />
+
    </java-attributes>
             </xml-properties>
+
</java-type>
 +
</source>
 +
 
 +
== xml-write-transformer ==
 +
 
 +
Following is the proposed schema structure for <code>xml-write-transformer</code>:
 +
<source lang="xml">
 +
<xs:complexType name="xml-write-transformer">
 +
  <xs:sequence>
 +
    <xs:element name="column" type="orm:column"/>
 +
  </xs:sequence>
 +
  <xs:attribute name="transformer-class" type="xs:string"/>
 +
  <xs:attribute name="method" type="xs:string"/>
 +
</xs:complexType>
 +
</source>
 +
 
 +
== Example ==
 +
 
 +
The following example will demonstrate how the <code>xml-write-transformer</code> can be applied.
 +
 
 +
Setting <code>xml-read-transformer</code> via [http://wiki.eclipse.org/EclipseLink/DesignDocs/293925/MOXyExtensions EclipseLink XML metadata] can be accomplished as follows:
 +
<source lang="xml">
 +
<java-type name="org.example.Employee">
 +
    <java-attributes>
 +
        <xml-element java-attribute="myelement" read-only="true">
 +
             <xml-write-transformer />
 
         </xml-element>
 
         </xml-element>
 
     </java-attributes>
 
     </java-attributes>
 
</java-type>
 
</java-type>
 
</source>
 
</source>

Revision as of 14:15, 26 July 2010

Phase 2.1 - Additional MOXy external metadata support

This phase of development involves providing additional MOXy external metadata support that allows similar configuration abilities as with deployment XML

Xml Metadata Tags

The following Xml metadata tags will be targeted in this phase:

XML Metadata Tag MOXy Annotation Package Type Field Method
xml-class-extractor XmlClassExtractor   X    
xml-property XmlProperty   X X X
xml-transformation XmlTransformation   X X X
xml-read-transformer XmlReadTransformer   X X X
xml-write-transformer XmlWriteTransformer   X X X

xml-class-extractor

Example

The following example will demonstrate how the xml-class-extractor can be applied.

Setting xml-class-extractor via EclipseLink XML metadata can be accomplished as follows:

<java-type name="org.example.Employee">
    <xml-class-extractor class="org.example.MyClassExtractor" />
</java-type>

xml-property

Example: type-level xml-property

The following example will demonstrate how a type-level xml-property can be applied.

Setting xml-property on a type via EclipseLink XML metadata can be accomplished as follows:

<java-type name="org.example.Employee">
    <xml-property name="identifier" value="101" value-type="Integer.class" />
    <xml-property name="isTrue" value="false" value-type="Boolean.class" />
</java-type>

Example: property-level xml-property

The following example will demonstrate how a property-level xml-property can be applied.

Setting xml-property on a field/method via EclipseLink XML metadata can be accomplished as follows:

<java-type name="org.example.Employee">
    <java-attributes>
        <xml-element java-attribute="myelement">
            <xml-property name="isAttribute" value="false" value-type="Boolean.class" />
            <xml-property name="comment" value="this is an element" value-type="String.class" />
        </xml-element>
    </java-attributes>
</java-type>

xml-transformation

Following is the proposed schema structure for xml-transform:

<xs:complexType name="xml-transformation">
  <xs:sequence>
    <xs:element name="xml-read-transformer" type="xml-read-transformer"/>
    <xs:element name="xml-write-transformer" type="xml-write-transformer" minOccurs="0" maxOccurs="unbounded"/>
    <xs:element name="xml-access-type" type="xml-access-type" minOccurs="0"/>
    <xs:element name="xml-property" type="xml-property" minOccurs="0" maxOccurs="unbounded"/>
    <xs:element name="xml-access-methods" type="xml-access-methods" minOccurs="0"/>
  </xs:sequence>
  <xs:attribute name="name" type="xs:string" use="required"/>
  <xs:attribute name="fetch" type="orm:fetch-type"/>
  <xs:attribute name="optional" type="xs:boolean"/>
  <xs:attribute name="access" type="orm:access-type"/>
  <xs:attribute name="mutable" type="xs:boolean"/>
  <xs:attribute name="attribute-type" type="xs:string"/>
</xs:complexType>

Example

The following example will demonstrate how the xml-transformation can be applied.

Setting xml-transformation via EclipseLink XML metadata can be accomplished as follows:

<java-type name="org.example.Employee">
    <java-attributes>
        <xml-element java-attribute="myelement">
            <xml-transformation>
            </xml-transformation>
        </xml-element>
    </java-attributes>
</java-type>

xml-read-transformer

Following is the proposed schema structure for xml-read-transformer:

<xs:complexType name="xml-read-transformer">
  <xs:attribute name="transformer-class" type="xs:string"/>
  <xs:attribute name="method" type="xs:string"/>
</xs:complexType>

Example

The following example will demonstrate how the xml-read-transformer can be applied.

Setting xml-read-transformer via EclipseLink XML metadata can be accomplished as follows:

<java-type name="org.example.Employee">
    <java-attributes>
        <xml-element java-attribute="myelement" write-only="true">
            <xml-read-transformer />
        </xml-element>
    </java-attributes>
</java-type>

xml-write-transformer

Following is the proposed schema structure for xml-write-transformer:

<xs:complexType name="xml-write-transformer">
  <xs:sequence>
    <xs:element name="column" type="orm:column"/>
  </xs:sequence>
  <xs:attribute name="transformer-class" type="xs:string"/>
  <xs:attribute name="method" type="xs:string"/>
</xs:complexType>

Example

The following example will demonstrate how the xml-write-transformer can be applied.

Setting xml-read-transformer via EclipseLink XML metadata can be accomplished as follows:

<java-type name="org.example.Employee">
    <java-attributes>
        <xml-element java-attribute="myelement" read-only="true">
            <xml-write-transformer />
        </xml-element>
    </java-attributes>
</java-type>

Back to the top