Как я могу легко преобразовать пространство имен XML в имя пакета Java? - PullRequest
4 голосов
/ 17 февраля 2011

Мне нужно преобразовать пространство имен XML в имя пакета Java так же, как JAXB или XmlBeans.

Например, http:\www.widgetvendor.com\types\widgetTypes.xsd следует преобразовать в com.widgetvendor.types.widgettypes

Я могу написать свою собственную функцию для выполнения этого преобразования, но я думаю, что это обычная задача и должны быть утилиты.
Можешь назвать кого-нибудь?

Ответы [ 3 ]

1 голос
/ 23 ноября 2014

Да, есть простой способ преобразовать пространство имен XML в имя пакета Java!

Вы можете использовать тот же класс, который внутренне используется JAXB для выполнения операции, в соответствии со спецификацией JAXB * Окончательный выпуск 2.0 (§D.5.1 Генерация имени пакета Java: сопоставление из URI пространства имен ) правила конвертации.

Я столкнулся с этой публикацией в 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);
}
1 голос
/ 17 февраля 2011

эта ссылка может вам помочь http://forums.java.net/node/690286

, но лучше написать свою собственную функцию, которую вы можете настроить, если есть какие-то требования в будущем.

0 голосов
/ 17 февраля 2011

Это не обычная задача. Вы лучше всего сами кодируете функцию.

(И прежде чем вы спросите ... Нет, я не сделаю этого за вас. Извините.)

...