如何使用Xerces-C生成最小允许的文档

How to generate a minimal allowed document using Xerces-C?

本文关键字:文档 何使用 Xerces-C      更新时间:2023-10-16

我还没有找到如何从Xerces-C文档中的XML Schema创建默认文档。但我还是尝试了以下方法:

const char XMLLinesSchema[] = /* some valid schema */;
MemBufInputSource schema_mem_buf( reinterpret_cast<const XMLByte*>(XMLLinesSchema),
    sizeof(XMLLinesSchema), L"schema" );
XercesDOMParser parser;
// enable schema processing
parser.setDoSchema( true );
parser.setDoNamespaces( true );
// Let's preparse the schema grammar (.xsd) and cache it.
parser.loadGrammar( schema_mem_buf, Grammar::SchemaGrammarType, true );
parser.useCachedGrammarInParse( true );
parser.setValidationScheme( XercesDOMParser::Val_Always );
DOMDocument* doc = parser.getDocument();

但是parser.getDocument返回NULL。我做错了什么?是否有可能使用Xerces-C为指定的XML模式生成最小的允许文档?

文档是这样说的:

应该由选择解析和处理的应用程序使用使用DOM api的XML文档

您正在使用解析器,因此它期望通过parse(…)函数解析一些输入。您没有解析任何内容,因此不会返回任何内容。