C++ 如何使用Xerces-C生成允许的最小文档?
我还没有在Xerces-C文档中找到如何从XML模式创建默认文档。但我还是尝试了以下方法:C++ 如何使用Xerces-C生成允许的最小文档?,c++,xml,xsd,xerces,xerces-c,C++,Xml,Xsd,Xerces,Xerces C,我还没有在Xerces-C文档中找到如何从XML模式创建默认文档。但我还是尝试了以下方法: const char XMLLinesSchema[] = /* some valid schema */; MemBufInputSource schema_mem_buf( reinterpret_cast<const XMLByte*>(XMLLinesSchema), sizeof(XMLLinesSchema), L"schema" ); XercesDOMParser pa
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架构生成允许的最小文档?文档说明: 它应该被选择解析和处理的应用程序使用 使用domapi的XML文档
您使用的是解析器,因此它希望通过函数解析一些输入。您没有解析任何内容,因此将不会返回任何内容。我应该使用什么来代替XercesDOMParser?我认为您需要考虑使用DOMDImplementation::createDocument来创建默认文档,IIRC,您也可以在那里设置模式等。