我正在尝试阅读和验证具有外部实体的xml文档.但是我在阅读和验证方面都没有成功.
我使用this创建一个测试示例.
测试xml:
]>
&otherFile;
其他xml:
this is my content
测试XSD:
首先,我尝试使用QDomDocument读取test.xml的内容:
QDomDocument doc;
doc.setContent(&testFile);
qDebug() << doc.toString();
但是在调试输出中,我从test.xml获取原始文本.外部实体不会被替换.
然后,我尝试针对test.xsd验证test.xml:
QXmlSchema schema;
bool res = schema.load(&xsdFile, QUrl::fromLocalFile(xsdPath));
if (res == true)
{
QXmlSchemaValidator validator(schema);
if (validator.validate(&xmlFile, QUrl::fromLocalFile(xmlPath)))
{
qDebug() << "xml" << xmlName << "is valid";
}
else
{
qDebug() << "xml" << xmlName << "is invalid";
}
}
但是验证失败,并且出现以下错误:
Error XSDError in file:///..., at line 5, column 5: Element doc is missing child element.
我是在做错什么还是Qt Xml模块不支持外部实体?