有什么方法可以在给定 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
。
我正在使用 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
。