2011-11-16 60 views
1

我需要補充的是嵌套在另一個對象的schemaLocation屬性,XML的JAXB設置的schemaLocation

我有一個類...

... 
@XmlRootElement(name = "Comp") 
public class Comp { 
... 

此類設置Marshaller.JAXB_SCHEMA_LOCATION我馬歇爾對象和它的偉大工程,但現在是具有這樣的特性另一個類...

@XmlRootElement(name = "TSAT") 
public class TSAT { 
... 
@XmlAnyElement(lax = true) 
    protected Object any; 
... 

,然後我設置道具erty與比較的一個實例,設置屬性Marshaller.JAXB_SCHEMA_LOCATION也增加了的schemaLocation屬性,但對於TSAT元素,我希望它爲比較元素

我試着編組Comp元素,然後將它設置在任何屬性上,然後編組TSAT,但我把Comp包裝在標籤內。

我想要什麼:

<TSAT> 
    <Comp schemaLocation="uri"> 
    ... 
    </Comp> 
</TSAT> 

我得到什麼:

<TSAT schemaLocation="uri"> 
    <Comp> 
    ... 
    </Comp> 
</TSAT>  

<TSAT> 
    <any> 
    &amp;lt;Comp schemaLocation="uri"&amp;gt; 
    ... 
    &amp;lt;/Comp&amp;gt; 
    </any> 
</TSAT> 

回答

0

你有沒有嘗試使用不同的沼澤阿勒斯?即編組對象的一個​​編組者。此編組器具有xmlschema屬性。在DOMResult中編組JAXBElement。然後在Tsat.any對象中設置DOMResult中的元素,然後使用另一個編組器來編組Tsat。我不能保證它會起作用,但值得嘗試。

+0

要求評論中的其他信息,然後在有這些信息時作出回答。否則,這是沒有用的。 – itsbruce