我有以下需求,并且正在尝试确定如何最好地对XSD建模来表示这些需求。
我的示例XML如下所示:
<Langauge>
<0>English</0>
<1>Dutch</1>
<2>French</2>
..
..
</Language>Langauge标签中的元素数量是不同的,但元素总是按顺序排列的。
对于如何为上述需求定义XSD,有什么建议吗?
发布于 2014-08-14 22:19:49
不可能。
Valid XML element names cannot begin with a digit。因此,根据定义,不能合法地定义名为<1>的标记。
如果您将标记重命名为类似于tag0、tag1、tag2等的名称,那么这将是可行的。您可以将语言定义为按该顺序排列的元素序列,其中所有元素都是可选的。请注意,这仍然允许使用后跟tag4的tag0 (中间没有1、2或3),但它们将按顺序排列。
最后--即使到那时,你也不应该这样做。通过要求这些元素按顺序排列,您正在尝试将数组编号放入元素名称中,而您不应该尝试这样做。相反,只需创建相同的元素(类似于LanguageName),然后使用它的相对子位置作为您想要的数字。例如:
<Language>
<LanguageName>English</LanguageName>
<LanguageName>French</LanguageName>
</Language>在任何XML处理框架中,知道English=0和French=1 (父级下子级索引)都很简单。所以我会问,是否有一个好的建模理由想要把这个升序数字放到元素名称中。
https://stackoverflow.com/questions/25307007
复制相似问题