搜索

34.6. 简单类型替换

download PDF

概述

XML 允许使用 xsi:type 属性在兼容类型之间进行简单类型替换。但是,简单类型的默认映射到 Java 原语类型,但不完全支持简单类型替换。运行时可以处理基本的简单类型替换,但信息会丢失。可以自定义代码生成器来生成可方便简单类型替换的 Java 类。

默认映射和编组

因为 Java 原语类型不支持类型替换,因此默认简单类型映射到 Java 原语类型提供了支持简单类型替换的问题。如果尝试将一个变量传递给一个变量,则 Java 虚拟机 会提示,即使定义类型允许的 schema 也会导致一个 int

要解决 Java 类型系统的限制,Apache CXF 允许在元素的 xsi:type 属性的值满足以下任一条件时进行简单类型替换:

  • 它指定与元素的 schema 类型兼容的原语类型。
  • 它指定从元素的 schema 类型限制限制的类型。
  • 它指定从元素的 schema 类型中由扩展生成的复杂类型。

当运行时进行类型替换时,它不会保留元素的 xsi:type 属性中指定的类型的任何知识。如果类型替换从复杂的类型到简单类型,则只保留与简单类型直接相关的值。由 扩展添加的任何其他元素和属性都将丢失。

支持丢失类型替换

您可以自定义生成简单类型,以方便以下列方式支持简单类型替换:

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.