2012-03-29 8 views
3

http://www.oracle.com/technetwork/articles/javase/index-140168.html#binsch - Dieser Artikel sagt: "JAXB erfordert, dass das XML-Dokument, das Sie zugreifen möchten, ein Schema hat"Does JAXB erfordern immer XSD

hier ein Hallo Welt Beispiel ist, verwendet hello.xsd

http://jaxb.java.net/tutorial/section_1_3-Hello-World.html#Hello%20World -

Und hier ist ein Hallo Welt Beispiel ohne Verwendung von xsd.

http://www.mkyong.com/java/jaxb-hello-world-example/

Does Spezifikation sagt, dass JAXB funktioniert auch ohne XSD, wenn das wahr ist, dann, wie weit der Begriff rechtfertigt „Bindung“. Ich glaube, Bindung geschieht durch Bindung des Schemas.

Carification wird hilfreich sein. Danke

+2

Nur eine freundliche Erinnerung: Sie können [Antworten akzeptieren] (http://meta.stackexchange.com/a/5235/160062) auf Ihre vorherigen Fragen. – oers

Antwort

4

JAXB 2 (JSR-222) Implementierungen erfordern keine XML-Schema. Sie können von einem Objektmodell aus starten. Sie müssen nur Anmerkungen hinzufügen, wenn Sie das Standardzuordnungsverhalten überschreiben möchten.

Hinweis: Der Link, den Sie zitiert (http://www.oracle.com/technetwork/articles/javase/index-140168.html#binsch) war für JAXB 1 (JSR-31), die ein XML-Schema erforderte. JAXB 2, auf das sich die meisten Leute beziehen, wenn sie JAXB sagen, benötigt kein XML-Schema.

0

Die Customer-Klasse im Lernprogramm ist nichts anderes als ein Bindungsobjekt, das aus XSD mithilfe von JAXB generiert wird. Der Typ entkam dem in seinem Tutorial.

0

xsd ist nur eine formale Darstellung von XML, analog zu 'Class' für ein 'Objekt'. Sie können ein konformes XML ohne ein xsd haben (in diesem Fall ist das xsd verborgen). Es stimmt zwar, dass wir mit xsd beginnen und größtenteils Java-Objekte generieren, aber Sie können auch umgekehrt vorgehen. Mit 'schemagen' können Sie tatsächlich ein xsd für eine bestimmte Java-Klasse erstellen. Dies ist nur um zu sagen, dass es mehrere Startpunkte gibt.