【发布时间】:2020-09-16 03:29:10
【问题描述】:
我有一个 .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
}
}
【问题讨论】: