2012-07-12 141 views
0

我有一個如下所示的XML,其中項目的數量可以從0到n變化。有沒有辦法編寫XSD來驗證架構。使用XSD進行XML模式驗證

<?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

不是現在的形式。 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> 

現在是完全有可能這個文件與模式定義。