在将以下XML文件验证到下面的架构时,我收到以下错误。
错误:元素“{http://www.w3.org/2001/XMLSchema}序列”:内容无效。预期是(注释?,(元素|组|选择|序列|任何)*)。第7行
XML文件:
<?xml version="1.0"?>
<!DOCTYPE Employees>
<Employees xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="lab4_obj1.xsd">
<Employee>
<First>John</First>
<Last>Smith</Last>
<Phone>1-800-123-4567</Phone>
</Employee>
</Employees>
模式:
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Employees">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="Employee"/>
<xs:complexType>
<xs:sequence>
<xs:element name="First"/>
<xs:element name="Last"/>
<xs:element name="Phone"/>
</xs:sequence>
</xs:complexType>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
答案 0 :(得分:1)
对于初学者来说,在定义复杂类型之前你是自我结束Employee元素(因为你有一个/在“Employee”之后)
你应该在ComplexType之后结束它(见下文)。
<?xml version="1.0" encoding="utf-16"?>
<xs:schema xmlns="http://Scratch.Employees" xmlns:b="http://schemas.microsoft.com/BizTalk/2003" targetNamespace="http://Scratch.Employees" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Employees">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="Employee">
<xs:complexType>
<xs:sequence>
<xs:element name="First" type="xs:string" />
<xs:element name="Last" type="xs:string" />
<xs:element name="Phone" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
其次,XML示例似乎是指DTD,但您的架构是XSD。 因此,您需要删除它,并且可能会引用正确的名称空间。
<?xml version="1.0"?>
<ns0:Employees xmlns:ns0="http://Scratch.Employees">
<Employee>
<First>John</First>
<Last>Smith</Last>
<Phone>1-800-123-4567</Phone>
</Employee>
</ns0:Employees>