2016-06-15 59 views
3

我使用Properties#storeToXMLjava.util.Properties轉換爲XML格式。但是,默認情況下,它會爲其生成XML和DTD模式:使用XSD模式描述'storeToXML'生成的Java屬性

<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd"> 
<properties> 
    ... 
</properties> 

是否可以使用XSD架構來代替它?我如何重新配置​​它?

+0

我將oracle文檔閱讀爲「它是DTD - 時期」。我沒有發現任何可以切換到XSD的提示。但是:文檔說,它不是真的「被使用」。這只是爲了唯一命名一個。所以對我來說,問題就出現了:你爲什麼要這麼做? – Fildor

+1

@Fildor我只想爲我的應用程序生成的每個XML保存一致性的XSD架構 –

回答

3

使用默認類,似乎沒有辦法將doctype聲明更改爲基於XSD的方法。

但似乎有interventing到XML存儲行爲(至少在Java中8)的插件方式:該方法Properties.storeToXml內部委託給加載XmlPropertiesProvider(從包sun.util.spi)。

該屬性提供程序可以通過檢查系統屬性「sun.util.spi.XmlPropertiesProvider」或(如果未找到)通過加載service loader mechanism加載它。

通過這種方法,你可以實現一個XmlPropertiesProvider自己(這是與方法loadstore一個抽象類),並以自己的方式做那些XML部分。

+0

而所有這些只是爲了「一致性」的原因?對我來說似乎有點過頭了。但找到可能性的榮譽! – Fildor