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.
Difference between revisions of "EclipseLink/Development/359251"
< EclipseLink | Development
m (→IDResolver) |
(→Design Documentation: JAXB Extensions) |
||
Line 10: | Line 10: | ||
'''Jan. 2012''': Other extension properties: http://jaxb.java.net/2.2/docs/vendorProperties.html | '''Jan. 2012''': Other extension properties: http://jaxb.java.net/2.2/docs/vendorProperties.html | ||
− | == XmlLocation == | + | == To Do == |
+ | |||
+ | === AccessorFactory === | ||
+ | |||
+ | *Added for the benefit of Hibernate users | ||
+ | *Difficult to implement, no documentation, can be replaced by @XmlJavaTypeAdapter | ||
+ | |||
+ | === CycleRecoverable === | ||
+ | |||
+ | * Can't get it to work in RI or Metro! | ||
+ | * '''mgrebac''': "You can have a look under cycle-recovery sample in jaxb sources or jaxb release artifacts." | ||
+ | * http://jaxb.java.net/guide/Mapping_cyclic_references_to_XML.html | ||
+ | * http://www.java.net/node/654639 | ||
+ | |||
+ | == Completed == | ||
+ | |||
+ | === XmlLocation === | ||
* '''COMPLETE''' | * '''COMPLETE''' | ||
Line 17: | Line 33: | ||
* Would give the user more information after unmarshalling, could be useful in WSDL environments, or other times when JAXB XML data may be embedded within other XML | * Would give the user more information after unmarshalling, could be useful in WSDL environments, or other times when JAXB XML data may be embedded within other XML | ||
− | == NamespacePrefixMapper == | + | === NamespacePrefixMapper === |
* '''COMPLETE''' | * '''COMPLETE''' | ||
Line 25: | Line 41: | ||
* Custom Mapper would be provided via Marshaller properties | * Custom Mapper would be provided via Marshaller properties | ||
− | == IDResolver == | + | === IDResolver === |
* '''COMPLETE (but still need to support Sun property names)''' | * '''COMPLETE (but still need to support Sun property names)''' | ||
Line 34: | Line 50: | ||
*'''mgrebac''': "Need to look into this one further." | *'''mgrebac''': "Need to look into this one further." | ||
− | == IndentString == | + | === IndentString === |
− | * COMPLETE | + | * '''COMPLETE''' |
* Documentation: http://wiki.eclipse.org/EclipseLink/Development/370574 | * Documentation: http://wiki.eclipse.org/EclipseLink/Development/370574 | ||
* Bug: https://bugs.eclipse.org/bugs/show_bug.cgi?id=370574 | * Bug: https://bugs.eclipse.org/bugs/show_bug.cgi?id=370574 | ||
Line 42: | Line 58: | ||
* Allows the user to customize the indenting that happens in marshalled documents | * Allows the user to customize the indenting that happens in marshalled documents | ||
− | == CharacterEscapeHandler == | + | === CharacterEscapeHandler === |
− | * COMPLETE | + | * '''COMPLETE''' |
* Documentation: http://wiki.eclipse.org/EclipseLink/Development/370589 | * Documentation: http://wiki.eclipse.org/EclipseLink/Development/370589 | ||
* Bug: https://bugs.eclipse.org/bugs/show_bug.cgi?id=370589 | * Bug: https://bugs.eclipse.org/bugs/show_bug.cgi?id=370589 | ||
Line 51: | Line 67: | ||
* Not applicable when marshalling to: XMLStreamWriter, XMLEventWriter, ContentHandler, Node | * Not applicable when marshalling to: XMLStreamWriter, XMLEventWriter, ContentHandler, Node | ||
− | == | + | == Future == |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | == <strike>OverrideAnnotationOf</strike> == | + | === <strike>OverrideAnnotationOf</strike> === |
*Allows for more flexible mapping (?) | *Allows for more flexible mapping (?) | ||
Line 70: | Line 75: | ||
*'''mgrebac''': "The above annotation was actually used only for a very specific case of supporting usecase with XmlMixed, and is actually even not expected to be used outside of xjc." | *'''mgrebac''': "The above annotation was actually used only for a very specific case of supporting usecase with XmlMixed, and is actually even not expected to be used outside of xjc." | ||
− | == <strike>Locatable</strike> == | + | === <strike>Locatable</strike> === |
*Seems to be mainly used internally by the RI | *Seems to be mainly used internally by the RI | ||
Line 76: | Line 81: | ||
*'''mgrebac''': "No, this is as well not meant to be user feature, is usable for xjc itself and plugins to point to correct source when there is a failure." | *'''mgrebac''': "No, this is as well not meant to be user feature, is usable for xjc itself and plugins to point to correct source when there is a failure." | ||
− | == <strike>XmlIsSet</strike> == | + | === <strike>XmlIsSet</strike> === |
*Doesn't work in RI | *Doesn't work in RI | ||
*Deprecated in the RI, no need to implement since we have XmlIsSetNullPolicy? | *Deprecated in the RI, no need to implement since we have XmlIsSetNullPolicy? | ||
*'''mgrebac''': "Correct - deprecated, unused, we shall be able to remove it safely at this point actually." | *'''mgrebac''': "Correct - deprecated, unused, we shall be able to remove it safely at this point actually." |
Revision as of 11:36, 23 February 2012
Design Documentation: JAXB Extensions
In the current JAXB RI, developed by Sun, there are a series of "proprietary" JAXB extensions that are available to provide advanced JAXB functionality outside of the JAXB spec (these extension classes reside in the com.sun.xml.bind package).
This page will track the various JAXB Extensions that we want to bring into MOXy.
Jan. 2012: Other extension properties: http://jaxb.java.net/2.2/docs/vendorProperties.html
To Do
AccessorFactory
- Added for the benefit of Hibernate users
- Difficult to implement, no documentation, can be replaced by @XmlJavaTypeAdapter
CycleRecoverable
- Can't get it to work in RI or Metro!
- mgrebac: "You can have a look under cycle-recovery sample in jaxb sources or jaxb release artifacts."
- http://jaxb.java.net/guide/Mapping_cyclic_references_to_XML.html
- http://www.java.net/node/654639
Completed
XmlLocation
- COMPLETE
- Documentation: http://wiki.eclipse.org/EclipseLink/Development/355766
- Bug: https://bugs.eclipse.org/bugs/show_bug.cgi?id=355766
- Would give the user more information after unmarshalling, could be useful in WSDL environments, or other times when JAXB XML data may be embedded within other XML
NamespacePrefixMapper
- COMPLETE
- Bug: https://bugs.eclipse.org/bugs/show_bug.cgi?id=357266
- Allows the user to customize the namespace prefixes that are generated
- Could create our own NamespacePrefixMapper that users could subclass
- Custom Mapper would be provided via Marshaller properties
IDResolver
- COMPLETE (but still need to support Sun property names)
- Documentation: http://wiki.eclipse.org/EclipseLink/Development/360249
- Bug: https://bugs.eclipse.org/bugs/show_bug.cgi?id=360249
- Exampe: http://weblogs.java.net/blog/kohsuke/archive/2005/08/pluggable_ididr.html
- IDResolver works for Kohsuke's first example (Distinctive Symbol Spaces) but the combination with Unmarshall.Listener doesn't seem to work (Scoped Symbol Spaces)
- mgrebac: "Need to look into this one further."
IndentString
- COMPLETE
- Documentation: http://wiki.eclipse.org/EclipseLink/Development/370574
- Bug: https://bugs.eclipse.org/bugs/show_bug.cgi?id=370574
- Exampe: http://jaxb.java.net/2.2/docs/vendorProperties.html#indent
- Allows the user to customize the indenting that happens in marshalled documents
CharacterEscapeHandler
- COMPLETE
- Documentation: http://wiki.eclipse.org/EclipseLink/Development/370589
- Bug: https://bugs.eclipse.org/bugs/show_bug.cgi?id=370589
- Exampe: http://jaxb.java.net/2.2/docs/vendorProperties.html#charescape
- Allows the user to customize the escaping of special characters
- Not applicable when marshalling to: XMLStreamWriter, XMLEventWriter, ContentHandler, Node
Future
OverrideAnnotationOf
- Allows for more flexible mapping (?)
- Doesn't work if the field to override is not named "content", customization doesn't work (RI)
- mgrebac: "The above annotation was actually used only for a very specific case of supporting usecase with XmlMixed, and is actually even not expected to be used outside of xjc."
Locatable
- Seems to be mainly used internally by the RI
- Interface only defines get methods... is user resonsible for setting up com.sun.xml.bind.v2.runtime.Location objects? Is this even meant to be a user-feature?
- mgrebac: "No, this is as well not meant to be user feature, is usable for xjc itself and plugins to point to correct source when there is a failure."
XmlIsSet
- Doesn't work in RI
- Deprecated in the RI, no need to implement since we have XmlIsSetNullPolicy?
- mgrebac: "Correct - deprecated, unused, we shall be able to remove it safely at this point actually."