JAXB Marshaller с указанной схемой - PullRequest
4 голосов
/ 17 декабря 2010

Я хочу определить схему в каждом XML-файле, который я собираю. А затем получите эту схему (строку пути) в процессе демаршаллинга. marshaller.setSchema() только

позволяет вызывающей стороне проверять маршаллированный XML как маршаллированный.

Да, я могу написать дополнительный компонент для этой цели, но я хочу получить xml вроде

<root
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:noNamespaceSchemaLocation='bla-bla.xsd'>...

1 Ответ

5 голосов
/ 17 декабря 2010

Чтобы указать noNamespaceSchemaLocation, вы можете сделать следующее:

JAXBContext jc = JAXBContext.newInstance(Root.class);
Marshaller marshaller = jc.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_NO_NAMESPACE_SCHEMA_LOCATION, "bla-bla.xsd");
...