【问题标题】:JAXB xjc tool and non-ascii charactersJAXB xjc 工具和非 ascii 字符
【发布时间】:2012-08-24 07:28:01
【问题描述】:
我有一个包含非 ascii 字符的 xsd 方案。
我想生成类,但强制 xjc 工具不要将这些字符转换为 unicode 格式 (\uXXXX),并保持原样。
问题在于,当它将 unicode 表示形式的枚举值放入生成类的 XmlEnumValue 注释时,JAXB 解组器无法映射适当的字段。当我手动将其转换为普通状态时,它可以正常工作。
有什么建议吗?
【问题讨论】:
标签:
jaxb
xjc
non-ascii-characters
【解决方案1】:
您可以使用此代码将文件中的字符转换回本机表示:
import org.apache.commons.io.FileUtils;
import org.apache.commons.lang.StringEscapeUtils;
public void convertToNative(String filePath) throws IOException {
File file = new File(filePath);
FileWriter writer = new FileWriter(filePath + ".converted");
try {
String s = FileUtils.readFileToString(file, "utf-8");
s = StringEscapeUtils.unescapeJava(s);
writer.write(s);
} finally {
writer.close();
}
}