我现在对XML和学习XML Schema不熟悉。我遇到了无法使用提供的xml架构创建多个car
元素的问题。
现在我有一个像这样的简单模式:
<?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元素,而我需要有多个。
当我尝试创建两个<car>
元素时,它会给我一个错误,即元素cars
在命名空间car
中包含无效的子元素http://www.cars.lt
。
我尝试将CarType复杂类型插入cars
元素,但它给了我同样的错误。
答案 0 :(得分:1)
maxOccurs
的默认值为1
。如果您希望XSD允许多个car
元素,请添加maxOccurs
,其值大于1
或unbounded
:
<xs:element name="car" type="carsType:CarWithBrandAndModel" maxOccurs="unbounded">