2016-06-21 12 views
0

私は「http://xml.ra.se/e-arkiv/METS/CSPackageMETS.xsd」スキーマに対してXMLファイルを検証しようとしていると私は、次の検証エラーになっています:スキーマ検証エラーCVC-elt.4.2

CVC-ELTを.4.2:「PREMISを:ファイル」を解決できません要素の型定義に「PREMIS:オブジェクトの

私はこれを持っている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> 
+0

'schemaLocation'属性に与えられた' http:// www.loc.gov/standards/premis/v2/premis-v2-2.xsd'スキーマを使用しますか? –

+0

ファイル全体がスキーマhttp://xml.ra.se/e-arkiv/METS/CSPackageMETS.xsdに検証されるはずですが、私の問題に関連するschemaLocation属性のスキーマと仮定しますか? – ostid

+0

更新しても、あなたはまだ*** [mcve] ***を投稿していません。あなたの質問の主題である単一のエラーを除いて、あなたのXMLは検証されるべきです。 (ルート要素の 'schemaLocation'には奇数のエントリがあり、' premis:オブジェクトは不完全なものなどです)**実際の問題をきれいに示すことができるように、あなたのXMLサンプルをクリーンアップしてください。あなたの質問を更新してください。**ありがとうございます。 – kjhughes

答えて

1

は、あなたが乗り越えるだろう、premis:object要素に

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

<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名前空間接頭辞の宣言を追加します。 xsi:schemaLocation問題。もちろん

、上記premis:object要素が不完全であるので、あなたが遭遇するだろう次のエラーが

[Error] try.xml:6:40: cvc-complex-type.2.4.b: The content of element 'premis:object' is not complete. One of '{"info:lc/xmlns/premis-v2":objectIdentifier}' is expected.

になりますが、おそらく未送信XMLの残りの部分はそれに対処します。

+0

お返事ありがとうございます。ルート要素にxsi名前空間接頭辞の宣言があります(言及しないと申し訳ありません)。私はまだpremis:object要素に宣言を追加する必要がありますか?その場合、どうしてですか? – ostid

+0

いいえ、ルート要素の 'xsi'宣言で十分です。 XMLの[mcve]を投稿して、より簡単にお手伝いできるようにしてください。ありがとう。 – kjhughes

+0

それを指摘していただきありがとうございます。今すぐXMLを追加しました。 – ostid

関連する問題