我们如何将属性放在XML模式中的元素中?

时间:2013-04-06 07:15:06

标签: xml xsd

<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
            targetNamespace="http://www.google.com"
            xmlns="http://www.google.com"
            elementFormDefault="qualified">
<xsd:element name ="students">

    <xsd:simpleContent>
        <xsd:extension base="xsd:string">
            <xsd:attribute name="IDNUMBER" type="integer" use="required"/>
        </xsd:extension>
    </xsd:simpleContent>

    <xsd:complexType>
        <xsd:sequence>
            <xsd:element name ="guy">
                <xsd:complexType>
                    <xsd:sequence>
                    </xsd:sequence>
                </xsd:complexType>
            </xsd:element>
        </xsd:sequence>
    </xsd:complexType>
</xsd:element>
</xsd:schema>

我不太明白为什么它不起作用。我尝试了放置属性和东西,但是我得到了所有类似的错误,这些错误似乎与实际上的错误无关。早些时候,我得到了Error3033:内容无效。预期是(注释?,(元素|组|选择|序列|任何)*)。现在,我得到了别的东西。

1 个答案:

答案 0 :(得分:0)

您同时在<xsd:simpleContent>标记内使用<xsd:complexType><xsd:element>。这是不可能的,要么您的新元素<students>具有 simpleContent ,要么是 complexType 。见3.3.2 XML Representation of Element Declaration Schema Components

  

内容:(注释?,((simpleType | complexType)?, alternative *,(unique | key | keyref)*))

决定您要使用哪一个( simpleType ComplexType )并使用(其中一个)。