Używam tutorial here do zrozumienia JAXB.Opis adnotacji JAXB @XmlRootElement
Gdy pisarz pochodzi stworzyć główny dokumentu, pisarz zaczyna się jak poniżej:
//This statement means that class "Bookstore.java" is the root-element of our example
@XmlRootElement(namespace = "de.vogella.xml.jaxb.model")
public class Bookstore {
...
}
Chociaż będę ręcznie generowania moje zajęcia zamiast pozwolić Eclipse to zrobić, będę dostarczyć XSD
z mój plik JAR (nie zapakowany wewnątrz, ale raczej w folderze zawierającym plik jar), aby po uruchomieniu mojej aplikacji sprawdzać, czy dokument XML został zmodyfikowany.
Tak więc w pliku XSD targetNamespace
będzie de.vogella.xml.jaxb.model
, ponieważ został zadeklarowany powyżej jako @XmlRootElement(namespace = "de.vogella.xml.jaxb.model")
?
Ah rozumiem, co mówisz .... dla pakiet, który zawiera różne klasy XML-to-Java, muszę utworzyć klasę 'package-info' i zmodyfikować powyższą zawartość w razie potrzeby? **Chłodny!**. Zajrzę do tego, co powiedziałeś ** ale ** co z moim pierwotnym pytaniem?:) Czy moja konkluzja była poprawna? –
@LittleChild - Otrzymasz schemat XML z tym, że 'de.vogella.xml.jaxb.model' jest docelową przestrzenią nazw, która definiuje element' bookstore'. Problem polega na tym, że klasa nie dziedziczy przestrzeni nazw podanej w adnotacji '@ XmlRootElement', aby wygenerować ją w innym schemacie XML. –
zasadniczo dlatego, że 'elementFormDefault' nie jest ustawiony na' kwalifikowany'? i oh, schemat również zostanie napisany odręcznie. –