我使用Properties#storeToXML将java.util.Properties
转换为XML格式。但是,默认情况下,它会为其生成带有DTD架构的XML:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
...
</properties>
是否可以使用XSD架构?我该如何重新配置?
答案 0 :(得分:3)
使用默认类,似乎无法将doctype声明更改为基于XSD的方法。
但似乎有一种插件干扰XML存储行为的方式(至少在Java 8中):方法Properties.storeToXml
内部委托给加载 XmlPropertiesProvider
(来自包sun.util.spi
)。
通过检查系统属性“sun.util.spi.XmlPropertiesProvider”或(如果未找到)加载service loader mechanism来加载此属性提供程序。
使用这种方法,您可以自己实现XmlPropertiesProvider
(它是一个带有方法load
和store
的抽象类),并以您自己的方式执行这些XML部分。