2017-03-31 453 views
0

我正在使用CodeSynthesis XSD(用于C++的XML数据绑定工具)从.xsd文件自动生成.hpp和.cpp文件。为什么Xsd无法加载代码转换服务?

Could not load a transcoding service 

我使用openSUSE的跨越式42.2,XSD 4.0和Apache 3.1.4 Xercess:但在我的.xsd文件运行时XSD,我得到这个错误。下面是详细信息:

Scanning dependencies of target XSDModel 
[ 2%] Generating C++/XML mapping 
Could not load a transcoding service 
lib/CMakeFiles/XSDModel.dir/build.make:51: recipe for target 'src/model/Model.cpp' failed 
make[2]: *** [src/model/Model.cpp] Error 255 
CMakeFiles/Makefile2:76: recipe for target 'lib/CMakeFiles/XSDModel.dir/all' failed 
make[1]: *** [lib/CMakeFiles/XSDModel.dir/all] Error 2 
Makefile:127: recipe for target 'all' failed 
make: *** [all] Error 2 
[ 2%] Generating C++/XML mapping 
Could not load a transcoding service 
lib/CMakeFiles/XSDModel.dir/build.make:51: recipe for target 'src/model/Model.cpp' failed 
make[2]: *** [src/model/Model.cpp] Error 255 
CMakeFiles/Makefile2:76: recipe for target 'lib/CMakeFiles/XSDModel.dir/all' failed 
make[1]: *** [lib/CMakeFiles/XSDModel.dir/all] Error 2 
Makefile:127: recipe for target 'all' failed 
make: *** [all] Error 2 

编辑1: 我已经建立的Apache Xercess与--enable-transcoder-gnuiconv开关和iconv安装在我的机器上也是如此。

编辑2: 一些挖后,我发现,在我的Linux的echo $LANG命令打印一个空行。另外,运行localedef -i en_US -f UTF-8 en_US.UTF-8会打印此错误:

character map file `UTF-8' not found: No such file or directory 
cannot read character map directory `/usr/share/i18n/charmaps': No such file or directory 

回答

0

在此Linux上没有定义locale。所以,只需设置一个区域:

$ export LANG=LANG=en_US.UTF-8 

然后,一切都会好起来的。