问题标签 [extension-objects]

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.

0 投票
2 回答
2593 浏览

c# - 在 Visual Studio 2010 中使用扩展对象调试 XSLT

我目前正在从事一个涉及大量 XSLT 转换的项目,我真的需要一个调试器(我有 1000 多行长的 XSLT,但我没有编写它们 :-)。

该项目是用 C# 编写的,并使用了扩展对象:

据我所知,在这种情况下,Visual Studio 是唯一可以帮助我逐步调试转换的工具。由于扩展对象,静态调试器没有用处(当它到达引用其命名空间的元素时会引发错误)。幸运的是,我找到了这个线程,它给了我一个起点(至少我知道可以做到)。

在搜索 MSDN 之后,我找到了可以进行转换的标准。它们在此处列出。简而言之:

  • XML 和 XSLT 必须通过具有IXmlLineInfo接口 ( XmlReader& co.)的类加载
  • 构造函数中使用的 XML 解析器XSLTCompiledTransform是基于文件的(XmlUriResolver应该可以工作)。
  • 样式表应该在本地机器或 Intranet 上(?)

据我所知,我符合所有这些标准,但它仍然不起作用。相关代码示例贴在下面:

我真的不明白我做错了什么。我检查了两个XmlReader对象的接口,它们实现了所需的接口。此外,BaseUriXmlResolver继承自XmlUriResolver并且样式表存储在本地。下面的屏幕截图是我进入该Transform功能时得到的。首先我可以在单步执行参数后看到样式表代码(在模板匹配上),我得到了这个:

进入样式表时出现的错误

如果有人知道为什么它不起作用或有其他方法让它起作用,我将非常感激:)。

谢谢,
亚历克斯

0 投票
1 回答
2380 浏览

c# - .net 4 xslt 扩展对象

我正在升级一个 asp.net v3.5 网络应用程序。到 v4,我在 XmlDataSource 对象上使用的 XSLT 转换遇到了一些问题。

XSLT 文件的一部分:

这是初始化:

扩展对象:

我之前问过一个类似的问题:.net 4 xslt transformation Extension Function broken。关于模棱两可的调用,答案是正确的,但即使使用另一个正确的对象,它也行不通。我没有收到任何错误,只是没有显示数据。

我也试过这个;

这在控制台应用程序中可以正常工作,但在 Web 应用程序中我得到一个安全异常,再次没有任何进一步的细节;

[SecurityException: Request failed.]
System.RuntimeMethodHandle.PerformSecurityCheck(Object obj, RuntimeMethodHandleInternal 方法, RuntimeType parent, UInt32 invocationFlags) +0
System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] 参数, CultureInfo文化,布尔skipVisibilityChecks)+323
System.Reflection.RuntimeMethodInfo.Invoke(Object obj,BindingFlags invokeAttr,Binding binder,Object[]参数,CultureInfoculture)+38
System.Reflection.MethodBase.Invoke(Object obj,Object[]参数) +35
System.Xml.Xsl.XsltOld.FuncExtension.Invoke(XsltContext xsltContext, Object[] args, XPathNavigator docContext) +164
MS.Internal.Xml.XPath.FunctionQuery.Evaluate(XPathNodeIterator nodeIterator) +430

我正在完全信任地运行本地 asp.net v4 IIS7。

ExtensionObjects 可能有什么问题。另外,为什么调试这么难,有没有一个很好的工具来调试带有扩展对象的 xslt?

谢谢阿甘..

0 投票
1 回答
70 浏览

c# - Xslt 文件中的特殊字符

我正在调用我的扩展对象的方法。

这是我的方法的签名:

这是我在Xslt文件中调用它的地方:

由于部分

[base:_entity/contact:_isMobile/base:_underlyingValue='true']

包含'字符,我收到一个错误

"预期的令牌 ')',找到 'true'。...isMobile/base:_underlyingValue=' -->true<-- ']/base:_entity/contact:_extensi... "

我找不到 X-path 的转义字符。你有什么建议吗?

0 投票
1 回答
485 浏览

.net-3.5 - .NET xslt 扩展对象未找到

我正在尝试实现一个 .NET xslt 扩展对象,以检查是否存在以下示例中xml文件。我还思考了一些没有太大帮助的相关 SO 帖子。

当我尝试使用以下代码片段查找扩展时,它显示“扩展功能不可用”:

...

...

我在相同的 VS 2012 解决方案中创建了一个名为 XsltExtensionObject 的单独类库,如下所示(在 VB 中是否与第一个示例一致):

我执行 xsl 转换如下:

为什么找不到扩展名?我在这里想念什么?装配参考?

0 投票
0 回答
1418 浏览

xml - 找不到名为 {http://exslt.org/dates-and-times}date-time() 的匹配 0 参数 EXSLT 函数

我正在使用 IntelliJ IDEA 13。XSLT 处理器是 SAXON。我需要在转换中转换日期和时间。我决定使用 EXSLT。这是我在转换中添加的内容:

“exslt”目录与当前转换文件位于同一级别。这是我尝试调用 EXSLT 函数的方式:

这是编译错误:

找不到名为 { http://exslt.org/dates-and-times }date-time() 的匹配 0 参数函数。没有本地名称 date-time 的 Saxon 扩展函数

你能告诉我我做错了什么吗?我读过 SAXON 通常原生支持日期和时间扩展,但我选择 EXSLT 是为了能够在任何 XSLT 处理器上运行转换。

0 投票
0 回答
146 浏览

delphi - 在 Delphi 7 中向 XSL 添加自定义函数

我试图让 XSL 使用扩展对象上的函数,但我尝试的一切都只是告诉我函数不存在。

在我的 lib_TLB.pas 文件中,我有

function Get_ReadOnly: WordBool; safecall;

在实现的接口上定义IDispatch,我将其传递给我IXSLProcessor的 withproc.AddObject( obj, 'foo' );

xmlns:foo="foo"xsl:stylesheet元素中声明,但是当我尝试使用它时<xsl:value-of select="foo:Get_ReadOnly()"/>,它只是说该函数不存在。

我是否在某处遗漏了一步,或者说错了?

编辑:仔细检查后,它确实有效,只是不适用于作为属性获取器的任何功能。该函数具有关联的属性,并且foo:get-ReadOnly()工作正常。要么是这样,要么是因为在该接口的实现上定义的函数是“受保护的”而不是“公共的”。

无论哪种方式,如果有人能阐明其工作原理的规则是什么,而不是我在反复试验中摸索,我将不胜感激。

0 投票
1 回答
689 浏览

qlikview - 清除 QlikView 扩展对象中的当前选择

我有一个_this.Data.SearchColumn(0, "*" + d.name + "*",false);用于进行选择的扩展对象,其中_this保存来自 QlikView ( var _this = this;) 的引用的局部变量在哪里。

当我单击扩展程序中的按钮时,我希望能够清除文档中的所有选择。我尝试使用_this.Data.ClearSelections();,但它不起作用。

0 投票
3 回答
171 浏览

xml - 使用 .NET 创建扩展 XSLT 的自定义标记

有没有办法以类似于自定义函数的方式创建扩展 XSLT 的自定义标记?

即(在我的 xslt 文件中):

预期输出:

目前我正在这样做:

我在 vb 代码中的 customFunc 做这样的事情:

但我想使用标签而不是函数。

0 投票
2 回答
4921 浏览

design-patterns - What is the difference between Extension Objects Pattern and Adapter Pattern?

Can you explain me about this Extension Object Pattern and how it differ from the Adapter Pattern?

There seems to be only few resources in web that explains the Extension Object Pattern and most of them are bit confusing (at least for me).

Thanks in advance.

0 投票
1 回答
1251 浏览

java - 如何在 Eclipse Milo OpcUa 服务器上正确编写 ExtensionObject 数组?

我正在尝试在 Eclipse Milo OpcUa 服务器上编写一个 ExtensionObject 数组。我在 Java 8 和 Milo 0.2.3 上做这一切。

我测试我写到我的服务器的方法是统一自动化 UaExpert 客户端和一个小的 Python 客户端。两者都显示相同的结果。

我有以下结构(我为此场景命名为 MyStructure)。它已经作为数组存在,我想将它写入相应的节点。

我这样编写节点,其中节点是 UaVariableNode 的一个实例,并将我的 Array 对象排列成数组,我创建的对象是这样的:

我事先注册了 MyStructure 定义,如下所示:

每当我设置节点时,服务器都不会抱怨。它实际上设置了一些东西,准确地说它设置了 42 个扩展对象。在 UaExpert 中,我看到值(包括其时间戳)发生了变化,但我看不到实际值。该值只是 ExtensionObject 数组类型,我无法读取任何嵌套值。但这就是我在其他项目中看到的。它们具有自定义结构,并且嵌套字段在 UaExpert 中是人类可读的。

如果我在没有数组的情况下只写一个 MyStructure,问题不会改变。

你有什么想法,我做错了什么或根本没有做什么?