JAXB - Aus XML Schema Datei Klasse erzeugen

Anna Lüse

Grünschnabel
Hallo zusammen,

ich arbeite mich gerade ein bisschen in JAXB ein und glaube ich stelle mich zu blöd an. Ich habe eine xsd Datei und möchte daraus einfach automatisch die zugehörigen Java Klassen generieren lassen.

Als Beispiel habe ich mal folgende xsd aus einem alten Thread genommen (http://www.tutorials.de/java/224045-jaxb-und-konkrete-klassen-erstellen.html#post1165243)

Code:
 <?xml version="1.0" encoding="UTF-8"?>
 <xsd:schema    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    >
    <xsd:element name="chocolates" type="chocolatesType"/>
    <xsd:complexType name="chocolatesType">
        <xsd:sequence>
            <xsd:element name="chocolate" type="chocolateType" minOccurs="1"
                maxOccurs="unbounded"/>
        </xsd:sequence>
    </xsd:complexType>
    
    <xsd:complexType name="chocolateType" >
        <xsd:sequence>
            <xsd:element name="flavour" type="xsd:string"/>
            <xsd:element name="weight" type="xsd:string"/>
            <xsd:element name="durableUtil" type="xsd:string"/>
            <xsd:element name="price" type="xsd:string"/>
        </xsd:sequence>
        <xsd:attribute name="id" type="xsd:int"/>
    </xsd:complexType>
 </xsd:schema>

Wenn ich jetzt in der Konsole über xjc mir die Klassen erstellen will passiert folgendes:

Code:
C:\Program Files\Java\jdk1.7.0_04\bin>xjc "d:\USERDATA\schemas\chocolate.xsd"

parsing a schema...
compiling a schema...
generated\ChocolateType.java
[ERROR] .\generated\ChocolateType.java (Das System kann den angegebenen Pfad nicht finden)
unknown location

Was mache ich da falsch? Muss ich irgendwas am Pfad beachten?

Danke und Grüße :)
 
Hallo,

ruf XJC mal aus einem Verzeichnis ohne Leerzeichen aus oder gib explizit (via -d [DESTDIR]) mal ein Zielverzeichnis an. Wenn das Zielverzeichnis Leerzeichen im Pfad hat musst du den Pfad in Anführungszeichen ("c:\foo bar\dest") setzen.

Gruß Tom
 
Hi Tom,

danke, das hat wirklich geklappt!
Wenn ich mit -d ein Zielverzeichnis angebe funktioniert es. Komisch, dass es nicht ohne geht, aber soll mir recht sein :)

Grüße
 
Zurück