Sorry, I confuse in my Main class, it is this:
import generated.*;
import generated.impl.*;
import javax.xml.bind.*;
import java.io.*;
import java.math.BigDecimal;
import java.util.*;
public class Main {
public static void main(String[] args) throws FileNotFoundException {
try {
//ponemos la ruta donde esta jaxb.properties
JAXBContext jc = JAXBContext.newInstance( "generated" );
Unmarshaller u = jc.createUnmarshaller();
u.setValidating(true);
InputStream in = new FileInputStream("catalogs.xml");
if(in == null) {
System.out.println("No encuentro el fichero");
return;
}//if
//construimos el modelo a partir el stream de entrada
Catalogs mifichero = (Catalogs)u.unmarshal(in );
//recuperamos la lista de catalogos y productos
List catalogo = mifichero.getCatalog();
int numero = catalogo.size();
System.out.println("El numero de catalogos es: " +numero );
for (int i = 0; i < numero; i++) {
Catalog catalogoconcreto = (Catalog)catalogo.get(i);
System.out.println("El catalogo se llama: "+catalogoconcreto.getName());
//Para obtener los productos de un catalogo
List prod = catalogoconcreto.getProduct();
System.out.println();
int numero2 = prod.size();
System.out.println("El numero de productos que tiene el catalogo es: "
+numero2);
for (int j = 0; j < numero2; j++) {
Product p=(Product)prod.get(j);
System.out.println(p.getProductName() +" cuyo precio es:
"+p.getPrice());
}//for
}//for
System.out.println();
// ahora añadimos un nuevo catalogo
CatalogTypeImpl nuevoCatalogo = new CatalogTypeImpl();
// establecemos los elementos
nuevoCatalogo.setName("Cafes1");
nuevoCatalogo.setCatalogID("2");
nuevoCatalogo.setDescription("Cafes");
//Aqui añadimos productos para el catalogo
ProductTypeImpl nuevoProducto = new ProductTypeImpl();
nuevoProducto.setProductID("C349K7");
nuevoProducto.setProductName("Mo");
nuevoProducto.setPrice(new BigDecimal("23.3"));
nuevoProducto.setVendor("Corral S.A.");
//nuevoProducto.setProperty("");
// añadimos al catalogo nuevos productos
List prod = new ArrayList();
// catalogo.add(nuevoProducto); Si lo añado al primer catalogo
catalogo.add(nuevoCatalogo);
catalogo.add(nuevoProducto); //lo añado al segundo catalogo
// vamos a pintar ahora el arbol XML generado para asegurarnos
que se ha añadido
Marshaller formateador = jc.createMarshaller();
formateador.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT,
Boolean.TRUE);
formateador.marshal( mifichero, System.out );
// ahora escribimos a un fichero, en el correcto juego de
caracteres
formateador.setProperty(Marshaller.JAXB_ENCODING, "ISO-8859-1");
FileOutputStream salida = new FileOutputStream("salida.xml");
formateador.marshal( mifichero, salida);
}catch(JAXBException e){
System.out.println("Error: "+e.toString());
}//catch
catch(Exception el){
System.out.println("Error: "+el.toString());
}//catch
}//main
}//Main
--
View this message in context: http://www.nabble.com/DefaultValidationEventHandler-tf3782577.html#a10697559
Sent from the java.net - jaxb users mailing list archive at Nabble.com.