Xerces Dom Parserを使用した複数のXMLスキーマに対して検証します
-
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");
所属していません StackOverflow