我使用jaxbforxml-to-java对象和子节点返回空值xml代码是
xmlns:tns="http://www.xxxxxx"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.xxxxxxx xxxx.xsd"
xmlns:ns0="http://www.xxxxx.com/xxxx/event/Common/EventCommon">
<eventCommon>
<ns0:application>xxxxx</ns0:application>
<ns0:companyId>xxxxxx</ns0:companyId>
<ns0:operator>xxxxxx</ns0:operator>
<ns0:today>xxxxxx</ns0:today>
<ns0:transactionStage>xxxxx</ns0:transactionStage>
<ns0:eventId>xxxxxxx</ns0:eventId>
<ns0:creationTime>2020-11-18T08:19:26.394</ns0:creationTime>
<ns0:customCommon name="xxxx" />
</eventCommon>```
Created java POJO when Unmarshaller getting null on eventCommon tag
root node ExternalUserFlow.java
```
@XmlRootElement(name = "ExternalUserFlow")
public class ExternalUserFlow {
@XmlElement(name = "eventCommon")
EventCommon EventCommonObject;
// Getter Methods
public EventCommon getEventCommon() {
return EventCommonObject;
}
// Setter Methods
public void setEventCommon(EventCommon eventCommonObject) {
this.EventCommonObject = eventCommonObject;
}
@Override
public String toString()
{
return "ExternalUserFlow [EventCommonObject = "+EventCommonObject+"]";
}
}
子节点java类
package xxx.com.pojo;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement(name = "eventCommon")
public class EventCommon {
Operator OperatorObject;
Today TodayObject;
// Getter Methods
@XmlElement(name="ns0:operator")
public Operator getOperator() {
return OperatorObject;
}
@XmlElement(name="ns0:today")
public Today getToday() {
return TodayObject;
}
// setter method
@Override
public String toString()
{
return "EventCommon[Operator = "+Operator +", Today = "+Today +"]";
}
}
//用于解组代码的java main
public class XMLtoObject {
public static void main(String args[]) throws XMLStreamException, IOException, SOAPException {
File xmlFile = new File("Userxml.xml");
JAXBContext jaxbContext;
try
{
System.out.println("inside"); jaxbContext =
JAXBContext.newInstance(ExternalUserFlow.class);
Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
ExternalUserFlow user = (ExternalUserFlow)
jaxbUnmarshaller.unmarshal(xmlFile);
System.out.println(user);
}
catch (JAXBException e)
{
e.printStackTrace();
}
}
}
已将架构位置添加到package.info中
@javax.xml.bind.annotation.XmlSchema (
xmlns = {
@javax.xml.bind.annotation.XmlNs(prefix = "tns",
namespaceURI="http://xxxxxxxx/ExternalUserFlow"),
@javax.xml.bind.annotation.XmlNs( prefix = "xsi",
namespaceURI="http://www.w3.org/2001/XMLSchema-instance"),
@javax.xml.bind.annotation.XmlNs( prefix = "ns0",
namespaceURI="http://xxxxxxx/Common/EventCommon"),
},
location = "http://xxxxxxxxxx ExternalUserFlow.xsd",
elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED
)
package xxx.com.pojo;
有人能告诉我值为空的原因吗?
请注意:1。我是jaxb的新手。我正在使用eclipseide。
暂无答案!
目前还没有任何答案,快来回答吧!