# xsd: Membervariablen initialisieren



## andkul (20. Apr 2011)

Hallo leute,

ich beschäftige mich erst seit kurzem mit xsd und habe folgendes Problem:

Ich habe eine xsd-Schema geschrieben und ich verwende den castor um mir daraus Java-Klassen erzeugen zu lassen. Ist es möglich, die Member-Variable namens myMember vom Typ ComplexMember (siehe Beispiel1 unten) gleich beim generieren der java-Klassen zu initialisieren? Also z. B. einen Konstruktor für ComplexClass generieren lassen, der die Member seiner Klasse alle gleich initialisiert (mit Standard-Konstruktor z. B. ) wenn er aufgerufen wird, oder sowas in der Art.


Beispiel1
[Java]
<xs:element name="ComplexClass">
    	<xs:complexType>
    		<xs:sequence>
    			<xs:element name="myMember" type="ComplexMember" minOccurs="1" maxOccurs="1" ></xs:element>
    		</xs:sequence>
    	</xs:complexType>
    </xs:element>
[/Java]


----------



## Wildcard (20. Apr 2011)

Wenn du statt Castor zB EMF verwendest geht das, allerdings ist das meistens keine so gute Idee, verwende lieber eine Factory oder ähnliches die optional auch gefüllte Objekte erzeugen kann, oder verwende das Prototype Pattern.
Egal wie du es letzlich löst, EMF ist meiner Meinung nach die bessere Wahl, den Modelle müssen üblicherweise mehr können als getter und setter anzubieten.


----------



## andkul (21. Apr 2011)

Auf EMF umsteigen kann ich nicht, da in meiner Firma bisher auch Castor verwendet wurde und jetzt nicht die verschiedensten Möglichkeiten aus dem Hut gezaubert werden sollen, die alle im Prinzip das gleiche machen. Aber trotzdem gut zu wissen, dass da EMF mehr bietet, werd ich im Hinterkopf behalten.
Das Prototype-Pattern kenn ich nicht, aber ich werd´s mir mal ansehen. 
Ansonsten denke ich, werd ich´s wohl mit einer Factory machen.

Danke für deine Antwort, hat mir weitergeholfen


----------

