<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="game">
<xsd:complexType>
<xsd:all>
<xsd:element name="info" type="infoType" minOccurs="0"/>
</xsd:all>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="infoType">
<xsd:sequence>
<xsd:element name="name" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="players" minOccurs="0" maxOccurs="1">
<xsd:complexType mixed="true">
<xsd:attribute name= "number" type="playernum"/>
<!-- xsd:element name="screenname" type="xsd:string">
<xsd:complexType>
<xsd:attribute name= "player" type="playernum"/>
</xsd:complexType>
</xsd:element -->
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:simpleType name="playernum">
<xsd:restriction base="xsd:int">
<xsd:minInclusive value="1"/>
<xsd:maxInclusive value="4"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:schema>infoType
有问题的代码是注释过的代码。
它产生错误输出:
game.xsd:26: element element: Schemas parser error : Element '{http://www.w3.org/2001/XMLSchema}complexType': The content is not valid. Expected is (annotation?, (simpleContent | complexContent | ((group | all | choice | sequence)?, ((attribute | attributeGroup)*, anyAttribute?)))).
但是有问题的元素包含一个complextType,默认情况下它具有complexContent。 非常欢迎任何帮助,提前致谢。
最佳答案
我想说你缺少一个xsd:sequence
,而且screenname
不能是xsd:string
和complexType
同时 - 您必须选择其中之一。
这可能就是您所需要的:
<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="game">
<xsd:complexType>
<xsd:all>
<xsd:element name="info" type="infoType" minOccurs="0"/>
</xsd:all>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="infoType">
<xsd:sequence>
<xsd:element name="name" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="players" minOccurs="0" maxOccurs="1">
<xsd:complexType mixed="true">
<xsd:sequence>
<xsd:element name="screenname">
<xsd:complexType mixed="true">
<xsd:attribute name= "player" type="playernum"/>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:attribute name= "number" type="playernum"/>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:simpleType name="playernum">
<xsd:restriction base="xsd:int">
<xsd:minInclusive value="1"/>
<xsd:maxInclusive value="4"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:schema>
关于xml - XSD 嵌套元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9829510/