问题标签 [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.
xml - XML 和 XSD - 使用元素名称代替 xsi:type 来实现多态性
以W3C车载XSD为例:
,以及以下“meansOfTravel”的定义:
使用此定义,您需要使用 xsi:type 指定实例的类型,如下所示:
我只想实现“类型名称”-“元素名称”映射,以便可以将其替换为
到目前为止,我能做到这一点的唯一方法是明确表示:
但这意味着我必须在“MeansOfTravel”复杂类型中列出所有可能的子类型。如果您将元素称为“平面”,是否无法让 XML 解析器假定您的意思是“平面”?还是我必须明确做出选择?我只想让我的设计保持干燥——如果你有任何其他建议(比如团体等)——我会全力以赴。
xml - 如何让 XML::Pastor 为编程生成的元素设置 xsi:type?
我正在学习如何使用 Perl 作为 Java Web 服务的自动化测试框架工具,并且在从 Pastor 生成的模块生成 xml 请求时遇到了麻烦。问题是,当包含从元素所需类型扩展的类型时,xsi:type 不包含在生成的 xml 字符串中。例如,我想从 XML::Pastor 从我的 xsd 生成的模块生成以下 xml 请求:
我目前得到的是:
以下是来自 xsd 的一些相关片段:
以下是脚本的相关部分:
我没有在 XML::Pastor 模块的文档中的任何地方看到这个问题,所以如果有人能指出我使用它的一个很好的参考,我将不胜感激。另外,我只使用 XML::Pastor 因为我不知道任何其他模块可以做到这一点,所以如果你们中的任何人知道更容易使用或维护得更好的东西,请告诉我也!
xml - xsi:类型反序列化问题
我在反序列化具有 xsi:type 属性的 xml 节点时遇到问题。部分代码:
序列化后
该值可以被很好地序列化(如图),但是当它被反序列化时,ValueObject 没有类型信息,只有 System.Xml.XmlNode[3]。
这是.net fx 4.0,C#
任何想法为什么?
谢谢,
java - 在保留 xsi:type 的同时合并文档
我有 2 个 Document 对象,其中包含类似 XML 的文档。例如:
还有一个:
我需要将它们合并到具有 1 个根元素和 4 个子元素的 1 个文档中。问题是,如果我使用document.importNode
函数进行合并,它会正确处理所有地方的命名空间,但 xsi:type 元素。所以我得到的结果是:
如您所见,ns2 用于xsi:type
但未在任何地方定义。有没有自动化的方法来解决这个问题?
谢谢。
添加:
如果使用默认的 java DOM 库无法完成此任务,也许我可以使用其他一些库来完成我的任务?
xml - 如何在此架构模板中为 body 元素创建 xsi:type 属性?
这是实际的 XML。
下面是 schema1.xsd
xml 模式已经为上面的 xml 编写了,除了一件小事。xsi:type
问题是如何解析属性<root xsi:type="tmLoginRequest" />
?
xsd - JAXB:Unmarshaller 尝试实例化抽象类(忽略 xsi:type)
几天以来,我一直在努力解决一个奇怪的问题。客户提供 Web 服务和 WSDL。我通过使用 wsimport 和一些 jaxb 自定义来导入 WSDL。生成所有 Java 类都没有任何错误。
当我使用 Java 类解组响应时,出现以下异常:
我将响应对象减少到最小的有效 xml:
这是数据类型定义:
我不知道为什么 xsi:type 被忽略。特别是因为在其他也使用子类的元素中它工作得很好。
我还用当前的 JAXBRI 替换了 JDK 附带的默认 jaxb - 仍然是同样的错误。
有谁知道出了什么问题?我想,我已经“被线蒙蔽了”:-/
问候 MausFan
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 格式文件(我想按原样使用它们)。
建议?
xml - 如何在样式表中发出 xsi:type 属性?
我有一个 XSLT 样式表,它需要发出一个看起来像这样的 XML 片段(为简洁起见,省略了“...”位):
样式表如下所示:
XSLT 处理器的输出如下所示:
换句话说,它缺少xmlns:foo
声明。事实上,尽管在样式表中声明了声明,但发出的 XML 中完全没有声明。当我需要反序列化发出的 XML 时,这会搞砸事情。
如何让我xmlns:foo
出现在发出的 XML 中?处理器实现 XSLT 1.0。
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的了解非常有限。所有在网络上寻找相关内容的尝试都没有成功。
非常感谢
c#-4.0 - 反序列化包含 xsi:type 属性的文档时遇到问题
解析 XML 文件时出现错误serializer.Deserialize(reader)
:
Namespace prefix \"java\" not defined
我的 XML http://www.virtualdtm.ru/files/serverReplays/rFactorHotlapsData.xml
我的代码
我的课
[1]: