@PostConstruct
	public void chargerResource() throws IOException, XMLStreamException, FactoryConfigurationError, ParseException {
        XMLEventReader reader = XMLInputFactory.newInstance().createXMLEventReader(fichier.getInputStream(),this.charsetName);
    	EtatTerritoirePersistant etatTerritoire = null;
        while (reader.hasNext()) {
            XMLEvent event = (XMLEvent) reader.next();
  	      	if (event.isStartElement()) {
  		        StartElement element = (StartElement) event;
  		        String nomElem = element.getName().toString();
  		        if ("country".equals(nomElem)) {
  		        	etatTerritoire = new EtatTerritoirePersistant();
  		        } else if ("id".equals(nomElem)) {
  		        	Characters characters = (Characters) reader.next();
  		        	etatTerritoire.setNumeroOFS(Integer.parseInt(characters.getData()));
  		        } else if ("unId".equals(nomElem)) {
  		        	Characters characters = (Characters) reader.next();
  		        	if (null == etatTerritoire.getInfosISO()) etatTerritoire.setInfosISO(new InfosONUetISO3166()); 
  		        	etatTerritoire.getInfosISO().setCodeNumeriqueONU(Integer.parseInt(characters.getData()));
  		        } else if ("iso2Id".equals(nomElem)) {
  		        	Characters characters = (Characters) reader.next();
  		        	if (null == etatTerritoire.getInfosISO()) etatTerritoire.setInfosISO(new InfosONUetISO3166());
  		        	etatTerritoire.getInfosISO().setCodeIsoAlpha2(characters.getData());
  		        } else if ("iso3Id".equals(nomElem)) {
  		        	Characters characters = (Characters) reader.next();
  		        	if (null == etatTerritoire.getInfosISO()) etatTerritoire.setInfosISO(new InfosONUetISO3166()); 
  		        	etatTerritoire.getInfosISO().setCodeIsoAlpha3(characters.getData());
  		        } else if ("shortNameDe".equals(nomElem)) {
  		        	Characters characters = (Characters) reader.next();
  		        	etatTerritoire.ajouterFormeCourte("de", characters.getData());
  		        } else if ("shortNameFr".equals(nomElem)) {
  		        	Characters characters = (Characters) reader.next();
  		        	etatTerritoire.ajouterFormeCourte("fr", characters.getData());
  		        } else if ("shortNameIt".equals(nomElem)) {
  		        	Characters characters = (Characters) reader.next();
  		        	etatTerritoire.ajouterFormeCourte("it", characters.getData());
  		        } else if ("shortNameEn".equals(nomElem)) {
  		        	Characters characters = (Characters) reader.next();
  		        	etatTerritoire.ajouterFormeCourte("en", characters.getData());
  		        } else if ("officialNameDe".equals(nomElem)) {
  		        	Characters characters = (Characters) reader.next();
  		        	etatTerritoire.ajouterDesignationOfficielle("de", characters.getData());
  		        } else if ("officialNameFr".equals(nomElem)) {
  		        	Characters characters = (Characters) reader.next();
  		        	etatTerritoire.ajouterDesignationOfficielle("fr", characters.getData());
  		        } else if ("officialNameIt".equals(nomElem)) {
  		        	Characters characters = (Characters) reader.next();
  		        	etatTerritoire.ajouterDesignationOfficielle("it", characters.getData());
  		        } else if("continent".equals(nomElem)) {
  		        	Characters characters = (Characters) reader.next();
  		        	etatTerritoire.setNumContinent(Integer.parseInt(characters.getData()));
  		        } else if ("region".equals(nomElem)) {
  		        	Characters characters = (Characters) reader.next();
  		        	etatTerritoire.setNumRegion(Integer.parseInt(characters.getData()));
  		        } else if ("state".equals(nomElem)) {
  		        	Characters characters = (Characters) reader.next();
  		        	etatTerritoire.setEtat(Boolean.valueOf(characters.getData()));
  		        } else if ("areaState".equals(nomElem)) {
  		        	Characters characters = (Characters) reader.next();
  		        	etatTerritoire.setNumEtatRattachement(Integer.parseInt(characters.getData()));
  		        } else if ("unMember".equals(nomElem)) {
  		        	Characters characters = (Characters) reader.next();
  		        	etatTerritoire.setMembreONU(Boolean.valueOf(characters.getData()));
  		        } else if ("unEntryDate".equals(nomElem)) {
  		        	Characters characters = (Characters) reader.next();
  		        	etatTerritoire.setDateEntreeONU(dateFmt.parse(characters.getData()));
  		        }else if ("recognizedCh".equals(nomElem)) {
  		        	Characters characters = (Characters) reader.next();
  		        	etatTerritoire.setReconnuSuisse(Boolean.valueOf(characters.getData()));
  		        } else if ("recognizedDate".equals(nomElem)) {
  		        	Characters characters = (Characters) reader.next();
  		        	etatTerritoire.setDateReconnaissance(dateFmt.parse(characters.getData()));
  		        } else if ("remarkDe".equals(nomElem)) {
  		        	Characters characters = (Characters) reader.next();
  		        	etatTerritoire.ajouterRemarque("de", characters.getData());
  		        } else if ("remarkFr".equals(nomElem)) {
  		        	Characters characters = (Characters) reader.next();
  		        	etatTerritoire.ajouterRemarque("fr", characters.getData());
  		        } else if ("remarkIt".equals(nomElem)) {
  		        	Characters characters = (Characters) reader.next();
  		        	etatTerritoire.ajouterRemarque("it", characters.getData());
  		        } else if ("entryValid".equals(nomElem)) {
  		        	Characters characters = (Characters) reader.next();
  		        	etatTerritoire.setValide(Boolean.valueOf(characters.getData()));
  		        } else if ("dateOfChange".equals(nomElem)) {
  		        	Characters characters = (Characters) reader.next();
  		        	etatTerritoire.setDateDernierChangement(dateFmt.parse(characters.getData()));
  		        }
  	      	} else if (event.isEndElement()) {
  	      		EndElement element = (EndElement)event;
  	      		if ("country".equals(element.getName().toString())) {
  	      			stockerEtatTerritoire(etatTerritoire);
  	      		}
  	      	}
        }		
	}