我正在尝试使用QXmlSchema提供的方法检查XML架构的有效性。 我从其他工具(例如Eclipse或xmllint)知道模式 有效,但使用以下代码的结果总是导致“模式无效”。
QFile file("/home/....xsd");
file.open(QIODevice::ReadOnly);
QXmlSchema schema;
schema.load(&file, QUrl::fromLocalFile(file.fileName()));
if ( schema.isValid() ) {
QXmlSchemaValidator validator( schema );
if ( validator.validate( QUrl("file:///......xml") ) ) {
qDebug() << "instance is valid";
} else {
qDebug() << "instance is invalid";
}
} else {
qDebug() << "schema is invalid";
}
记录的错误类似于:
文件中的错误XSDError:///home/......xsd,第X行,第Y列:复杂类型foo的内容模型不是bar内容模型的有效扩展名。
我想知道这是否与Schema名称空间导入或其他内容有关。
编辑: 我所指的架构是this one。