[
https://issues.apache.org/jira/browse/CXF-5072?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13679123#comment-13679123
]
Sergey Beryozkin commented on CXF-5072:
---------------------------------------
I'm afraid not and I apologize I did not get what exactly you were after.
Neither JSONProvider nor Jettison understand how a given object representation
is qualified, it can not optimize smartly the way you suggest.
I can only recommend you try and register a custom XMLStreamWriter, this is
easy to do, for example look at a custom writer in
http://svn.apache.org/repos/asf/cxf/trunk/rt/rs/extensions/providers/src/main/java/org/apache/cxf/jaxrs/provider/json/utils/JSONUtils.java
You can register it by extending JSONProvider
In this provider, you can use the domain knowledge and block namespaces on
certain elements only.
XMLStreamReader can similarly be added
> Add capability in Jettison to default the namespace
> ---------------------------------------------------
>
> Key: CXF-5072
> URL: https://issues.apache.org/jira/browse/CXF-5072
> Project: CXF
> Issue Type: Improvement
> Components: JAX-RS, JAXB Databinding
> Affects Versions: 2.5.2
> Reporter: Tom Stark
> Attachments: apache-cxf-issue.zip
>
>
> When using Jettison, it would be preferable to configure Jettison to allow
> for the namespace to be the same as what was last used. For example,
> attached is a simple user object that has a long namespace name. I can use
> Jettison to alias the namespace to something shorter but I still need to
> fully-qualify all members of the user object in JSON for Jettison to properly
> marshal all of the fields to the java object.
> For example:
> {"user.user":{"user-role.user-role":{"user-role.name":"admin"},"user.username":"fred","user.first-name":"Fred",
> "user.last-name":"Person"}}
> What is preferable is:
> {"user.user":{"user-role.user-role":{"name":"admin"},"username":"fred","first-name":"Fred",
> "last-name":"Person"}}
> In this case, the beginning of a new namespace is used for objects that need
> it. After the object is defined, the namespace reverts to the previous
> namespace.
> Output is fine since the "ignoreNamespace" strips all namespaces and the
> resulting JSON is:
> {"user":{"user-role":{"name":"admin"},"username":"fred","first-name":"Fred","last-name":"Person"}}
> Note that the attachments have been edited to remove proprietary information
> and probably will not compile by themselves.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira