架构验证错误cvc-elt.4.2(尽管类型定义正确?)

时间:2016-06-21 13:01:37

标签: xml xsd

我正在尝试针对架构“http://xml.ra.se/e-arkiv/METS/CSPackageMETS.xsd”验证xml文件,并且我收到以下验证错误:

cvc-elt.4.2:无法将'premis:file'解析为元素'premis:object'的类型定义

在xml文件中我有:

<premis:object xmlns:premis="info:lc/xmlns/premis-v2" version="2.2" xsi:schemaLocation="info:lc/xmlns/premis-v2 http://www.loc.gov/standards/premis/v2/premis-v2-2.xsd" xsi:type="premis:file">

问题在于,据我所知,“premis:file”是根据premis定义的类型定义。但也许我没有正确解释这一点,我是模式的新手,实际上是xml。

我搜索过的信息可以帮助我了解xml文件中发生的情况以及它与模式的关系,以便了解错误但我无法找到这个问题的答案。我非常感谢你的帮助。

xml文件:

<?xml version="1.0" encoding="ASCII" standalone="no"?>
<mets:mets xmlns:mets="http://www.loc.gov/METS/" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" OBJID="bc198c15-cd31-41e6-98aa-5e85caf97d6c" PROFILE="http://xml.ra.se/e-arkiv/METS/CommonSpecificationSwedenPackageProfile.xml" TYPE="Economics" xsi:schemaLocation="http://www.loc.gov/METS/ http://www.loc.gov/standards/mets/version18/mets.xsd http://xml.ra.se/e-arkiv/METS/CSPackageMETS.xsd">
      <mets:metsHdr CREATEDATE="2016-04-22T08:39:09"><mets:agent ROLE="ARCHIVIST" TYPE="ORGANIZATION"><mets:name>arkivbildare</mets:name></mets:agent><mets:agent ROLE="ARCHIVIST" TYPE="ORGANIZATION"><mets:name>nummer</mets:name></mets:agent><mets:agent OTHERTYPE="SOFTWARE" ROLE="ARCHIVIST" TYPE="OTHER"><mets:name>system</mets:name></mets:agent><mets:agent ROLE="CREATOR" TYPE="ORGANIZATION"><mets:name>levorg</mets:name></mets:agent><mets:altRecordID TYPE="SUBMISSIONAGREEMENT">bet;2016-05-31</mets:altRecordID></mets:metsHdr>
      <mets:amdSec ID="amdSec_1">
        <mets:techMD ID="techMD_1">
          <mets:mdWrap MDTYPE="PREMIS:OBJECT">
            <mets:xmlData>
              <premis:object xmlns:premis="info:lc/xmlns/premis-v2" version="2.2" xsi:schemaLocation="info:lc/xmlns/premis-v2 http://www.loc.gov/standards/premis/v2/premis-v2-2.xsd" xsi:type="premis:file"> some elements </premis:object>
             </mets:xmlData>
          </mets:mdWrap>
       </mets:techMD>
    some elements
    </mets:amdSec>
    some elements
 </mets:mets>

1 个答案:

答案 0 :(得分:1)

添加 <document> <alertTemplate> <background> <img src="/resources/images/background/bg_dark.jpg" /> </background> <title>Title</title> <button> <text>Button 1</text> </button> <button> <text>Button 2</text> </button> </alertTemplate> </document> 名称空间前缀

的声明
xsi

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 元素,

premis:object

然后您将超越<premis:object version="2.2" xmlns:premis="info:lc/xmlns/premis-v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="info:lc/xmlns/premis-v2 http://www.loc.gov/standards/premis/v2/premis-v2-2.xsd" xsi:type="premis:file"/> 问题。

当然,上述xsi:schemaLocation元素不完整,因此您遇到的下一个错误将是

  

[错误] try.xml:6:40:cvc-complex-type.2.4.b:元素的内容   &#39; PREMIS:对象&#39;不完整。之一   &#39; {&#34;信息:LC / XMLNS / PREMIS-V2&#34;:为ObjectIdentifier}&#39;是预期的。

但可能是你未发布的XML的其余部分将解决这个问题。