0

C ++でXerces DOMパーサーを使用して複数のxmlスキームに対して検証する方法があるかどうか疑問に思っていましたか?

ユースケースは次のとおりです。対応する xsd スキーマに対して複数の xml ファイルを解析できるようにしたいと考えています。ただし、各xmlファイルを最初に見たとき、解析するまでそれがどのファイルであるかがわからないため、静的xsdファイルをそれにリンクできません。xsd1またはxsd2などに対して各xmlファイルを検証したいという言い方はありますか...

読んだ後、パーサー「setExternalSchemaLocation」の設定はスキームのリストを保持できるようですが、コードでこれを行うと正しく検証されません。

parser->setExternalSchemaLocation("http://www.somelocation schema.xsd http://www.somelocation schema1.xsd");

私がやった場合、スキーマはそれ自体で機能します

parser->setExternalSchemaLocation("http://www.somelocation schema.xsd");

したがって、xml または xsd ファイルにエラーはないと確信しています。

複数の xml スキーマに対して検証する方法についての洞察はありますか?

4

1 に答える 1

0

各 xml が同じ名前空間にある場合、コードは機能しません。上記のコードを機能させるには、各 xml ファイルが異なる名前空間にある必要があります。

parser->setExternalSchemaLocation("http://www.somelocation schema.xsd http://www.somelocation1 schema1.xsd"); 
于 2011-02-14T23:58:47.180 に答える