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.
EclipseLink/DesignDocs/293925/PathBasedMappings
Path-based Mapping Support
Provide support for path-based mappings.
Design Decisions
Decision Point 1: xml-attribute/xml-element vs. xml-element-wrapper
There are three possible options for supporting path-based mappings:
- Utilize the
xml-attributeandxml-elementstructures- Issue: if this apporach is taken, what is the expected behavior when an
xml-element-wrapperis used with anxml-elementthat has the path set?
- Issue: if this apporach is taken, what is the expected behavior when an
- Utilize the
xml-element-wrapperstructure- For this approach to work, we will have to enable use with single-valued properties and
xml-attribute
- For this approach to work, we will have to enable use with single-valued properties and
The preferred approach is to utilize the xml-attribute and xml-element structures.
Decision Point 2: name overload vs. xml-path vs. name + grouping-element
We will need to consider three possible methods of specifying the path for a given mapping:
- Overload the
nameattribute- This is the most simple approach, as no new attributes/elements need to be introduced.
-
namecan be used to set the path as follows:-
name="projects/project/id"
-
- Issue: this approach would require use of a standard mechanism in a non-standard way - is this acceptable?
- Add a new
xml-pathattribute- With this approach, the
xml-pathwould contain the entire path, i.e.:-
xml-path="projects/project/id"
-
- Issue: if both
nameandxml-pathare set, which takes precedence?
- With this approach, the
- Combine
namewith a newgrouping-elementattribute- With this approach a grouping element would be combined with the name to get the entire path, i.e.:
-
name="id" grouping-element="projects/project"
-
- With this approach a grouping element would be combined with the name to get the entire path, i.e.:
The preferred approach would be to Add a new xml-path attribute
Decision Point 3: Optional Element Usage
If use of xml-element-wrapper is chosen in Decision Point 1 above, what will the expected behavior be when namespace, nillable, and/or required is set in addition to an XPath?
Regarding namespace, the preferred approach is to apply the namespace to any path element that isn't already prefixed.
Regarding nillable, and/or required, the preferred approach is to apply these to the last path element.