Me podéis ayudar a sacar este ejercicio adelante. Puesto que mi profesor no sabe ni hacerlo pero nos los manda a los alumnos hacerlo os dejo el enunciado del ejercicio.
Crea un esquema XSD, con nombre bibliotecas.xsd para representar los datos de un conjunto de librerías y sus libros. En el programa principal, incorpora 3 librerías distintas con 4 libros cada una de las librerías. Posteriormente, crea un fichero una aplicación JAXB para crear un fichero XML llamado mibiblioteca.xml. Crea también una salida a fichero para que guarde los mismos datos en binario con acceso aleatorio. Al fichero denomínalo mibiblioteca.dat.
Adicionalmente crea los siguientes métodos:
Método que visualice los datos introducidos en el fichero de acceso aleatorio mibiblioteca.dat
Método que lea el fichero .dat y que genere un fichero xml usando las funciones de la librería DOM. El fichero debe denominarse mibibliotecaDOM.xml
Método que lea el fichero .dat y que genere un fichero xml usando las funciones de la librería SAX. El fichero debe denominarse mibibliotecaSAX.xml
Método que reciba por teclado un libro y compruebe si está en alguna librería. Si existe, debe borrarlo de los ficheros xml y dat (en el fichero .dat debe marcarlo como borrado en el campo isbn con un valor -1, el resto de atributos deben quedar a 0. El método devolverá true si se ha borrado el libro y false si no se ha borrado o ha ocurrido algún error.
Método para modificar la editorial e isbn de un libro. El método recibe un isbn y una editorial. En los ficheros xml y dat deben quedar reflejados los cambios si los hubiera. El método devuelve true si la operación se realiza correctamente y false si ocurre algún error.
Extra: Método para la introducción por teclado de nuevos libros. Se solicitarán los datos de nombre de librería, nombre del libro, autor, editorial e isbn. Los datos deberán ser volcados a los ficheros xml y dat. Antes de incorporar un nuevo registro se deberá comprobar en la librería seleccionada, si el libro ya se encuentra en existencias. El método devuelve true si la operación se realiza correctamente y false si ocurre algún error.
Todos los atributos de los objetos son de tipo string