具有指定模式的JAXB Marshaller

时间:2010-12-17 18:00:24

标签: java xsd jaxb

我想在我编组的每个xml文件中定义模式。然后在解组过程中获取此模式(路径字符串)。仅marshaller.setSchema()

  

允许调用者在编组时验证编组的XML。

是的,我可以为此目的编写额外的bean,但我希望得到像xml一样的

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

1 个答案:

答案 0 :(得分:5)

要指定noNamespaceSchemaLocation,您可以执行以下操作:

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