2016-03-03 2 views
0
<?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 { 
    } 
  1. В XML дает NullPointerException для верхнего регистра Instance, UserData, UserValue.JAXB: Не workoing для XML ребенка тега с заглавной буквой

  2. Ошибка при передаче xmlns = "http://www.testsite.org/Schemas/abcSchema". работая отлично после извлекать url.

+0

Что ваш вопрос? – kirsty

ответ

1

Используйте @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; 
+0

Как использовать package-info.java? Вы можете объяснить ?? –

+0

'package-info.java' используется напрямую JAXB, у вас уже есть пример в моем ответе. Не стесняйтесь повышать! – Xstian

Смежные вопросы