title: Unmarshall xml to list of objects
body: <p>My rest jersey service returns a list of Customers, in this case there is only one.</p>
  
  <pre><code>&lt;customers&gt;
   &lt;customer&gt;
    &lt;age&gt;24&lt;/age&gt;
    &lt;id&gt;163&lt;/id&gt;
    &lt;name&gt;Lory&lt;/name&gt;
    &lt;surname&gt;Vinci&lt;/surname&gt;
    &lt;docNumber&gt;123&lt;/docNumber&gt;
    &lt;fiscalCode&gt;12345bg&lt;/fiscalCode&gt;
   &lt;/customer&gt;
  &lt;/customers&gt;
  </code></pre>
  
  <p>now I'd like to get a list of Customer, but in this example I get only one Customer</p>
  
  <pre><code>import java.io.StringReader;
  
  import javax.xml.bind.JAXBContext;
  import javax.xml.bind.Unmarshaller;
  
  import com.sun.jersey.api.client.Client;
  import com.sun.jersey.api.client.ClientResponse;
  import com.sun.jersey.api.client.WebResource;
  
  
  
  public class ClientTest {
  
  public static void main(String[] args) {
      try {
  
          Client client = Client.create();
  
          WebResource webResource = client
             .resource("http://localhost:8080/RONF/rest/customers");
  
          ClientResponse response = webResource.accept("application/xml").get(ClientResponse.class);
  
          if (response.getStatus() != 200) {
             throw new RuntimeException("Failed : HTTP error code : "
              + response.getStatus());
          }
  
          String output = response.getEntity(String.class);
  
          JAXBContext jaxbContext = JAXBContext.newInstance(Customer.class);
          Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
  
          StringReader reader = new StringReader(output);
          Customer customer = (Customer) unmarshaller.unmarshal(reader);
  
          System.out.println(customer.getName());
  
        } catch (Exception e) {
  
          e.printStackTrace();
  
        }
  
  }
  }
  </code></pre>
  
  <p>The classes are like that:
  User has 4 attributes: name, surname, id, age
  Customer extends User with 2 further attributes which are docNumber and fiscalCode.
  I also get this exception generated by</p>
  
  <pre><code>Customer customer = (Customer) unmarshaller.unmarshal(reader);
  </code></pre>
  
  <p>and it's:</p>
  
  <pre><code>javax.xml.bind.UnmarshalException: unexpected element (uri:"", local:"customers"). Expected elements are &lt;{}customer&gt;,&lt;{}user&gt;
  at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallingContext.handleEvent(UnmarshallingContext.java:647)
  at com.sun.xml.internal.bind.v2.runtime.unmarshaller.Loader.reportError(Loader.java:243)
  at com.sun.xml.internal.bind.v2.runtime.unmarshaller.Loader.reportError(Loader.java:238)
  at com.sun.xml.internal.bind.v2.runtime.unmarshaller.Loader.reportUnexpectedChildElement(Loader.java:105)
  at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallingContext$DefaultRootLoader.childElement(UnmarshallingContext.java:1048)
  at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallingContext._startElement(UnmarshallingContext.java:483)
  at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallingContext.startElement(UnmarshallingContext.java:465)
  at com.sun.xml.internal.bind.v2.runtime.unmarshaller.SAXConnector.startElement(SAXConnector.java:135)
  at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:506)
  at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:376)
  at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl$NSContentDriver.scanRootElementHook(XMLNSDocumentScannerImpl.java:602)
  at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:3065)
  at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:881)
  at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:607)
  at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:116)
  at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:489)
  at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:835)
  at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764)
  at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:123)
  at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1210)
  at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:568)
  at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:203)
  at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:175)
  at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:157)
  at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:214)
  at ClientTest.main(ClientTest.java:37)
  </code></pre>
  
  <p>any idea?</p>