问题描述
我有一个.xml文件和.xsd 使用libxml2解析和验证文件后,如何从架构中获取节点定义(限制,注释...)?
xmlInitParser();
xmlSchemaPtr schema = NULL;
xmlSchemaParserCtxtPtr schema_parser_ctxt = NULL;
int has_schema_errors = 0;
int ret = -1;
xmlSchemaValidCtxtPtr valid_ctxt = NULL;
schema_parser_ctxt = xmlSchemaNewParserCtxt("test.xsd");
xmlTextReaderPtr reader = NULL;
const char* filename = "file.xml";
reader = xmlReaderForFile(filename,NULL,0);
if (reader != NULL)
{
if (valid_ctxt)
xmlTextReaderSchemaValidateCtxt(reader,valid_ctxt,0);
ret = xmlTextReaderRead(reader);
while (ret == 1 && !has_schema_errors)
{
ret = xmlTextReaderRead(reader);
xmlNodePtr node;
node = xmlTextReaderCurrentNode(reader);
// here i want get node deFinition from xsd
}
}
解决方法
这对于libxml2是不可能的。