我已经创建了一个XML Schema,它在我的一些元素上有MaxOccurs和MinOccurs,但是当我尝试验证它时会出现“91 s4s-att-not-allowed:属性'MaxOccurs'的错误不能出现在元素'element'中。“
以下是我的一个元素的示例:
从以前的帖子中,他们提到它需要按顺序排列。我很确定我已经完成了。
答案 0 :(得分:3)
至少有两个问题:
1)错误
Attribute 'MaxOccurs' cannot appear in element 'element'."
解释一切。它是maxOccurs
。案件很重要。
2)您将enginesize
元素定义为简单类型(type="integer"
),同时将其定义为复杂类型(嵌套<complexType>
)。你不能同时拥有它们。
如果您希望enginesize
元素具有属性并且还接受整数作为简单内容,则必须将其定义为具有简单内容,并使用扩展来添加属性。
我相信你想要实现的是这样的:
<xsd:element name="enginesize" maxOccurs="2">
<xsd:complexType mixed="true">
<xsd:simpleContent>
<xsd:extension base="xsd:integer">
<xsd:attribute name="unit" use="required">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="CC"/>
<xsd:enumeration value="CL"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>