# XMLGregorianCalendar <-> Java



## mtk-flo (6. März 2007)

Wie erstelle ich einen XMLGregorianCalendar Typ ?
Ich will in ein XML ein Datum speichern.

Ich habe mir aus dem XML Schema ein Klassenmodel erstellen lassen (JAXB) und nun möchte ich in meinem XML ein Datum speichern.
Bekomm aber keinen XMLGregorianCalendar-Typ hin...

Kann mir jemand helfen ?


----------



## KlaDi (16. März 2007)

Hallo,

ich habe das gleiche Problem.

Ich habe versucht ein Objekt vom Typ GregorianCalendar anzulegen. Gibt es jetzt die Möglichkeit dieses Objekt in ein XMLGregorianCalendar zu wandeln?

Gruß KlaDi.

[EDIT] Hab die Lösug gefunden. Ich leg mir einfach gleich ein Objekt vom Typ XMLGregorianCalendar an und setze dann Tag, Monat und Jahr einzeln.

[EDIT2]ich jetzt zwar mit: 
	
	
	



```
XMLGregorianCalendar datum = null;
```
 ein Objekt, aber wenn ich einen Wert zuweisen will mit 
	
	
	



```
datum.setDay(10);
```
 geschieht das nicht. Mein Programm bricht einfach ohne Fehlermeldung ab.
Weiß vielleicht jemand woran das liegt?

Gruß KlaDi.


----------



## zeja (16. März 2007)

Du hast ja date auch nur deklariert

```
XMLGregorianCalendar datum = null;
```

Damit hast du aber kein Objekt.

```
datum.setDay(10);
```

ist also bei dir dann ein

```
null.setDay(10);
```

Was zu einer NullPointerException führt.


----------



## KlaDi (16. März 2007)

Hallo,

und wie erzeuge ich dann ein Objekt? So das ich die Werte Tag, Monat und Jahr setzen kann?

Gruß KlaDi.


----------



## zeja (16. März 2007)

Einfach mal die Doku lesen. Die sagt zum Konstruktor von XMLGregorianCalendar:


> Default no-arg constructor.
> 
> Note: Always use the DatatypeFactory to construct an instance of XMLGregorianCalendar. The constructor on this class cannot be guaranteed to produce an object with a consistent state and may be removed in the future.



Also:

```
DatatypeFactory.newXMLGregorianCalendar
```

mit diverser Auswahl an Übergabeparametern.


----------



## KlaDi (16. März 2007)

Hmm,

ich hab die jetzt schon mehrfach in die API geschaut, aber die Notiz habe ich leider nirgendwo...

und 

```
DatatypeFactory.XMLGregorianCalendar();
```
 bringt bei mir den Fehler Cannot make a static reference to the non-static method.....

Sorry, irgendwie stehe ich gerade auf dem Schlauch.

Vielen Dank auf jeden Fall!


----------



## zeja (16. März 2007)

Naja erstmal DataTypeFactory.newInstance().newXMLGregorianCalendar(.....)


----------

