如何使用Java系统属性提供简单的数据结构

时间:2013-06-03 22:47:58

标签: java xml

我们有一个xml-parser(用Java实现),它解析xml文档,如下所示。

现在我们要在xml-parser中添加功能,允许用户从命令行覆盖xml文件中的值,即系统属性(-D property)。不应该以任何方式准备xml文件。

应该可以使用如下语法提供-D属性:

-Dxml.id0001=host:22.33.44.55,ports:6000;6001

XML的文件:

<resources> 
    <resource id="id001">
        <property name="host">123.234.34.56</property>
        <property name="ports">7000;7001</property>
    </resource>
    <resource id="id002">
        <property name="host">987.876.765.54</property>
    </resource>
</resources>

问题: 在-D属性中应使用哪些分隔符,以避免对xml文档中的数据施加约束?例如,在上面的例子中     7000; 7001 包含“;”在它的值,所以不能使用它作为分隔符。我希望xml数据能够包含任何独立于-D属性语法的数据。

这会是更好的语法吗?

-Dxml.id0001=<host>22.33.44.55<ports>6000;6001

因为XML中的文本值不允许使用“less / greater than”字符。

此外: 是否有任何现有的解析器库可以帮助解决这个问题?我搜索但找不到一个。

将来语法会更加先进,

-Dxml.*=<host>22.33.44.55<ports>6000;6001 // change host/port for any resource
-Dxml.*=<host<135.246.357.468>>22.33.44.55 // change host only for resources that has host=135.246.357.468

等。等

0 个答案:

没有答案