为什么 Xsd 无法加载转码服务



我正在使用CodeSynthesis XSD(用于C++的XML数据绑定工具(从.xsd文件自动生成.hpp和.cpp文件。但是当我在我的.xsd文件上运行xsd时,我收到此错误:

Could not load a transcoding service

我正在使用openSUSE Leap-42.2,Xsd 4.0和Apache Xercess 3.1.4。以下是详细信息:

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:我已经用--enable-transcoder-gnuiconv开关构建了Apache Xercess,并且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

此 Linux 上未定义任何语言环境。因此,只需设置一个区域设置:

$ export LANG=en_US.UTF-8

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

最新更新