我有一组XSD文件:
int int_array[] = { 0, 1, 2 };
char *str_array[] = {
"ZERO",
"ONE",
"TWO"
};
第一个文件(主文件),635949212012288836_input.xml.xsd,包含其他5个文件的导入:
635949212012288836_input.xml.xsd
635949212012288836_input.xml_app1.xsd
635949212012288836_input.xml_app2.xsd
635949212012288836_input.xml_app3.xsd
635949212012288836_input.xml_app4.xsd
xml.xsd
当我运行以下命令以将Java源代码生成到“generated”文件夹中时:
<xs:import namespace="http://schemas.xxxx.com/soa/emf/GLHR-MLM-CURD/envelope/" schemaLocation="635949212012288836_input.xml_app2.xsd"/>
<xs:import namespace="http://schemas.xxxx.com/soa/emf/common/header" schemaLocation="635949212012288836_input.xml_app1.xsd"/>
<xs:import namespace="http://schemas.xxxx.com/soa/emf/service/GLHR-MLM-CURD" schemaLocation="635949212012288836_input.xml_app3.xsd"/>
<xs:import namespace="http://schemas.xxxx.com/soa/emf/common/body" schemaLocation="635949212012288836_input.xml_app4.xsd"/>
<xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="xml.xsd"/>
它成功运行。
如果我将第一个文件635949212012288836_input.xml.xsd重命名为以下任何名称(在名称中添加额外的“x”),
xjc.exe -d generated *.xsd
再次运行xjc.exe,我会在文件635949212012288836_input.xml_app2.xsd中找到一些无法解析的错误。
但是,如果我将第一个文件重命名如下(改为添加“i”):
635949212012288836_xinput.xml.xsd
635949212012288836_ixnput.xml.xsd
635949212012288836_inputx.xml.xsd
再次运行xjc.exe,它将成功运行!
这种异常行为可能是什么原因?
请注意,其他文件没有引用第一个文件。
感谢。