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
元素,比1
或unbounded
更高的附加价值maxOccurs
:
<xs:element name="car" type="carsType:CarWithBrandAndModel" maxOccurs="unbounded">