# Jaxb Unmarshalling Problem



## sagi7 (7. Nov 2013)

Hallo Zusammen,

ich habe ein Jaxb Problem. 
Mein Xml ist valide gegen das XSD.

Folgende Fehlermeldung erscheint:

javax.xml.bind.UnmarshalException: unexpected element (uri:"V3.multiversion.mynamespace.info", local:"Head"). Expected elements are <{}Sheet>,<{}Document>,<{}Head>,<{}Data>,<{}DocumentStore>

Wo ist das Element unexpected? Lt. xsd ist es ok.

Hier ein Snippet der Java Klasse:


```
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = "RootNode", namespace = "V3.multiversion.mynamespace.info")
@XmlType(name = "RootNodeType", propOrder = { "head", "sheets",
		"datas", "documentStore", "documents" })
public class RootNodeTypeV3_0 {

	@XmlElement(name = "Document", type = DocumentImplV3.class)
	protected List<Document> documents;

	@XmlElement(name = "DocumentStore", type = RawDocumentType_V3_0.class)
	protected Map<Integer, RawDocument> documentStore;

	@XmlElement(name = "Head", required = true, type = HeadImplV3.class)
	protected Head head;
```

schöne Grüße


----------



## tagedieb (8. Nov 2013)

Poste mal dein Xml!


----------



## sagi7 (8. Nov 2013)

Hier der Ausschnitt der XML:

[XML]<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<RootNode xmlns="V3.multiversion.mynamespace.info" xmlns:ns2="http://www.w3.org/1999/xlink"
	xmlns:ns3="http://www.w3.org/1998/Math/MathML" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="V3.multiversion.mynamespace.info xmlSchema_3.0.xsd">
	<Head>
.....[/XML]


----------



## Attila (8. Nov 2013)

[XML]
<ns:RootNode xmlns:ns="V3.multiversion.mynamespace.info" ...>
...
[/XML]


----------



## sagi7 (11. Nov 2013)

Hallo Zusammen,

ich habe das Problem gelöst.
Hier die Lösung für nachfolgende Generationen:

package-info.java muss mit der Namespace Annotation in dem Package mit den Datentypen enthalten sein:


```
@javax.xml.bind.annotation.XmlSchema(namespace = "v3.multiversion.mynamespace.info", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
package info.mynamespace.multiversion.v3;
```


Dann reicht im XML die Namespace Deklaration im Root Element.


----------

