XML Schema MaxOccurs和MinOccurs未验证

时间:2014-03-05 17:12:59

标签: xml validation schema xsd

我已经创建了一个XML Schema,它在我的一些元素上有MaxOccurs和MinOccurs,但是当我尝试验证它时会出现“91 s4s-att-not-allowed:属性'MaxOccurs'的错误不能出现在元素'element'中。“

以下是我的一个元素的示例:

从以前的帖子中,他们提到它需要按顺序排列。我很确定我已经完成了。

1 个答案:

答案 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>