Я бы разбил после обрезки предыдущего или конечного мусора:
String s = "Item(s): [item1.test], [item2.qa],[item3.production] ";
String r1 = "(^.*?\\[|\\]\\s*$)", r2 = "\\]\\s*,\\s*\\[";
String[] ss = s.replaceAll(r1,"").split(r2);
System.out.println(Arrays.asList(ss));
// [item1.test, item2.qa, item3.production]
Это обычное требование. Вы можете сделать это, предоставив дополнительный файл привязки JAXB для настройки того, как JAXB переводит имена типов схемы в имена классов Java.
Эти файлы обычно заканчиваются расширением «.xjb». Вам нужно создать его для своей схемы, например:
<jxb:bindings version="1.0"
xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
jxb:extensionBindingPrefixes="xjc">
<jxb:bindings schemaLocation="nl.company.service.xsd" node="/xs:schema">
<jxb:schemaBindings>
<jxb:nameXmlTransform>
<jxb:typeName prefix="XML"/>
<jxb:anonymousTypeName prefix="XML"/>
</jxb:nameXmlTransform>
</jxb:schemaBindings>
</jxb:bindings>
</jxb:bindings>
После того, как вы это сделаете, перетащите файл xjb где-нибудь в каталог сборки и скажите Maven использовать его во время перевода:
<includeBindings>
<includeBinding>mybindings.xjb</includeBinding>
</includeBindings>
И вот подсказка для дорога: если вы находитесь на пути, содержащем пробелы (например, «Документы и настройки \ пользователь \ проект»), тогда JAXB выйдет из строя со странными ошибками.