2016-11-16 43 views
1

我現在對XML和學習XML Schema有點新鮮。我遇到了問題,我無法使用提供的XML模式創建多個car元素。XML:不能具有提供模式的多個元素

現在我有一個簡單的模式是這樣的:

<?xml version="1.0" encoding="utf-8"?> 
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 
      targetNamespace="http://www.cars.lt" 
      xmlns="http://www.cars.lt" 
      elementFormDefault="qualified" 
      xmlns:carsType="http://www.cars.lt"> 

    <xs:element name="cars" type="carsType:CarType"> 
    </xs:element> 

    <xs:complexType name ="CarType"> 
    <xs:sequence> 
     <xs:element name="car" type="carsType:CarWithBrandAndModel"> 
     <xs:key name="carKey"> 
      <xs:selector xpath="car"/> 
      <xs:field xpath="@id"/> 
     </xs:key> 
     <xs:keyref name="NoCarsRef" refer="carKey"> 
        <xs:selector xpath="noCar" /> 
        <xs:field xpath="@id" /> 
       </xs:keyref> 
     </xs:element> 
    </xs:sequence> 
    </xs:complexType> 

這種模式產生的時候,而不是我需要有一個以上的只有一輛車的元素。

當我試圖創建兩個<car>元素它給了我這個元素cars具有無效的子元素car在命名空間http://www.cars.lt錯誤。

我試過的是將CarType複雜類型插入cars元素,但它給了我同樣的錯誤。

回答

1

maxOccurs的默認值爲1。如果你希望你的XSD允許多個car元素,比1unbounded更高的附加價值maxOccurs

<xs:element name="car" type="carsType:CarWithBrandAndModel" maxOccurs="unbounded">