我需要添加嵌套在另一个对象上的schemaLocation属性
我有一个班级......
...
@XmlRootElement(name = "Comp")
public class Comp {
...
我设置了此类设置 Marshaller.JAXB_SCHEMA_LOCATION 的对象并且效果很好,但是现在有另一个类具有这样的属性......
@XmlRootElement(name = "TSAT")
public class TSAT {
...
@XmlAnyElement(lax = true)
protected Object any;
...
然后我使用Comp实例设置该属性,设置属性 Marshaller.JAXB_SCHEMA_LOCATION 确实添加 schemaLocation 属性但是对于 TSAT元素我想要 Comp元素。
我尝试编组Comp元素,然后在任何属性上设置它,然后编组TSAT,但我将Comp包装在标记内。
我想要的是什么:
<TSAT>
<Comp schemaLocation="uri">
...
</Comp>
</TSAT>
我得到了什么:
<TSAT schemaLocation="uri">
<Comp>
...
</Comp>
</TSAT>
或
<TSAT>
<any>
&lt;Comp schemaLocation="uri"&gt;
...
&lt;/Comp&gt;
</any>
</TSAT>
答案 0 :(得分:0)
你尝试过使用不同的marshallers吗?即一个编组人员,编组对象。这个marshaller有xmlschema属性。 DOMResult中的Marshal JAXBElement。并在Tsat.any对象中设置DOMResult中的元素,然后使用另一个marshaller编组Tsat。我不保证它会起作用,但值得尝试。