Xml XSD错误:验证根目录没有匹配的全局声明

Xml XSD错误:验证根目录没有匹配的全局声明,xml,xsd,xml-namespaces,xsd-validation,xml-validation,Xml,Xsd,Xml Namespaces,Xsd Validation,Xml Validation,当我尝试验证XML文件时,出现以下错误: xml:3:element person:Schemas有效性错误:element{http://www.namespace.org/person}person:验证根目录没有匹配的全局声明 这是person.xml文件的内容: <?xml version="1.0"?> <p:person xmlns:p="http://www.namespace.org/person"> <f

当我尝试验证XML文件时,出现以下错误:

xml:3:element person:Schemas有效性错误:element
{http://www.namespace.org/person}person
:验证根目录没有匹配的全局声明

这是person.xml文件的内容:

<?xml version="1.0"?>
<p:person xmlns:p="http://www.namespace.org/person">
  <firstName>name</firstName>
  <surName>surname</surName>
  <secondName>n2</secondName>
</p:person>

名称
姓
氮气
这是person.xsd文件的内容:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
           xmlns:p="http://www.namespace.org/person"   
           version="1.0">

    <xs:element name="person">
        <xs:complexType>
            <xs:group ref="credential"/>
        </xs:complexType>
    </xs:element>

    <xs:group name="credential">
        <xs:sequence>
            <xs:element name="firstName" type="xs:string"/>
            <xs:element name="surName" type="xs:string"/>
            <xs:element name="secondName" type="xs:string"/>
        </xs:sequence>
    </xs:group>     
</xs:schema>

该错误指示命名空间元素
{http://www.namespace.org/person}在给定的XSD中找不到person,因为
p
元素不在
http://www.namespace.org/person
名称空间。通过添加
targetNamespace=”来更正此问题http://www.namespace.org/person“
到XSD的
xs:schema
根元素。接下来,调整对
凭证
组的引用,使其也使用该名称空间

总之,以下XML对以下XSD有效:

XML

名称
姓
氮气
XSD
该错误指示命名空间元素
{http://www.namespace.org/person}在给定的XSD中找不到person,因为
p
元素不在
http://www.namespace.org/person
名称空间。通过添加
targetNamespace=”来更正此问题http://www.namespace.org/person“
到XSD的
xs:schema
根元素。接下来,调整对
凭证
组的引用,使其也使用该名称空间

总之,以下XML对以下XSD有效:

XML

名称
姓
氮气
XSD

<?xml version="1.0"?>
<p:person xmlns:p="http://www.namespace.org/person">
  <firstName>name</firstName>
  <surName>surname</surName>
  <secondName>n2</secondName>
</p:person>
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 
  xmlns:p="http://www.namespace.org/person"
  targetNamespace="http://www.namespace.org/person"
  version="1.0">
  
  <xs:element name="person">
    <xs:complexType>
      <xs:group ref="p:credential"/>
    </xs:complexType>
  </xs:element>
  
  <xs:group name="credential">
    <xs:sequence>
      <xs:element name="firstName" type="xs:string"/>
      <xs:element name="surName" type="xs:string"/>
      <xs:element name="secondName" type="xs:string"/>
    </xs:sequence>
  </xs:group>  

</xs:schema>