Note that there are some explanatory texts on larger screens.

plurals
  1. POCan not get the proper value after unmarshaling the XML using JAXB
    primarykey
    data
    text
    <p>I have following XML file and when I am unmarshaling the following XML using below JAVA code. </p> <p>I am not getting case-manager tag value. I fetch using innovation.getCasemanager(), I got NULL value. Actually that should be return 'dhocksta@umich.edu' value.</p> <p>I actually got this issue because case-manager tag contains XML Attributes. If it does not contain XML attribute then I can get the case-manager proper value.</p> <p>XML File :</p> <pre><code>&lt;innovation file_number="0269"&gt; &lt;title&gt;3D Static Strength Prediction Program&lt;/title&gt; &lt;brief_description&gt;3D Static Strength Prediction Program&lt;/brief_description&gt; &lt;categories/&gt; &lt;tags&gt; &lt;tag&gt;Healthcare&lt;/tag&gt; &lt;tag&gt;Manufacturing&lt;/tag&gt; &lt;tag&gt;_Other&lt;/tag&gt; &lt;/tags&gt; &lt;full_description&gt;test&lt;/full_description&gt; &lt;case_manager first_name="Doug" last_name="Hockstad"&gt;dhocksta@umich.edu&lt;/case_manager&gt; &lt;status&gt;Published&lt;/status&gt; &lt;/innovation&gt; </code></pre> <p>JAVA Code :</p> <pre><code>Unmarshaller unmarshaller = jc.createUnmarshaller(); unmarshaller.setSchema(schema); unmarshaller.setEventHandler(validation); Innovations innovation = (Innovations) unmarshaller.unmarshal(xmlSourceFileName); </code></pre> <p>Innovations.java</p> <pre><code>package com.test.innovation.validation; @XmlRootElement(name = "innovations") public class Innovations { private String organization; private List&lt;Innovation&gt; innovationList = new ArrayList&lt;Innovation&gt;(); /** * @return the organization */ @XmlElement(name = "organization") public String getOrganization() { return organization; } /** * @param organization * the organization to set */ public void setOrganization(String organization) { this.organization = organization; } /** * @return the innovationList */ @XmlElement(name = "innovation") public List&lt;Innovation&gt; getInnovationList() { return innovationList; } /** * @param innovationList * the innovationList to set */ public void setInnovationList(List&lt;Innovation&gt; innovationList) { this.innovationList = innovationList; } public void printRecord() { int i = 0; for (Innovation innovation : innovationList) { i++; String str = ""; System.out.println("-----------------------------------------------------------------------"); str = "\nFileNumber : " + innovation.getFileNumber(); str += "\nTitle : " + innovation.getTitle(); str += "\nBriefDescription : " + innovation.getBriefDescription(); if (innovation.getCategories() != null) { if (innovation.getCategories().getCategoryList() != null) { str += "\nCategories : " + innovation.getCategories().getCategoryList().toString(); } } if (innovation.getTags() != null) { if (innovation.getTags().getTagList() != null) { str += "\nTags : " + innovation.getTags().getTagList().toString(); } } str += "\nFullDescription : " + innovation.getFullDescription(); str += "\nCaseManager : " + innovation.getCaseManager(); str += "\nFirstName : " + innovation.getCaseManager().getFirstName(); str += "\nLastName : " + innovation.getCaseManager().getLastName(); str += "\nStatus : " + innovation.getStatus(); if (innovation.getPatentNumber() != null) { str += "\nPatentNumberInformation : " + innovation.getPatentNumber().toString(); } if (innovation.getPatentStatus() != null) { str += "\nPatentStatusInformation : " + innovation.getPatentStatus().toString(); } str += "\nOrganizationName : " + getOrganization(); System.out.println("Record Number " + i + " :: " + str); System.out.println(""); } } } </code></pre> <p>Innovation.java</p> <pre><code>package com.test.innovation.validation; @XmlType public class Innovation { private String fileNumber; private String title; private String briefDescription; private String fullDescription; private List&lt;String&gt; patentNumber = new ArrayList&lt;String&gt;(); private List&lt;String&gt; patentStatus = new ArrayList&lt;String&gt;(); private CaseManager caseManager; private Categories categories; private Tags tags; private String status; /** * @return the fileNumber */ @XmlAttribute(name = "file_number") public String getFileNumber() { return fileNumber; } /** * @param fileNumber * the fileNumber to set */ public void setFileNumber(String fileNumber) { this.fileNumber = fileNumber; } /** * @return the title */ @XmlElement(name = "title") public String getTitle() { return title; } /** * @param title * the title to set */ public void setTitle(String title) { this.title = title; } /** * @return the briefDescription */ @XmlElement(name = "brief_description") public String getBriefDescription() { return briefDescription; } /** * @param briefDescription * the briefDescription to set */ public void setBriefDescription(String briefDescription) { this.briefDescription = briefDescription; } /** * @return the fullDescription */ @XmlElement(name = "full_description") public String getFullDescription() { return fullDescription; } /** * @param fullDescription * the fullDescription to set */ public void setFullDescription(String fullDescription) { this.fullDescription = fullDescription; } /** * @return the caseManager */ @XmlElement(name = "case_manager") public CaseManager getCaseManager() { return caseManager; } /** * @param caseManager * the caseManager to set */ public void setCaseManager(CaseManager caseManager) { this.caseManager = caseManager; } /** * @return the status */ @XmlElement(name = "status") public String getStatus() { return status; } /** * @param status * the status to set */ public void setStatus(String status) { this.status = status; } /** * @return the categories */ @XmlElement(name = "categories") public Categories getCategories() { return categories; } /** * @param categories * the categories to set */ public void setCategories(Categories categories) { this.categories = categories; } /** * @return the tags */ @XmlElement(name = "tags") public Tags getTags() { return tags; } /** * @param tags * the tags to set */ public void setTags(Tags tags) { this.tags = tags; } /** * @return the patentNumber */ @XmlElement(name = "patent_number") public List&lt;String&gt; getPatentNumber() { return patentNumber; } /** * @param patentNumber * the patentNumber to set */ public void setPatentNumber(List&lt;String&gt; patentNumber) { this.patentNumber = patentNumber; } /** * @return the patentStatus */ @XmlElement(name = "patent_status") public List&lt;String&gt; getPatentStatus() { return patentStatus; } /** * @param patentStatus * the patentStatus to set */ public void setPatentStatus(List&lt;String&gt; patentStatus) { this.patentStatus = patentStatus; } } </code></pre> <p>CaseManager.java</p> <pre><code>package com.test.innovation.validation; import javax.xml.bind.annotation.XmlAttribute; public class CaseManager { private String firstName; private String lastName; /** * @return the firstName */ @XmlAttribute(name = "first_name") public String getFirstName() { return firstName; } /** * @param firstName * the firstName to set */ public void setFirstName(String firstName) { this.firstName = firstName; } /** * @return the lastName */ @XmlAttribute(name = "last_name") public String getLastName() { return lastName; } /** * @param lastName * the lastName to set */ public void setLastName(String lastName) { this.lastName = lastName; } } </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload