Используя JAXB, маршал вложил элемент в JAVA - PullRequest
0 голосов
/ 20 февраля 2019

Я хотел бы получить результат XML, как показано ниже, который использует JAXB для получения объекта Java.

<Mall>
  <ProductInfo>
     <Product>
       <name>chair</name>
       <price>150</price>
     </Product>
 </ProductInfo>
</Mall>

Чтобы получить этот результат, я создал 3 класса Java, которые

  1. Определить XmlRootElement, XmlElement
  2. компонент продукта (получатель / установщик)
  3. Основной класс, который вставляет значение компонента

Inтаким образом, я мог сделать только 3 глубины, используя XmlRootElement, XmlElement, Компонент продукта.

Следовательно, мне нужна еще одна глубина. Я попытался использовать XmlElementWrapper, чтобы дать еще одну глубину,но произошла ошибка относительно того, что это не атрибут сбора ...

Пожалуйста, помогите мне решить эту проблему ...

1 Ответ

0 голосов
/ 20 февраля 2019

Ниже приведена структура класса, которая должна работать

@XmlRootElement (name = "mall")
public class Mall {
    Mall(){  }

    @XmlElement(name="ProductInfo")
    private ProductInfo info; // must create getter and setter
    }
}

public class ProductInfo {  // you should be missing this
    ProductInfo(){
    }

    @XmlElement(name="Product")
    private List<Product> info; // must create getter and setter
    }
}

public class Product {
    Product(){
    }

    @XmlElement(name="name")
    private ProductInfo info; // must create getter and setter

    @XmlElement(name="price")
    private ProductInfo info; // must create getter and setter

    }
}
...