我有一个XML,如下所示,其中Items的数量可以从0到n不等。有没有办法编写XSD来验证Schema。
<?xml version="1.0" encoding="utf-8" ?>
<ShoppingItems>
<CustomerName>John</CustomerName>
<Address>Walstreet,Newyork</Address>
<Item1>Milk</Item1>
<Price1>1$</Price1>
<Item2>IceCream</Item2>
<Price2>1$</Price2>
<Item3>Bread</Item3>
<Price3>1$</Price3>
<Item4>Egg</Item4>
<Price4>1$</Price4>
<Item..n>Egg</Item..n>
<Price..n>1$</Price..n>
</ShoppingItems>
答案 0 :(得分:1)
不是目前的形式。 XSD定义非常严格 - 在上面的例子中,您将指定每个可能的ShoppingItems类型(包括Item..n和Price..n),这当然是不可能的。
更好的方法是更改XML文件,使其更具逻辑结构:
<?xml version="1.0" encoding="utf-8" ?>
<ShoppingItems>
<CustomerName>John</CustomerName>
<Address>Walstreet,Newyork</Address>
<Items>
<Item price="1$">Milk</Item>
<Item price="3$">IceCream</Item>
<Item price="1$">Bread</Item>
<Item price="1.5$">Egg</Item>
</Items>
</ShoppingItems>
现在完全可以使用模式定义此文档。