JAXB - Eigenschaft "Wert" ist bereits definiert. Verwenden Sie & lt; jaxb: Eigenschaft & gt; um diesen Konflikt zu lösen
Mithilfe von JAXB generieren von XML-binding-Klassen.
Schema basiert auf einer Reihe von legacy-XML-Dateien, und enthält dieses snippet:
<xs:complexType name="MetaType">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute type="xs:string" name="Name" />
<xs:attribute type="xs:string" name="Scheme" />
<xs:attribute type="xs:string" name="Value" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
'Value' - Attribut Konflikte mit dem 'value' - Eigenschaft des xs:string
, und die code-Generierung schlägt fehl mit der Fehlermeldung:
com.sun.istack.SAXParseException2: Property "Value" is already defined. Use <jaxb:property> to resolve this conflict.
InformationsquelleAutor der Frage brasskazoo | 2010-12-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Antwort liegt in der Nutzung von JAXB bindings (
site-template.xjb
):Den XPath-Ausdrücken finden Sie den Knoten und benennt es, damit die Vermeidung der Konflikte.
Verwendung dieser Bindungen XML-Datei, die die generierte Java-Klasse endet mit dem gewünschten
getValueAttribute()
(sowie diegetValue()
).InformationsquelleAutor der Antwort brasskazoo
Wenn Sie vermeiden möchten, erstellen/ändern eines JAXB-bindings-Datei, und Sie don ' T Geist hinzufügen von Anmerkungen zu Ihren XSD, können Sie die jxb:property Anmerkung zu Ihrem Attribut-definition, z.B.:
mit passenden Ergänzungen im xs:schema tag:
InformationsquelleAutor der Antwort Gary
Einmal nach xxxx.xjb-Datei erstellt, für die doppelte Attribut name "den Wert" (Duplikat default 'Wert' zur Verfügung gestellt von JAXB), wie unten ausgeführt XJC-Befehl zum erstellen von JAXB-Objekten
xjc -p "com.track.doc" -d "C:\JAXBDocuments\prasam\Desktop\JAXB_me\DealerTrace" appSamp.xsd -b xxxx.xjb
appSmp.xsd:-
xxxx.xjb:-
InformationsquelleAutor der Antwort rrayasam
Hatte ich ein problem mit der Lösung mit Eclipse (beides ausprobiert Helios Juno-SR1 und SR1) und CXF 2.6.3. Die Lösung war ähnlich zu dem, was Kaitsu sagt. Nämlich die Neue > Web-Service-wizard von Eclipse kopiert die wsdl in der foldre WebContent/wsdl. Ich hatte zum Ort der wsdl-und der binding-Datei selber. Ansonsten ist die binding-Datei gab "ist nicht Teil der compilation" Fehler.
War ich nicht in der Lage zu verwenden ein inline-schema in der WSDL-aber es hat funktioniert mit einem externen schema wie in Antwort #1.
Ich bin mit dem CXF-Servlet endpoint-config-option. In meiner WSDL habe ich:
Den Assistenten generiert, dies in meine web.xml funktioniert ok:
Aber er legte diese in cxf-servlet.xml:
Musste ich die Adresse in die vollständige URL wie folgt:
InformationsquelleAutor der Antwort user1787681
Diese Bindungen Datei angegeben, die in der anderen Antwort hat bei mir nicht funktioniert, mit CXF 3.0.0.
Beachten Sie, dass jaxb-Namensraum ein element der "Bindungen" und so haben die namespace-jaxws, so müssen wir erklären:
In meinem Fall das schema wurde bereits in der WSDL-so hab ich keine angeben, das Attribut schemaLocation.
InformationsquelleAutor der Antwort Constantino Cronemberger