问题标签 [canonicalization]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
xml - 具有包容性规范化的 XML 数字签名
我正在尝试实现 XML 数字签名的例程,并且能够正确计算要签名的信息的哈希值。但是,我面临签名本身的问题,因为我无法创建要签名的真实字符串。
现在我有这个:
仅使用 CR 而不是 CRLF。没有用于缩进的空格(帖子显示标签之间有空格的地方,有一个 CR)
计算有效签名的任何建议?
PD 我已将规范化算法更改为 EXCLUSIVE 并且它可以工作,但要求是使用 INCLUSIVE。
提前非常感谢。
java - 如何在 Java 中规范化 WSDL 文件?
我需要找出两个 WSDL 文件的不同之处。我开始像这里一样漂亮地打印它们,但我看到complexType
在定义的两个文件中(无论出于何种愚蠢的原因)以不同的顺序有相同的东西(例如s)。我想进一步规范化文件,以便以后可以使用标准之类diff
的东西来查找差异。
不知道是否有为 WSDL 定义的规范形式,我知道有Canonical XML,但我需要更进一步,对所有顺序无关紧要的东西进行排序。
java - 我使用番石榴的理想缓存
在过去的几周里,我断断续续地尝试使用番石榴的MapMaker找到我理想的缓存实现。请在此处和此处查看我之前的两个问题,以了解我的思考过程。
根据我所学到的,我的下一次尝试是放弃软值,转而使用 maximumSize 和 expireAfterAccess:
在哪里
但是,我仍然在努力解决的一个剩余问题是,一旦对象的时间到了,即使对象是可强烈访问的,此实现也会驱逐对象。这可能会导致具有相同 UID 的多个对象在环境中浮动,这是我不希望的(我相信我想要实现的目标被称为规范化)。
所以据我所知,唯一的答案是有一个额外的地图,它作为一个内部人,我可以检查一个数据对象是否仍在内存中:
并且加载函数将被修改:
但是,使用两个映射而不是一个映射来缓存似乎效率低下。有没有更复杂的方法来解决这个问题?一般来说,我是否以正确的方式进行此操作,还是应该重新考虑我的缓存策略?
c# - 在 C# 中使用带有默认命名空间的 Xpath 进行规范化
我正在尝试将 C14N 转换应用于一些生成的 XML。看来我不能使用 LINQ 来检索节点以执行规范化,所以我必须使用 DOM 去“老派”,但我认为我违反了默认命名空间。
这是我的代码示例。
还有我的 XML:
我已经阅读了该地区的其他一些主题并遇到了这个Gem,但它并没有解决问题。
使用 XPath Visualiser 显示应选择所需的节点,但我的代码无法选择任何节点。
java - 手动创建所有 Document 节点的 NodeList
我目前手动生成NodeList
所有文档节点(按文档顺序)。得到这个的 XPath 表达式NodeList
是
我第一次尝试手动遍历 DOM 并收集节点(NodeSet
是委托给 a 的原始NodeList
实现List
):
我会通过调用walkRecursive(doc, nodes)
where doc
is theorg.w3c.Document
和nodes
a (yet empty)来开始递归NodeSet
。
我使用这个原始 XML 文档对此进行了测试:
例如,如果我将手动创建NodeSet
的和NodeList
由最初提到的 XPath 表达式生成的规范化,并逐字节比较这两个字节,那么结果是相等的,并且似乎工作得很好。
但是,如果我遍历这两个NodeList
s 并打印调试信息(typeString
只需生成一个字符串表示)
然后我收到 XPath 生成的输出NodeList
:
这对于手动生成的NodeList
:
因此,如您所见,在第一个示例中,NodeList 还包含Node
XML 命名空间:
现在我的问题:
a)如果我正确解释了xml-names11,那么我不需要 xmlns:xml 声明:
前缀 xml 根据定义绑定到命名空间名称http://www.w3.org/XML/1998/namespace。它可以,但不需要,被声明,并且不能被未声明或绑定到任何其他命名空间名称。其他前缀不得绑定到此名称空间名称,并且不得将其声明为默认名称空间。
我对么?(至少 c)暗示那个方向)
b) 但是,为什么 XPath 评估还是要添加它——它不应该只包括一开始就存在的东西,而不是自动添加东西吗?
c) 这可能会导致XML 规范化出现问题,尽管它不应该xml
-在规范化期间应该省略命名空间的声明。有谁知道出错的(Java)实现?
编辑:
这是我用来评估包含“xml”命名空间节点的 XPath 表达式的代码:
java - 如何在 Java 中实现规范化映射?
我目前正在滚动我自己的小 ORM,并且发现自己面临着创建规范化映射的任务,以防止从数据库中多次加载相同的实体。
我目前的方法是使用HashMap<Object, WeakReference<Object>>
. 键是映射数据库实体的主键(ArrayList<Object>
如果它是复合键),值为WeakReference<Object>
.
我的主要问题是如何清理地图?当不再使用对象时,映射中的弱引用将消失null
,我只会在下一次查找时发现它(或者永远不会,如果我不再查找该对象)。我可以让弱引用ReferenceQueue
在它们被清除时注册,然后每次查找时检查该队列。清除的引用不会给我任何关于哪个对象被清除的提示,所以我想我必须子类WeakReference
化以将键存储在映射中,所以我可以在清除引用后删除它。
这是要走的路,还是有更简单的方法来实现它?
xml - 管道两个萨克斯解析器?
我有以下实现任务,我不知道如何解决它。
我们有一个基于 SAX的 xml 格式语法检查器,它检查某个结束 endElement() 中的哈希和。这个hashsum是使用一种过滤 InputStream构建的,它在读取内容时更新 MessageDigest。SAX-syntaxchecker 使用这个输入流作为它的 InputSource。
问题(我的任务)是,hashsum 应该建立在输入 xml 的一些规范化部分上(参见http://www.w3.org/TR/xml-c14n)。
现在棘手的事情是:我们有一个Canonicalizer,它也使用 SAX来规范化输入。(它需要知道当前上下文来区分属性和节点等,这就是我们使用 SAX 的原因)
我想重用那个 Canonicalizer,但我看不出如何组合这两个 SAX 解析器。
我想我想要某种流水线:
InputFile -> Canonicalizer -> HashCalculation-InputStream -> SyntaxChecker。
任何想法/参考如何做到这一点?TIA。
php - 将 URL 与规范化/规范化匹配
我发现这个解决方案可以规范化和匹配相等的 URL,但我想知道是否有更优雅的方法,PHP 没有 URL 规范化功能吗?
perl - 尝试在 XML::LibXML 中规范化 XML 片段时出错
我正在尝试规范化 XML 片段以避免在生成的 XML 中打印自闭合节点。(由于消费系统的限制,我希望对节点<test />
进行流式传输)。<test></test>
我尝试在 XML::LibXML::Node 中使用 toStringC14N() 方法来实现相同的目的,但我遇到了以下错误,我似乎也没有从谷歌那里得到任何帮助。
输出:
我只能追查错误,直到 LibXML.c 中的以下方法
xmlDocDumpMemory(self, &result, &len);
我对我做错了什么一无所知,因为“toString()”似乎工作正常。
我正在使用 perl v5.8.8 & XML::LibXML 1.88 版