问题标签 [xsitype]

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 回答
4604 浏览

xml - XML 和 XSD - 使用元素名称代替 xsi:type 来实现多态性

以W3C车载XSD为例:

,以及以下“meansOfTravel”的定义:

使用此定义,您需要使用 xsi:type 指定实例的类型,如下所示:

我只想实现“类型名称”-“元素名称”映射,以便可以将其替换为

到目前为止,我能做到这一点的唯一方法是明确表示:

但这意味着我必须在“MeansOfTravel”复杂类型中列出所有可能的子类型。如果您将元素称为“平面”,是否无法让 XML 解析器假定您的意思是“平面”?还是我必须明确做出选择?我只想让我的设计保持干燥——如果你有任何其他建议(比如团体等)——我会全力以赴。

0 投票
0 回答
415 浏览

xml - 如何让 XML::Pastor 为编程生成的元素设置 xsi:type?

我正在学习如何使用 Perl 作为 Java Web 服务的自动化测试框架工具,并且在从 Pastor 生成的模块生成 xml 请求时遇到了麻烦。问题是,当包含从元素所需类型扩展的类型时,xsi:type 不包含在生成的 xml 字符串中。例如,我想从 XML::Pastor 从我的 xsd 生成的模块生成以下 xml 请求:

我目前得到的是:

以下是来自 xsd 的一些相关片段:

以下是脚本的相关部分:

我没有在 XML::Pastor 模块的文档中的任何地方看到这个问题,所以如果有人能指出我使用它的一个很好的参考,我将不胜感激。另外,我只使用 XML::Pastor 因为我不知道任何其他模块可以做到这一点,所以如果你们中的任何人知道更容易使用或维护得更好的东西,请告诉我也!

0 投票
1 回答
2240 浏览

xml - xsi:类型反序列化问题

我在反序列化具有 xsi:type 属性的 xml 节点时遇到问题。部分代码:

序列化后

http://imgur.com/uEJ1s

该值可以被很好地序列化(如图),但是当它被反序列化时,ValueObject 没有类型信息,只有 System.Xml.XmlNode[3]。

这是.net fx 4.0,C#

任何想法为什么?

谢谢,

0 投票
6 回答
2167 浏览

java - 在保留 xsi:type 的同时合并文档

我有 2 个 Document 对象,其中包含类似 XML 的文档。例如:

还有一个:

我需要将它们合并到具有 1 个根元素和 4 个子元素的 1 个文档中。问题是,如果我使用document.importNode函数进行合并,它会正确处理所有地方的命名空间,但 xsi:type 元素。所以我得到的结果是:

如您所见,ns2 用于xsi:type但未在任何地方定义。有没有自动化的方法来解决这个问题?

谢谢。

添加:

如果使用默认的 java DOM 库无法完成此任务,也许我可以使用其他一些库来完成我的任务?

0 投票
0 回答
909 浏览

xml - 如何在此架构模板中为 body 元素创建 xsi:type 属性?

这是实际的 XML。

下面是 schema1.xsd

xml 模式已经为上面的 xml 编写了,除了一件小事。xsi:type问题是如何解析属性<root xsi:type="tmLoginRequest" />

0 投票
2 回答
2834 浏览

xsd - JAXB:Unmarshaller 尝试实例化抽象类(忽略 xsi:type)

几天以来,我一直在努力解决一个奇怪的问题。客户提供 Web 服务和 WSDL。我通过使用 wsimport 和一些 jaxb 自定义来导入 WSDL。生成所有 Java 类都没有任何错误。

当我使用 Java 类解组响应时,出现以下异常:

我将响应对象减少到最小的有效 xml:

这是数据类型定义:

我不知道为什么 xsi:type 被忽略。特别是因为在其他也使用子类的元素中它工作得很好。

我还用当前的 JAXBRI 替换了 JDK 附带的默认 jaxb - 仍然是同样的错误。

有谁知道出了什么问题?我想,我已经“被线蒙蔽了”:-/

问候 MausFan

0 投票
0 回答
571 浏览

c# - 使用具有外部 xmlns 引用的 XmlSerializer 反序列化

我需要阅读越来越多的 XML 格式的 BCP (t-sql) 格式文件。我使用 xsd.exe 和一些 BCP 格式文件创建 xsd 文件,并尝试将 xml 文件作为对象读取。但它失败了:

未处理的异常:System.InvalidOperationException:XMLdocument (4, 6) 中存在错误。---> System.InvalidOperationException:无法识别指定的类型:name='CharTerm',namespace='http://schemas.microsoft.com/sqlserver/2004/bulkload/format',在。

XML 文件是这样的:

我像这样阅读 XML 文件:

似乎没有使用外部 xmlns 引用。我搜索了很多文档,但没有看到如何解决这个问题。最好不必修改 BCP XML 格式文件(我想按原样使用它们)。

建议?

0 投票
1 回答
569 浏览

xml - 如何在样式表中发出 xsi:type 属性?

我有一个 XSLT 样式表,它需要发出一个看起来像这样的 XML 片段(为简洁起见,省略了“...”位):

样式表如下所示:

XSLT 处理器的输出如下所示:

换句话说,它缺少xmlns:foo声明。事实上,尽管在样式表中声明了声明,但发出的 XML 中完全没有声明。当我需要反序列化发出的 XML 时,这会搞砸事情。

如何让我xmlns:foo出现在发出的 XML 中?处理器实现 XSLT 1.0。

0 投票
1 回答
2758 浏览

web-services - Axis2 客户端缺少原始类型的 xsi 类型属性

我正在尝试将我的客户端从axis1.x 更新到axis2-1.6.2,而服务器端保持不变。网络服务由 ZSI webservice 平台在 python 上实现。使用 WSDL2Java 工具和 XMLBeans 数据绑定,使用旧的 wsdl 文件成功生成了客户端。

在向旧 Web 服务发送请求时遇到问题,新的 axis2 客户端创建的请求缺少旧服务器所期望的 xsi:type 属性,因此服务器返回 Any cannot parse untyped element 错误。

新旧请求看起来像

而新的是

如您所见,“arg”参数丢失 xsi:type="xsd:string" ,我认为这是主要问题。

这里有更多技术细节:

wsdl 看起来像

似乎axis2由于某种原因省略了原始类型的 xsi:type ,我也没有找到 xmlns:xsd="http://www.w3.org/2001/XMLSchema"xmlns:xsi="http://www. w3.org/2001/XMLSchema-instance 命名空间可能也相关。我假设使用 Axis2 客户端也不需要升级服务器。

有人可以给个方向吗,似乎有任何配置问题,但我对axis2的了解非常有限。所有在网络上寻找相关内容的尝试都没有成功。

非常感谢

0 投票
1 回答
2010 浏览

c#-4.0 - 反序列化包含 xsi:type 属性的文档时遇到问题

解析 XML 文件时出现错误serializer.Deserialize(reader)Namespace prefix \"java\" not defined

我的 XML http://www.virtualdtm.ru/files/serverReplays/rFactorHotlapsData.xml

我的代码

我的课

[1]: