Xerces Dom Parserを使用した複数のXMLスキーマに対して検証します

StackOverflow https://stackoverflow.com/questions/4800155

  •  22-10-2019
  •  | 
  •  

質問

C ++でXerces Dom Parserを使用して、複数の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スキーマに対して検証する方法に関する洞察はありますか?

役に立ちましたか?

解決

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

parser->setExternalSchemaLocation("http://www.somelocation schema.xsd http://www.somelocation1 schema1.xsd"); 
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top