重命名XSD文件时xjc.exe的奇怪行为

时间:2016-04-05 04:07:44

标签: java xml xsd xjc

我有一组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,它将成功运行!

这种异常行为可能是什么原因?

请注意,其他文件没有引用第一个文件。

感谢。

0 个答案:

没有答案