我正在编写xsd和验证代码,因此我在这里有很好的控制。
我想要一个上传功能,可以根据xml文件向我的应用程序添加内容。 xml文件的一部分应该根据其另一部分中的某个值来验证不同模式。以下是一个示例以说明:
在这个情况下,
执行解析/验证的代码是用Java编写的。不确定解决方案是否与语言相关。
理想情况下,解决方案将允许xml作者声明适当的模式位置等,以便他/她可以在足够智能的编辑器中即时验证xml。
此外,
此外,如果可能的话,我更喜欢不将bar-config和baz-config拆分为单独的xml文件。我意识到这可能会使所有问题变得容易,因为每个xml文件都将有一个单独的模式,但我正在尝试看是否有一个良好的单个xml文件解决方案。
我想要一个上传功能,可以根据xml文件向我的应用程序添加内容。 xml文件的一部分应该根据其另一部分中的某个值来验证不同模式。以下是一个示例以说明:
<foo>
<name>Harold</name>
<bar>Alpha</bar>
<baz>Mercury</baz>
<!-- ... more general info that applies to all foos ... -->
<bar-config>
<!-- the content here is specific to the bar named "Alpha" -->
</bar-config>
<baz-config>
<!-- the content here is specific to the baz named "Mercury" -->
</baz>
</foo>
在这个情况下,
<bar>
的内容有一些受控词汇,我可以处理那一部分。然后,根据bar的值,应该使用适当的xml模式来验证bar-config的内容。baz和baz-config同理。执行解析/验证的代码是用Java编写的。不确定解决方案是否与语言相关。
理想情况下,解决方案将允许xml作者声明适当的模式位置等,以便他/她可以在足够智能的编辑器中即时验证xml。
此外,
<bar>
和<baz>
的可能值是正交的,因此我不想为每个可能的bar/baz组合都进行扩展。我的意思是,如果有24个可能的bar值/模式和8个可能的baz值/模式,则我想能够编写1 + 24 + 8 = 33个总模式,而不是1 * 24 * 8 = 192个总模式。此外,如果可能的话,我更喜欢不将bar-config和baz-config拆分为单独的xml文件。我意识到这可能会使所有问题变得容易,因为每个xml文件都将有一个单独的模式,但我正在尝试看是否有一个良好的单个xml文件解决方案。