<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<InstanceTree xmlns="http://www.testsite.org/Schemas/xyzSchema">
  <Instance id="inst0" depth="1">
    <UserData type="Instance">
      <userValue title="occurrenceUUID" value="abc/>
    </UserData>
    <UserData type="Part" name="pqr">
      <UserValue title="PartNumber" value="MTG_238_ZB_LACKIERUNG" />
     </UserData>
</Instance>
</InstanceTree>


    @XmlRootElement(name = "InstanceTree")
    public class InstanceTree {
    }
    @XmlRootElement(name = "Instance")
    public class Instance {

     private List<Userdata> userdata;
     @XmlElement
     public List<Userdata> getUserdata() {
         return userdata;
     }
    }

    @XmlRootElement(name = "UserValue")
    public class UserValue {
      private List<UserValue> userValue;
      @XmlElement
      public List<UserValue> getUserValue() {
       return userValue;
      }
    }

    @XmlRootElement(name = "UserData")
    public class Userdata {
    }



在xml中,为大写实例Instance,UserData,UserValue提供NullPointerException。
给xmlns =“ http://www.testsite.org/Schemas/abcSchema”错误。删除网址后工作正常。

最佳答案

使用@XmlElement(name="Userdata"),否则jaxb使用属性名称。

 @XmlRootElement(name = "Instance")
 public class Instance {

    private List<Userdata> userdata;
    @XmlElement(name = "Userdata")
    public List<Userdata> getUserdata() {
     return userdata;
    }
  }


也使用package-info.java

@javax.xml.bind.annotation.XmlSchema(
    namespace = "http://www.testsite.org/Schemas/abcSchema",
    elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED,
    xmlns = {
        @javax.xml.bind.annotation.XmlNs(prefix = "", namespaceURI = "http://www.testsite.org/Schemas/abcSchema")
    }
)
package com.your.package;

09-04 03:31
查看更多