Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 1017385
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 16, 20262026-05-16T10:41:45+00:00 2026-05-16T10:41:45+00:00

How can I unmarshal a message that was marshalled using a QName local part

  • 0

How can I unmarshal a message that was marshalled using a QName local part different then what is expected?

My example is below:

Given an object to unmarshal that has been created using a marshal method such as

     marshaller.marshal( new JAXBElement(
                        new QName("urn:somenamespace","DifferentNameMessage"), 
                        OriginalMessageType.class, 
                        originalMsg), 
                   result);

(As I understand this code snippet, the QName is indicating to make the root element use a substitue name tag other than what is specified
in the original schema. Essentially using a substitute name method. For instance, in the QName above the original
tag would have been “NameMessage” but the message was marshalled using local part “DifferentNameMessage”.)

I would normally use a method of unmarshalling such as:

     String xmlString = convertStreamToString(in);
     final StringReader xmlReader = new StringReader(xmlString);
     final StreamSource xmlSource = new StreamSource(xmlReader);         

     JAXBContext jaxbContext = JAXBContext.newInstance(OriginalMessageType.class);
     Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
     JAXBElement ret = null;
     ret = unmarshaller.unmarshal(xmlSource, OriginalMessageType.class);

But, if I use this method then the JAXBElement ret name is for the QName that was use to marshalled it, yet the DeclaredType is for
OriginalMessageType.class and the unmarshalled message contains null element values for the expected sub-elements, even though
the original message contains valid values for these sub-elements.

i am wondering if it is possible to specifiy the substitute QName during unmarshalling to indicate that it is a substitute and then to use the original tag in its place?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-16T10:41:46+00:00Added an answer on May 16, 2026 at 10:41 am

    The following is correct:

    ret = unmarshaller.unmarshal(xmlSource, OriginalMessageType.class); 
    

    Is this how you made your JAXBContext when your marshalled?

    JAXBContext jaxbContext = JAXBContext.newInstance(OriginalMessageType.class);  
    

    Things to try:

    1. Did you verify the marshalled document is correct?
    2. What happens when you use the same JAXBContext for both marshal and unmarshal?
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

Can I connect to a Ubuntu server, that is running MySQL using ADO.NET or
Can somebody point me to a resource that explains how to go about having
Can a LINQ enabled app run on a machine that only has the .NET
Can anyone tell me how I can display a status message like 12 seconds
I'm using Castor to marshal/unmarshal my Java objects, one of which contains an EnumMap.
I am using JAXB to unmarshal an XML file into an object tree. The
Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) I have a Rails
I have a new web app that is packaged as a WAR as part
When using JAXB with Java-First, fields/properties of type java.util.Date are marshalled and unmarshalled as
Using javax.xml.crypto.dsig, how do I unmarshal and validate an XMLSignature without specifying the public

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.