2011-01-25 4 views
0

C++에서 Xerces DOM 파서를 사용하여 여러 xml 스키마에 대해 유효성을 검사 할 수있는 방법이 있는지 궁금합니다.Xerces DOM 파서를 사용하여 여러 xml 스키마 유효성 검사

다음은 유스 케이스입니다. 해당 xsd 스키마에 대해 여러 xml 파일을 구문 분석 할 수 있기를 원합니다. 그러나 처음에는 각 xml 파일을 볼 때 파싱 할 때까지 어떤 파일인지 알지 못하기 때문에 정적 xsd 파일을이 파일에 연결할 수 없습니다. xsd1 또는 xsd2 또는 기타에 대해 각 xml 파일의 유효성을 검사하고 싶습니다. ...

파서 'setExternalSchemaLocation'의 설정을 읽으면 스키마 목록을 유지할 수 있지만 내 코드에서이 작업을 수행하는데 올바르게 적용되지 않습니다. 내가

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

을 한 경우에

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

스키마는 그래서 난 내 XML 또는 XSD 파일에 오류가없는 확신 자체로 작동합니다.

여러 xml 스키마에 대해 유효성을 검사하는 방법에 대한 통찰력이 있으십니까?

+0

한 줄 대신 두 개의 명령으로 스키마를 별도로 설정해 보았습니까? 다음과 같습니다 : parser-> setExternalSchemaLocation ("http : //www.somelocation schema.xsd"); 파서 -> setExternalSchemaLocation ("http : //www.somelocation schema1.xsd"); – Sii

+0

오류 메시지가 무엇입니까? –

+0

@Sii : Xerces 박사는 "이 방법을 두 번 이상 호출하면 마지막 하나만 적용됩니다."라고 말합니다. –

답변

0

각 xml이 동일한 네임 스페이스에 있으면 코드가 작동하지 않습니다. 위의 코드가 작동하려면 각 xml 파일이 다른 네임 스페이스에 있어야합니다.

parser->setExternalSchemaLocation("http://www.somelocation schema.xsd http://www.somelocation1 schema1.xsd"); 
관련 문제