使用XSD进行XML Schema验证

时间:2012-07-12 06:18:05

标签: xsd xsd-validation

我有一个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> 

1 个答案:

答案 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> 

现在完全可以使用模式定义此文档。