我已经尝试了几种为这个问题创建架构的方法,但我还没有取得任何成功。我不确定它是否可能。
基本上,假设我有一个根节点<root>
,它可以有子<A>
,<B>
和<C>
。
对于输出xml的程序的每次迭代,都会创建A,B和C节点并将其作为子节点附加到根节点。但是,每次迭代并不总是使用每个A,B和C ......在这种情况下,它不输出任何节点。所以我得到这样的例子:
<A>sfs</A> <!-- first iteration used A, B, and C -->
<B>sfs</B>
<C>ss</C>
<A>fff</A> <!-- second iteration used A, and C, not B -->
<C>ss</C>
<B>fff</B> <!-- third iteration used only B -->
我没有编写以这种方式输出它的程序,并且对该格式没有实际的权力。
例如,我所知道的是,永远不会超过10个A,2个C,5个B。虽然订单没有保证。
所以我想要的是一个XSD来确定根目录中只有A,B和C节点,并且不超过10个A,2个C和5个B&# 39; S
我可以通过使用xs:choice和maxOccurs unbounded来实现第一部分。这只能保证A,B和C节点,但我似乎无法想出一种方法来强制执行它们。
这个问题是否有一些聪明的解决方法?
答案 0 :(得分:1)
使用XSD验证此类结构并不是很多。 XSD非常严格。
您可能最好不要使用xml,然后在代码中对反序列化的实例进行一些检查。