adottare le seguenti sopra XSD semplificata:aiuto per favore: xjc getta "Due dichiarazioni provocano una collisione nella classe 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>
Quindi, tentare la seguente:
xjc test.xsd
Si dovrebbe sempre avere la seguente eccezione:
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.
si noti che v'è un nome di elemento "Widget "che è un tipo complesso e contiene elementi denominati" colore ". C'è anche, allo stesso livello dell'elemento "Widget", un elemento semplice denominato "WidgetColor".
Che cosa è più sconcertante è che se si rimuove l'attributo minOccurs = "0" O si rimuovere l'attributo nillable = "true" dalla sequenza elemento "colore", xjc compila lo schema con successo.
Qualcuno ha mai visto questo problema o può suggerire una soluzione?
Grazie,
Mike.