有什么方法可以在给定 Java 类型的情况下获得 XSD 类型?

Is there any way to obtain the XSD type given a Java Type?

我正在使用 JavaTypes,我想将 JavaType 转换为 XsdType。 我没有找到一个简单的方法来做到这一点,最后创建了一个给定 JavaType returns 关联的 XsdType.

的方法

示例:

toXsdType(String.class.getName()); --> "xsd:string"

为了实现这一点,我正在做一个丑陋的 switch 语句。

是否有使用 JAXB 或其他库的简洁方法?

您可能对 TypeInfoSet.getTypeInfo(T type) 感兴趣,它为给定的 Java 类型提供了 XML 类型。

至于TypeInfoSet,可以通过JAXBContextImpl.getTypeInfoSet()获取。

所以基本上整个过程如下所示:

  • 使用 RI 创建 JAXBContext 的实例,将其转换为 JAXBContextImpl
  • 得到一个TypeInfoSet.
  • 为您的 Java 类型获取一个 NonElement
  • 使用 NonElement.getTypeName() 获得 QName