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

发布于 2024-12-03 16:00:31 字数 758 浏览 0 评论 0原文

我还没有找到如何从 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 模式生成最小允许文档?

I haven't find how to create a default document from XML Schema in Xerces-C documentation. Still I've tried the following:

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();

But parser.getDocument returns NULL. What am I doing wrong? Is it possible to generate a minimal allowed document for the specified XML Schema using Xerces-C?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

荒岛晴空 2024-12-10 16:00:31

文档是这样说的:

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

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

The documentation says this:

It should be used by applications which choose to parse and process
the XML document using the DOM api's.

You're using a parser so it expects some input to parse, through the parse(...) function. You've parsed nothing, so nothing will be returned.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文