是否可以xsd:complexType
包含xsd:sequence
和xsd:element
?
<xsd:complexType name="employeesType" mixed="true">
<xsd:sequence>
<xsd:element name="employee" type="employeeType"
maxOccurs="unbounded" minOccurs="0" />
</xsd:sequence>
<!-- ERROR
<xsd:element name="responseTime" type="responseTimeType"></xsd:element>
-->
</xsd:complexType>
答案 0 :(得分:1)
正如您在上面的示例中所示,不允许<xsd:element />
作为<xsd:complexType />
的直接子项(请参阅reference at w3schools.com)。考虑到previous question中的示例,我认为您可以使用这样的模式实现您想要做的事情:
<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="root">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="date" type="xsd:string" />
<xsd:element name="responseTime" type="xsd:decimal" />
<xsd:element name="employee" minOccurs="0" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="name" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
这将验证您的示例代码:
<?xml version="1.0"?>
<root>
<date> 9:51 AM 10/10/2012 </date>
<responseTime> 1.20</responseTime>
<employee>
<name> Mohammad</name>
</employee>
<employee>
<name> Ali</name>
</employee>
<employee>
<name> Mostafa</name>
</employee>
<employee>
<name> Mahmoud</name>
</employee>
</root>
您可能希望将<date />
的类型更改为xsd:date
。