如何轻松地将XML命名空间转换为Java包名?

时间:2011-02-17 10:00:58

标签: java xml namespaces xsd

我需要以与JAXB或XmlBeans相同的方式将XML命名空间转换为Java包名称。

例如,http:\www.widgetvendor.com\types\widgetTypes.xsd应转换为com.widgetvendor.types.widgettypes

我可以编写自己的函数来执行此转换,但我认为这是常见任务,应该有实用程序 你能说出任何名字吗?

3 个答案:

答案 0 :(得分:1)

此链接可能会对您有所帮助http://forums.java.net/node/690286

但最好编写自己的函数,以便在将来有一些要求时可以自定义。

答案 1 :(得分:1)

是的,有一种简单的方法可以将XML命名空间转换为Java包名称!

根据JAXB Specification 2.0最终版本(§D.5.1生成Java包名称:从命名空间URI映射)转换规则,您可以使用JAXB内部使用的相同类来执行操作

我在2011年搜索了一个可以执行此操作的标准实用程序类时遇到了这个帖子。不幸的是,讽刺的回应并没有帮助任何人。如果下一个人遇到此问题并希望得到实际答案,请参阅下面的代码段:

/* Also available in the internal package space as part of the JDK */
import com.sun.xml.bind.api.impl.NameConverter; 

public static String convertToPackageName(String xmlNamespace) {
    NameConverter nameConverter = new NameConverter.Standard();
    return nameConverter.toPackageName(xmlNamespace);
}

答案 2 :(得分:0)

这不是一项常见任务。你最好自己编写功能。

(在你问之前......不,我不会为你做的。抱歉。)