【问题标题】:How to generate a minimal allowed document using Xerces-C?如何使用 Xerces-C 生成最小允许文档?
【发布时间】:2011-09-08 08:45:42
【问题描述】:

我在 Xerces-C 文档中没有找到如何从 XML 模式创建默认文档。我仍然尝试了以下方法:

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 生成最小允许文档?

【问题讨论】:

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


    【解决方案1】:

    文档是这样说的:

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

    您正在使用解析器,因此它希望通过parse(...) 函数解析一些输入。你什么都没有解析,所以什么都不会返回。

    【讨论】:

    • 我应该用什么来代替XercesDOMParser
    • 我认为您需要查看使用 DOMDOMImplementation::createDocument() 创建默认文档和 IIRC,您也可以在那里设置架构等。
    猜你喜欢
    • 2012-07-24
    • 1970-01-01
    • 2011-01-28
    • 1970-01-01
    • 1970-01-01
    • 2018-03-21
    • 1970-01-01
    • 2023-03-18
    • 2023-03-21
    相关资源
    最近更新 更多