有没有办法获得给定Java类型的XSD类型?

时间:2015-07-30 17:45:21

标签: java xml xsd jaxb

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

示例:

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

为了达到这个目的,我正在做一个UGLY开关声明。

使用JAXB或其他库有没有干净的方法吗?

1 个答案:

答案 0 :(得分:4)

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

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

所以基本上整个过程看起来像:

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