Lấy sau hơn XSD đơn giản:giúp đỡ xin vui lòng: XJC ném "Hai tờ khai gây ra một vụ va chạm trong lớp ObjectFactory"
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="com.acme" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Widget">
<xs:complexType>
<xs:sequence>
<xs:element
minOccurs="0" name="color" nillable="true" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="WidgetColor" type="xs:string" />
</xs:schema>
Sau đó, cố gắng như sau:
xjc test.xsd
Bạn luôn nên ngoại lệ sau:
parsing a schema...
compiling a schema...
[ERROR] Two declarations cause a collision in the ObjectFactory class.
line 11 of file:/C:/test.xsd
[ERROR] (Related to above error) This is the other declaration.
line 7 of file:/C:/test.xsd
Failed to produce code.
Lưu ý rằng có tên phần tử "Widget "là một complexType và có các phần tử có tên" màu ". Ngoài ra, ở cùng cấp với phần tử "Widget", một phần tử đơn giản có tên "WidgetColor".
khó hiểu hơn là gì là nếu bạn loại bỏ thuộc tính minOccurs = "0" HOẶC bạn loại bỏ thuộc tính nillable = "true" từ "màu" chuỗi yếu tố, XJC biên dịch schema thành công.
Có ai từng gặp vấn đề này hoặc có thể đề xuất giải pháp không?
Xin cảm ơn,
Mike.