1

私はこの [1] XML スキーマを使用して、xmllint で XML ドキュメントを検証しています。

xmllint --noout --schema mets.xsd metadata.xml

検証は失敗します

metadata.xml:55: element object: Schemas validity error : Element '{info:lc/xmlns/premis-v2}object', attribute '{http://www.w3.org/2001/XMLSchema-instance}type': The QName value '{info:lc/xmlns/premis-v2}file' of the xsi:type attribute does not resolve to a type definition. 
metadata.xml:55: element object: Schemas validity error : Element '{info:lc/xmlns/premis-v2}object': The type definition is absent.

metadata.xml の 55 行目:

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

ただし、私が欲しいもののサンプルドキュメントがあります。ここにあります[2]。

この例をスキーマに対して検証すると、同じ検証エラーが発生します。

louis-2-0.xml:80: element object: Schemas validity error : Element '{info:lc/xmlns/premis-v2}object', attribute '{http://www.w3.org/2001/XMLSchema-instance}type': The QName value '{info:lc/xmlns/premis-v2}file' of the xsi:type attribute does not resolve to a type definition.
louis-2-0.xml:80: element object: Schemas validity error : Element '{info:lc/xmlns/premis-v2}object': The type definition is absent.

私は何が欠けていますか?

[1] http://www.loc.gov/standards/mets/mets.xsd

[2] http://www.loc.gov/standards/premis/louis-2-0.xml

4

1 に答える 1

0

[2] として参照されているドキュメントは有効であるため、エラー メッセージはローカル セットアップの問題を示しています。xmllint は、55 行目から引用した schema-location のヒントを尊重していないため、Premis スキーマをフェッチしておらず、言及されたタイプを見つけていないと思います。

それをテストするには、使用したいものすべてをインポートする単純なスキーマ ドキュメントを作成し、それを使用して検証します。ドキュメントは Mets と Premis を使用しているため、これら 2 つのスキーマをインポートします。

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

  <xs:import namespace="http://www.loc.gov/METS/"
     schemaLocation="http://www.loc.gov/standards/mets/mets.xsd"
  />

  <xs:import namespace="info:lc/xmlns/premis-v2"
    schemaLocation=
      "http://www.loc.gov/standards/premis/v2/premis-v2-0.xsd"
  />
</xs:schema>

mets-premis.xsdこれを名前を付けて(または任意の名前で)保存します。

今すぐ検証してみてくださいxmllint --noout --schema mets-premis.xsd metatdata.xml

于 2014-11-03T16:50:29.347 に答える