Xml cvc complex type.2.4.c:匹配的通配符是严格的,但是找不到元素';oai标识符';。如何解决这个问题?

Xml cvc complex type.2.4.c:匹配的通配符是严格的,但是找不到元素';oai标识符';。如何解决这个问题?,xml,xsd,xsd-validation,saxparseexception,xml-error,Xml,Xsd,Xsd Validation,Saxparseexception,Xml Error,我有,我想用它来验证来自OAI-PMH端点的XML响应。 据说该模式已经过验证。 然而,当我尝试验证来自随机OAI-PMH端点的XML响应时,例如: <?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type="text/xsl" href="static/style.xsl"?> <OAI-PMH xmlns="http://www.openarchives.org/OAI/2.0/" xmlns:xsi

我有,我想用它来验证来自OAI-PMH端点的XML响应。

据说该模式已经过验证。
然而,当我尝试验证来自随机OAI-PMH端点的XML响应时,例如:

<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type="text/xsl" href="static/style.xsl"?>
<OAI-PMH xmlns="http://www.openarchives.org/OAI/2.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/ http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd">
    <responseDate>2019-07-29T13:29:04Z</responseDate>
    <request verb="Identify">https://repository.lib.ncsu.edu/oai/driver</request>
    <Identify>
        <repositoryName>NCSU Repository</repositoryName>
        <baseURL>https://repository.lib.ncsu.edu/oai/driver</baseURL>
        <protocolVersion>2.0</protocolVersion>
        <adminEmail>kdbeswic@ncsu.edu</adminEmail>
        <earliestDatestamp>2006-11-10T15:53:37Z</earliestDatestamp>
        <deletedRecord>transient</deletedRecord>
        <granularity>YYYY-MM-DDThh:mm:ssZ</granularity>
        <description>
            <oai-identifier xmlns="http://www.openarchives.org/OAI/2.0/oai-identifier"
                            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                            xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/oai-identifier http://www.openarchives.org/OAI/2.0/oai-identifier.xsd">
                <scheme>oai</scheme>
                <repositoryIdentifier>repository.lib.ncsu.edu</repositoryIdentifier>
                <delimiter>:</delimiter>
                <sampleIdentifier>oai:repository.lib.ncsu.edu:1840.20/1234</sampleIdentifier>
            </oai-identifier>
        </description>
    </Identify>
</OAI-PMH>

我不知道为什么会发生这种情况,相关线程也没有帮助我。请帮帮我。

尽管
xsd:any
基本上允许任何XML元素,但它的
@processContents
属性给出了不同的严格性。在这种情况下,
@processContents
严格的
,这意味着任何定义的元素都可能出现在那里。您的错误消息表明它找不到
oai标识符
元素的此类XSD定义。您可以通过执行以下操作之一修复此问题:

  • 更改XML以在该位置显示已定义的元素
  • 将XSD
    XSD:any/@processContents
    更改为
    lax
    skip
  • 提供对
    oai标识符定义的验证XML解析器访问
  • 另请参见:


    注意:我能够在不修改的情况下成功验证您发布的XML。我建议您再试一次,确保验证器可以访问每个必需的XSD(包括任何引用的XSD,可传递)。如果您有用于检索xsd的XML目录或其他重定向机制,请务必检查这些机制。

    尽管
    xsd:any
    基本上允许任何XML元素,但它的
    @processContents
    属性给出了不同的严格性。在这种情况下,
    @processContents
    严格的
    ,这意味着任何定义的元素都可能出现在那里。您的错误消息表明它找不到
    oai标识符
    元素的此类XSD定义。您可以通过执行以下操作之一修复此问题:

  • 更改XML以在该位置显示已定义的元素
  • 将XSD
    XSD:any/@processContents
    更改为
    lax
    skip
  • 提供对
    oai标识符定义的验证XML解析器访问
  • 另请参见:


    注意:我能够在不修改的情况下成功验证您发布的XML。我建议您再试一次,确保验证器可以访问每个必需的XSD(包括任何引用的XSD,可传递)。如果您有用于检索XSD的XML目录或其他重定向机制,请务必检查它们。

    我明白了,谢谢。所以有问题的元素是
    下的
    ,对吗?由于我不精通XML标记,您能告诉我如何执行1和3吗?是的,
    @processContents
    的默认值是
    strict
    。健全性检查:将
    oai标识符
    替换为您知道在可访问的XSD中定义的元素,例如,
    repositoryName
    。然后尝试重新验证。我不确定我是否在跟踪你。我该怎么做<代码>repositoryName
    已在XML响应中。顺便说一句,我在我的项目中将这个静态XSD模式作为一个文件使用;而不是
    oai标识符
    。很抱歉,我们已经从Q/A过渡到诊断,这需要更多的来回操作,不适合在这里进行。您的问题的基本答案是,您的XML对链接的XSD是有效的。我已经解释了
    xsd:any/@processContents
    的含义,并建议您进一步研究与该约束和管理xsd的可访问性相关的几个选项。祝你好运。我明白了,谢谢。所以有问题的元素是
    下的
    ,对吗?由于我不精通XML标记,您能告诉我如何执行1和3吗?是的,
    @processContents
    的默认值是
    strict
    。健全性检查:将
    oai标识符
    替换为您知道在可访问的XSD中定义的元素,例如,
    repositoryName
    。然后尝试重新验证。我不确定我是否在跟踪你。我该怎么做<代码>repositoryName
    已在XML响应中。顺便说一句,我在我的项目中将这个静态XSD模式作为一个文件使用;而不是
    oai标识符
    。很抱歉,我们已经从Q/A过渡到诊断,这需要更多的来回操作,不适合在这里进行。您的问题的基本答案是,您的XML对链接的XSD是有效的。我已经解释了
    xsd:any/@processContents
    的含义,并建议您进一步研究与该约束和管理xsd的可访问性相关的几个选项。祝你好运