首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >静态字段PI_ENABLE_OUTPUT_ESCAPING和PI_DISABLE_OUTPUT_ESCAPING的用途是什么?我们如何使用它们?

静态字段PI_ENABLE_OUTPUT_ESCAPING和PI_DISABLE_OUTPUT_ESCAPING的用途是什么?我们如何使用它们?
EN

Stack Overflow用户
提问于 2013-05-06 21:50:27
回答 2查看 720关注 0票数 1

我是jaxp的新手,不知道如何使用上面的静态字段,它们是什么意思?

需要它的解释和例子。

提前感谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-07 01:23:33

XSLT有一个称为“禁用输出转义”的特性,它告诉序列化程序将<a>输出为<a>,而它通常会输出&lt;a&gt;。这是一种最好避免的攻击,原因有很多,其中之一是它需要转换引擎与序列化程序通信的特殊辅助通道(因此转换器可以告诉序列化程序打开和关闭doe )。

在JAXP中,为了允许一个供应商的转换引擎与另一个供应商的序列化程序对话,用于传递这些doe-on和doe-off请求的协议是这对处理指令。

你不需要这个特性,你可以安全地忽略它的存在。永远不要去想,仅仅因为有一个特性,如果你从来没有使用过它,你一定会错过一些东西。

票数 0
EN

Stack Overflow用户

发布于 2013-05-06 22:25:58

(免责声明-我维护JDOM XML Library) -这些PI (ProcessingInstructions)旨在向XML输出程序表明,它们应该破坏与XML标准的兼容性,并产生无效的XML。

在某些情况下,这可能是有用的。

下面是JDOM test harness中的一个测试用例。它基本上有如下输入(我在其中添加了一些空格,以使其更容易查看):

代码语言:javascript
复制
<root>
  &amp;
  <?javax.xml.transform.disable-output-escaping ?>
  &amp;&amp;
  <?javax.xml.transform.enable-output-escaping ?>
  &amp;
</root>

在上面的例子中,我们有有效的XML。如果您要通过一个能够识别处理指令的系统来处理此数据,它应该输出(类似于)

代码语言:javascript
复制
<root>
  &amp;
  &&
  &amp;
</root>

请注意,这不再是有效的XML.....PI之间的&字符未正确转义。

从JDOM的角度来看,这是文档化的here in the javadoc

这些指令通常用在XML转换中,以产生“美观的,不是机器消耗的,而是人消耗的输出,请谨慎使用。

希望这能给你一些洞察力...万事如意。

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

https://stackoverflow.com/questions/16400200

复制
相关文章

相似问题

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