xml - 元素类型 "xs:element"后面必须跟有属性规范 ">"或 "/>"

标签 xml xsd xsd-validation xml-validation

XML 架构有问题。它导致验证错误,我想知道问题是什么。

<?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"/>

这样您就可以消除错误。

关于xml - 元素类型 "xs:element"后面必须跟有属性规范 ">"或 "/>",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40322043/

相关文章:

android - getContext 和 getResource 在 5.0 及更低版本之间的兼容性

xml - 在 Angularjs 2 HTTP GET 请求中将响应正文检索为纯文本或 xml

c++ - 需要一个非常简单的示例,用于用 C 或 C++ 解析和编写 XML 文档

validation - 在没有 ValidationEventHandler 的情况下根据架构验证 XDocument(用于 HTTP 处理程序)

xsd - 对 xml 模式中的元素同时具有属性和限制

java - 从/src/main/resources加载文件

xml - 如何使用 java 和 Eclipse 从 XML 文件创建 XSD?

xml - 无法使用PowerShell加载XML文档

java - 如何获取 XSD 文件中未定义的所有 XML 元素的列表

c# - 使用 XSD 验证 XML 时忽略提供的命名空间