元素类型“xs:element”必须后面跟有属性规范,“>”或“/>”
问题描述:
XML Schema存在问题。它导致验证错误,我想知道问题是什么。元素类型“xs:element”必须后面跟有属性规范,“>”或“/>”
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="row">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="abstract"/>
<xs:element type="xs:string" name="bibliography"/>
<xs:element type="xs:string" name="catno"/>
<xs:element type="xs:string" name="citation"/>
<xs:element type="xs:string" name="copyrightnotice"/>
<xs:element type="xs:string" name="description"/ minOccurs="0" maxOccurs="unbounded"/>
<xs:element type="xs:string" name="image"/>
<xs:element type="xs:string" name="metadatamodificationdate"/>
<xs:element type="xs:byte" name="pagetotal"/>
<xs:element type="xs:string" name="publisher"/>
<xs:element type="xs:string" name="publishercity"/>
<xs:element type="xs:string" name="publishercountry"/>
<xs:element type="xs:string" name="sponsor"/>
<xs:element type="xs:string" name="title"/>
<xs:element type="xs:string" name="titlelargerentity"/>
<xs:element type="xs:float" name="datemonth"/>
<xs:element type="xs:string" name="datetype"/>
<xs:element type="xs:float" name="dateyear"/>
<xs:element type="xs:string" name="era"/>
<xs:element type="xs:string" name="language" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute type="xs:byte" name="modid"/>
<xs:attribute type="xs:short" name="recordid"/>
</xs:complexType>
</xs:element>
</xs:schema>
代码中的xsd:schema
有什么问题?有什么缺失?由于第2行不能验证?
答
当元素声明结构不良时会出现此错误。查找不属于元素声明的字符或关键字。
在你的情况下,你在description
声明中有一个流浪/
。
变化
<xs:element type="xs:string" name="description"/ minOccurs="0" maxOccurs="unbounded"/>
到
<xs:element type="xs:string" name="description" minOccurs="0" maxOccurs="unbounded"/>
,你将消除错误。