# JAXB Unmarshalling liefert nur null



## ben89 (19. Dezember 2010)

hallo zusammen,

unmarshalling liefert bei mir leider nur den wert null. Ich komm einfach nicht darauf was nicht passt. Wäre dankbar für eure Hilfe.


```
public Mainclass() throws JAXBException {

	
Property unmarshal = JAXB.unmarshal(new File("src/main/resources/property.xml"), Property.class);
		System.out.println(unmarshal.getPropertyName());
	}
```

Die Property Klasse

```
@XmlElement(required = true)

private String PropertyName;
public String getPropertyName() {
		return PropertyName;
	}
```

und schliesslich meine xml

```
<?xml version="1.0" encoding="UTF-8"?>

<Propertydefinitions>
	<Property>
		<PropertyName>Name</PropertyName>
		<Default>default</Default>
		<Datetype>Integer</Datetype>
		<MaxLength>999</MaxLength>
	</Property>
</Propertydefinitions>
```


Das Ergebnis ist nur "null". Woran könnte des liegen?

grüße benny


----------



## Thomas Darimont (21. Dezember 2010)

Hallo,

schau mal hier:

```
package de.tutorials.training;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;

@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name="Propertydefinitions")
public class Property {
	@XmlElement(name="PropertyName") private String propertyName;
	@XmlElement(name="Default") private String defaultValue;
	@XmlElement(name="Datatype") private String dataType;
	@XmlElement(name="MaxLength") private int maxLength;
	
	public String getPropertyName() {
		return propertyName;
	}
	public void setPropertyName(String propertyName) {
		this.propertyName = propertyName;
	}
	public String getDefaultValue() {
		return defaultValue;
	}
	public void setDefaultValue(String defaultValue) {
		this.defaultValue = defaultValue;
	}
	public String getDataType() {
		return dataType;
	}
	public void setDataType(String dataType) {
		this.dataType = dataType;
	}
	public int getMaxLength() {
		return maxLength;
	}
	public void setMaxLength(int maxLength) {
		this.maxLength = maxLength;
	}
	@Override
	public String toString() {
		return "Property [propertyName=" + propertyName + ", defaultValue="
				+ defaultValue + ", dataType=" + dataType + ", maxLength="
				+ maxLength + "]";
	}
	
	
}
```

data.xml

```
<?xml version="1.0" encoding="UTF-8"?>
 <Propertydefinitions>
    <Property>
        <PropertyName>Name</PropertyName>
        <Default>default</Default>
        <Datetype>Integer</Datetype>
        <MaxLength>999</MaxLength>
    </Property>
</Propertydefinitions>
```


```
package de.tutorials.training;

import java.util.ArrayList;
import java.util.List;

import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement
public class PropertyDefinitions {
	@XmlElement(name="Property") private List<Property> properties;

	public List<Property> getProps() {
		return properties;
	}

	public void setProps(List<Property> props) {
		this.properties = props;
	}
	
	
}
```


```
package de.tutorials.training;

import java.io.File;

import javax.xml.bind.JAXB;

public class JAXBExample {

	public static void main(String[] args) {
		PropertyDefinitions o = JAXB.unmarshal(new File("data.xml"),PropertyDefinitions.class);
		System.out.println(o.getProps().get(0));
	}

}
```

Ausgabe:

```
Property [propertyName=Name, defaultValue=default, dataType=null, maxLength=999]
```

Siehe auch:
http://www.tutorials.de/java/263489-jaxb-tutorial.html

Gruß Tom


----------

