Делаем с двумя XSD:
X++:
#define.xml('H:\\XML\\test1.xml')
#define.xsd1('urn:Test1','H:\\XML\\test1.xsd')
#define.xsd2('urn:Common','H:\\XML\\Common.xsd')
void validateFile()
{
COM xs = New COM("MSXML2.XMLSchemaCache.5.0");
COM xd = New COM("MSXML2.DOMDocument.5.0");
COM er;
counter i;
;
xs.Add(#xsd1);
xs.Add(#xsd2);
xd.schemas(xs);
xd.async(false);
xd.Load(#xml);
er = xd.parseError();
if (er.errorCode())
{
throw error("Validation failed on " +
#xml + @"
=====================
Reason: " + any2str(er.reason()) + @"
Source: " + er.srcText() + @"
Line: " + int2str(er.Line()));
}
else
{
info("Validation succeeded for " + #xml + @"
======================
" + xd.xml());
}
}