问题标签 [xmlspy]

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 投票
1 回答
214 浏览

xml - 还指定 XSD 时忽略 DTD?

在为 XML 文档同时指定 DTD 和 XSD 时,验证器似乎会针对 XSD 进行验证并完全忽略 DTD。

我已经在 XMLSpy 2018sp1 和 Xerces 的 StdInParse 工具中验证了这一点。

标准用例是我们引用(并且从不编辑)的行业标准 DTD,我必须对其进行验证。除此之外,我们使用我们自己的 XSD 进一步约束 XML。

我的直觉是,如果两者都指定了,DTD 和 XSD 都应该通过验证才能验证文档吗?但也许 XSD 被认为可以取代任何 DTD?

示例 XML - 在下面 - foo.dtd 将永远不会用于验证文档。即使它违反 foo.dtd,它也会将文档视为有效,前提是它针对 foo.xsd 进行验证。

如果您从<Foo>foo.dtd 中删除属性并再次验证,例如 XMLSpy 将突然发现任何 DTD 问题....将 XSD 位置放回 Foo,错误再次消失!

任何人都可以确认什么是正确的行为,如果有的话?

0 投票
1 回答
750 浏览

xml - XPath:为什么 /document-node() 匹配文档节点?

XPath 表达式/返回文档节点。

一个 XPath 表达式/html等效于/child::html并且给定一个 HTML 文档将返回 html 元素。这当然是通过转到文档节点(由 表示/)然后找到作为 html 标记的子元素来评估的。

那么为什么/document-node()实际上返回文档节点?

给定一般的 XPath 表达式规则,我假设/document-node()它等价于/child::document-node(),并且/child::document-node()应该返回一个空节点序列(因为文档节点永远不是文档节点的子节点)。事实上/child::document-node() 确实返回了一个空节点序列,这让我相信它/document-node()不等于/child::document-node(). 这似乎违反了一般 XPath 表达式规则,其中空轴是隐含的子轴1

是否有一些特殊规则,当你有一个document-node()轴的步长时,假设是self而不是child?我正在使用最新版本的 Altova XMLSpy (2018 sp1)。或者,这是 XMLSpy 中的错误吗?还是我对一般 XPath 表达式规则的某些理解不正确?

注意:对于任何尝试这个的人,只有 XPath 2 和 XPath 3 支持document-node()

1更新:作为一个不相关的 FYI,我从 Mads Hansen 的回答中学到了一些新东西:在 XPath 2 和 XPath 3 中,除非有属性测试,否则空轴是隐含的子轴;如果有一个属性测试,它实际上是一个隐含的属性轴。所以 while/html是隐含/child::html的,/attribute()是隐含的/attribute::attribute()

0 投票
1 回答
35 浏览

html - 通过漂亮打印正确表示的代码

我的代码表示存在问题。这由我的 XSLT 正确处理,但输出很丑陋且不符合预期。通常,pretty-print-Function 可以完美运行,但在我进行更改后无法正常工作,我不知道该怎么做。我认为<xsl:apply-templates>我在这里使用的有问题。有没有办法在漂亮的打印后得到漂亮的代码?

注意:我使用的是 XSLT 版本 1,我正在使用 Altova XMLSpy 进行编码。

这是我的 XML:

这是我的 XSLT:

正如我所提到的,结果是正确的,它只是缩进和表示。这就是它的样子:

但它现在看起来像这样:

0 投票
0 回答
112 浏览

character-encoding - 如何在 XMLSpy 中重新编码 XML 文档以使用实体

我有一个相当大的 XSLT 模板,其中包含双语文本(UTF-8 中的国家字符)。我正在寻找一个函数,它将重新编码CDATA内部的所有元素以使用 XML#实体,允许我将 XSLT 存储为纯US-ASCII编码。

这是一个基本示例:

whereé被编码为C3 A9. 所需的输出将是

其中&#233;对应于 的代码点'LATIN SMALL LETTER E WITH ACUTE' (U+00E9)。在第一个示例中更改编码前导码会导致错误,因为 UTF-8 字节变得无效。

有没有一种简单的方法可以做到这一点,还是我必须求助于宏?

0 投票
2 回答
878 浏览

java - 无法从 WSDL 创建 Web 服务(netbeans:指定的 WSDL 文件中没有服务。)

我在 Altora XMLSpay 中创建了 WSDL 文件,我想在 Netbeans 中创建 Web 服务(来自 WSDL 的 Web 服务...),但是在添加 .wsdl 文件时,Netbeans 总是写“指定的 WSDL 文件中没有服务”。你能帮助我吗?我的 wsdl 文档网有什么问题?

0 投票
0 回答
345 浏览

xml - XMLSpy 升级到 2019 时出现 XSL 和 Schematron 错误

在 XMLSpy 升级到 2019 之前,我们使用的脚本运行良好。创建它们的人不再在这里工作。现在我们在使用脚本进行转换和验证它时收到错误消息。有谁知道如何纠正这个问题?

谢谢,

雷切尔

使用脚本时的错误消息:

验证时的部分错误消息:

0 投票
2 回答
297 浏览

xml - 如何删除扁平 xsd 中未使用的类型?

所以,我的问题如下。我有一个 XSD 文件,该文件的顶部包含另一个架构。包含的架构有另一个依赖项,等等其他几个文件。我决定将 xsd 文件扁平化为单个文件会更容易。我现在有一个 28,000 行的 XSD 文件,其中包含许多未使用的类型。我需要将扁平文件上传到某个地方,但现在它太大了。我能够使用 XMLSpy 展平 xml。

由于文件太大,我上传到这里查看:https ://filebin.net/m9ldhtty4rkmgixj/FlatRates.xsd

有没有办法删除所有非手动未使用的无用依赖项?

0 投票
2 回答
287 浏览

xml - 累加器不适用于 Saxon PE 9-9-1-5 Java 的当前文档

我有一个输入 XML:

在我的 xslt 模板中,我想直接在 MessageFormat 下计算每个 StructFormat 的 (FieldFormat/@length + string-length(TagField/@value):

当我使用 XML Spy Professional 2020 SP1 运行它时,我得到了输出:

但是当我用 Saxon 9-9-1-5 Java 运行它时,java -cp /d/SaxonPE9-9-1-5J/saxon9pe.jar net.sf.saxon.Transform -s:format.xml -xsl:accumulator.xslt -o:output.xml 我得到了错误:

在 accumulator.xslt 的第 13 行第 83 列的 xsl:attribute/@select 中评估 (fn:accumulator-before(...)) 时出错:XTDE3362:累加器位置计数不适用于未知调用者调用的当前文档(类net.sf.saxon.expr.instruct.ForEach) at file:/D:/xslt/accumulator.xslt#11 在 accumulator.xslt 第 9 行带有 match="/" 的模板规则中,累加器位置计数不适用于当前文件

我的蓄能器出了什么问题?为什么它适用于 XML Spy,而不适用于 Saxon 9.9?

实际上我想在我的累加器中添加一个条件来检查TagField/@value变量中的值是否出现$msg在正确的位置。

例如 for StructFormat[@name='TransportEventHeader'],$msg 中的前 3 个字符是“H0”,所以它匹配StructFormat[@name='TransportEventHeader']/TagField/@value,在这种情况下应该将长度添加到我的累加器中,如果没有,则不应该添加。我不知道如何在累加器中实现它。

0 投票
1 回答
191 浏览

json - JSON Schema Draft v7 - 基于通用枚举类型选择的附加枚举属性定义 - 在 XMLSpy Pro 2020 中进行测试

我正在尝试定义一个 json 模式,该模式具有许多对象的通用枚举类型,然后根据选择的枚举,定义枚举的可能组合以及所需的其他元素。该示例具有 {IDNumber, Color, Furniture Type} 的家具数据,然后根据从枚举列表中选择的类型,获取分配有不同枚举的函数。我还将“分配的人员”作为额外元素的示例。

我认为我使用 anyof 和 const 正确地做到了这一点。但是,当我使用 XMLSpy Pro 2020 进行测试时,它会生成无效的 json 示例,并且当我尝试验证无效示例时,它也会通过....所以,1) 我表达得很好吗?2)我做错了什么?3)有更好的方法吗?4) 是工具还是 json 模式?请帮忙。



XMLSpy 验证为正常的无效 JSON 示例:(它链接到我在信息页面中的架构)灯不应允许 6x4 作为函数...


另一个无效示例...椅子具有“分配的人员”并且显示了错误的类型值,但这也可以验证...

这是遵循 使用 anyof 查看枚举部分中的建议

也许我必须使用 if-then 构造?在这里,我尝试了 if-then 在 any-of 但我也得到了 json 的验证,它允许来自其他家具类型的枚举......

0 投票
1 回答
211 浏览

xml - Altova XMLSpy - 来自 tokenize() 函数的 Xpath “Unexpected 'atomic' item xs:string”错误

我正在使用 Altova XMLSpy,但在tokenize()使用 Xpath 2.0 的 Xpath 函数时遇到问题。

我有一个包含此标记的 XML,其中包含我需要的值:

这是我用来检索我需要的值的 Xpath:

错误出现在tokenize()函数的第三次使用中,并说:

意外的“原子”项 xs:字符串详细信息 XPTY0020:轴步骤中的上下文项必须是节点

此外,如果我使用固定字符串,像这样

错误不会发生。

问题是:为什么错误只发生在那里(而不是在 if 语句中,例如),我能做什么?