XML:不能具有提供模式的多个元素

问题描述:

我现在对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元素,但它给了我同样的错误。

maxOccurs的默认值为1。如果你希望你的XSD允许多个car元素,比1unbounded更高的附加价值maxOccurs

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