Qt QXmlSchema验证

Qt QXmlSchema验证,qt,xsd,xsd-validation,Qt,Xsd,Xsd Validation,我试图使用QXmlSchema提供的方法检查XML模式的有效性。 我从Eclipse或xmllint等其他工具知道模式是有效的,但使用以下代码的结果总是导致模式无效 QFile file("/home/....xsd"); file.open(QIODevice::ReadOnly); QXmlSchema schema; schema.load(&file, QUrl::fromLocalFile(file.fileName())); if ( schema.isValid() )

我试图使用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在中file:///home/......xsd,在第X行第Y列:复杂类型foo的内容模型不是bar内容模型的有效扩展

我想知道这是与模式名称空间导入有关还是与其他有关

编辑:
我指的模式是。

您可以通过QtXmlPatterns的xmlpatternsvalidator工具部分运行您的模式,检查Qt是否可以解析该模式?您可以粘贴该模式吗?@skyhisi我刚刚尝试过,错误相同。模式是。