Création de compte utilisateur via un fichier xml sur une BDD
Ce tp a pour but d'envoyer des informations d'un fichier XML pour les stocker dans une base de donnée par exemple. Les éléments peuvent être de type (int, String, Date...) entre autre tout élément qui peut être stocké dans une base de donnée appropriée.
Voici le modèle du projet :
Tout d'abord, on crée une DTD (Document Type Definition), c'est-à-dire une grammaire permettant de vérifier la conformité du document XML. Ainsi en entrant plusieurs éléments et attributs dans ce fichier, comme ceci :
Nous obtenons à partir de ce fichier, le fichier xml suivant (avec ce shéma) :
En remplissant le champ entre les balises XML nous pouvons avoir des informations à "parser". Ensuite dans le package modèle les classes Role et Compte sont déclarées comme Entity car elles seront par la suite les 2 tables de notre base de donnée. Elles déclarent simplement des attributs et des constructeurs de la classe.
La méthode characters() permet de récupérer les valeurs PCDATA, c'est à dire celles encapsulées dans les balises (ouvrante et fermante).
Ensuite, la méthode startElement()
Ensuite, on appelle la méthode enregistrer() qui permet de faire "persiter" les éléments enregistrés dans les objets.
public void endElement(String url, String localName, String qName) throws SAXException {
if(qName.equals("compte"))
fabrique.enregistrer(compteCourant);
if(qName.equals("role"))
compteCourant.addRole(roleCourant);
}
En résumé la méthode startElement() est appelée lorsque SAX détecte une balise ouvrante et endElement() lorsque SAX détecte la fin d'une balise fermante.