根模式没有匹配的全局声明的验证错误

Validation error with no matching global declaration for root schema

我知道有很多此类错误的实例,但这些类型的验证错误对我来说意义不大

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

  <xs:element name="Artwork">
     <xs:complexType>
      <xs:sequence>

        <xs:element name="title" type="xs:string"/>
        <xs:element name="media" type="xs:string"/>
        <xs:element name="description" type="xs:string"/>
        <xs:element name="created" type="xs:string"/>
        <xs:element name="display" type="xs:string"/>
      </xs:sequence>
    </xs:complexType>
    </xs:element>
 </xs:schema>

我尝试切换模式名称,但没有任何作用。另外我需要显示 XML 文件来解决这个问题吗?我那里唯一的代码是 link 到相同模式的代码 名称空间对我来说似乎没问题。这是 XML





`
<Schema xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="artwork.xsd">

<Artworks>
 <Artwork>
     <Title>Xtreme Air</Title>
     <Media>Glass Sculpture</Media>
     <Description>An amazing work that uses glass balloon shaps to illustrate a rainbow of balloons circuling a glass earth.</Description>
     <Created>April 2010</Created>
     <Display>Orlando Museum of Arts</Display>
  </Artwork>
</Artworks>
</Schema>
`

导致此错误的主要原因有两个。

  1. 命名空间。检查实例文档中的命名空间是否与架构的目标命名空间相匹配。

  2. API 问题:调用模式验证的方法有很多种,这样做时可能会犯很多错误。

信息太少,我只能说这么多了。

请尝试以下 XML/XSD 对。您需要使用环境中的 XSD 文件位置更新 xsi:noNamespaceSchemaLocation 值。

XML

<?xml version="1.0"?>
<Artworks xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="file:///e:/Temp/Artwork.xsd">
    <Artwork>
        <Title>Xtreme Air</Title>
        <Media>Glass Sculpture</Media>
        <Description>An amazing work that uses glass balloon shaps to illustrate a rainbow of balloons circuling a glass earth.</Description>
        <Created>April 2010</Created>
        <Display>Orlando Museum of Arts</Display>
    </Artwork>
</Artworks>

XSD

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
    <xs:element name="Artworks">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="Artwork"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="Artwork">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="Title" type="xs:string"/>
                <xs:element name="Media" type="xs:string"/>
                <xs:element name="Description" type="xs:string"/>
                <xs:element name="Created" type="xs:string"/>
                <xs:element name="Display" type="xs:string"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
</xs:schema>