首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >撒克逊s9api:何时期待TinyDocumentImpl vs DocumentImpl

撒克逊s9api:何时期待TinyDocumentImpl vs DocumentImpl
EN

Stack Overflow用户
提问于 2018-01-05 22:50:06
回答 1查看 105关注 0票数 1

我的公司在我们的产品中大量使用XSLT,我们即将从javax.xml迁移到javax.xml的s9api。正因为如此,我的任务是探索新的API,并弄清楚我们需要做出哪些改变。

困扰我的一个大问题是撒克逊NodeInfo。具体来说,对于整个XML文档,有两种实现: TinyDocumentImpl和DocumentImpl。它们不共享一个通用的API,我还没有找到关于何时使用它们的好的文档。

所以我的问题是:什么时候我应该期待一个而不是另一个?什么类型的规则决定了给定的Saxon操作返回哪个规则?

另外一点:到目前为止,在我的实验中,每当我使用Saxon加载文档时,我都会看到TinyDocumentImpl,但是我已经将DocumentImpl看作是MessageListener2实现的XdmNode参数的底层NodeInfo,它接收xsl:message的输出。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-06 17:22:50

Saxon的NodeInfo接口应该包含操作节点通常需要的所有方法。实际上,对于大多数s9api应用程序,您不应该处于较高级别的XdmNode界面之下。NodeInfo接口有许多不同的具体实现,包括您提到的DocumentImplTinyDocumentImpl,但是除非您有非常充分的理由,否则您不应该关心具体的实现,因为它可能会根据配置设置甚至您正在使用的Saxon版本而发生变化。

您还没有说明您实际上想要对这些节点做什么,但是我认为可以使用NodeInfoXdmNode上提供的方法来实现。

还有一点额外的信息: TinyDocumentImpl表示“微型树”中的一个文档节点,这是Saxon的默认树模型。DocumentImpl是“链接树”中的文档节点,用于提供好处的情况。message指令(根据规范)生成一个XML文档,但在绝大多数情况下,XML文档只包含一个文档节点和一个文本节点。在这种情况下,构建LinkedTree比构建TinyTree性能更好,因此我们选择该选项。但就像我之前说的,你真的不想知道...

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48115955

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档