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

时间:2011-09-08 08:45:42

标签: c++ xml xsd xerces xerces-c

我还没有找到如何在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 Schema的最小允许文档?

1 个答案:

答案 0 :(得分:0)

文档说明了这一点:

  

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

您正在使用解析器,因此需要通过parse(...)函数解析一些输入。你没有解析任何东西,所以什么都不会被退回。