Accueil Finances personnelles Création de code personnalisé avec l'API Java pour la liaison XML (JAXB) - dummies

Création de code personnalisé avec l'API Java pour la liaison XML (JAXB) - dummies

Table des matières:

Vidéo: Ajouter, Supprimer, Rechercher et Modifier les données d'une BDD MySql en JAVA 2024

Vidéo: Ajouter, Supprimer, Rechercher et Modifier les données d'une BDD MySql en JAVA 2024
Anonim

Vous pouvez créer du code personnalisé avec JAXB - le API Java pour la liaison XML . Avec JAXB, vous prenez un document XML et vous créez un fichier de classe Java parfait pour le traitement du document. Lorsque vos besoins changent et que la classe ne fait plus ce que vous voulez, vous créez une nouvelle sous-classe.

Lorsque vous écrivez du code SAX ou DOM, vous créez un programme de traitement XML. Votre programme lit un document et utilise le document pour effectuer un travail utile, en commençant par quelque chose d'inoffensif comme public void startElement ou node. getNodeName (). De toute façon, votre programme ne fait aucune supposition sur ce qu'il y a dans le document. Le document a un élément racine, des éléments enfants, et c'est tout. Toutes les hypothèses spéciales que vous faites sur ce document réduisent l'utilité du code.

Code polyvalent par rapport au code personnalisé

Considérez le code dans les listes 1 et 2. La liste 1, analyse cinq nœuds dans une arborescence de documents. Ces cinq nœuds doivent être arrangés d'une certaine façon, sinon le programme plante. (La liste veut un commentaire et un nœud racine, avec au moins deux enfants directement sous le nœud racine.)

Listing 1: Afficher quelques nœuds

import org. W3C. dom. Nœud;

import org. W3C. dom. NamedNodeMap;

classe MyTreeTraverser

{

MyTreeTraverser (Nœud de nœud)

{

Système. en dehors. println (noeud getNodeName ());

noeud = noeud. getFirstChild ();

Système. en dehors. println (noeud getNodeName ());

noeud = noeud. getNextSibling ();

Système. en dehors. println (noeud getNodeName ());

noeud = noeud. getFirstChild ();

Système. en dehors. println (noeud getNodeName ());

noeud = noeud. getNextSibling ();

Système. en dehors. println (noeud getNodeName ());

}

}

Listing 2: Traverser l'arborescence DOM

import org. W3C. dom. Nœud;

import org. W3C. dom. NamedNodeMap;

classe MyTreeTraverser

{

Nœud de noeud;

MyTreeTraverser (Noeud de noeud)

{

this. noeud = noeud;

displayName ();

displayValue ();

if (noeud.getNodeType () == Noeud. ELEMENT_NODE) ​​

displayAttributes ();

Système. en dehors. println ();

displayChildren ();

}

void displayName ()

{

Système. en dehors. print ("Nom:");

Système. en dehors. println (noeud getNodeName ());

}

void displayValue ()

{

Chaîne nodeValue = noeud. getNodeValue ();

if (nodeValue! = Null)

nodeValue = valeur_noeud. réduire();

Système. en dehors. print ("Valeur:");

Système. en dehors. println (nodeValue);

}

void displayAttributes ()

{

NamedNodeMap attribs = noeud. getAttributes ();

pour (int i = 0; i

{

Système. en dehors. println ();

Système. en dehors. print ("Attribut:");

Système. en dehors. print (attributs: item (i). getNodeName ());

Système. en dehors. print ("=");

Système. en dehors. println (attributs: item (i).getNodeValue ());

}

}

void displayChildren ()

{

Noeud enfant = noeud. getFirstChild ();

while (enfant! = Null)

{

nouveau MyTreeTraverser (enfant);

enfant = enfant. getNextSibling ();

}

}

}

Le code du Listing 2 est beaucoup plus général. Ce code vérifie la structure du document lors de son exécution. Lorsque le code trouve un nœud enfant, il analyse l'enfant et recherche les petits-enfants. S'il n'y a pas de petits-enfants, le code recherche les frères et sœurs. Le code peut gérer n'importe quel arbre de document - qu'il ait un nœud ou un millier de nœuds.

Ainsi, la liste 2 est plus polyvalente que la liste 1. Cependant, cette polyvalence présente des inconvénients - y compris la possibilité de frais généraux très élevés. Le code dans la liste 2 doit analyser le document XML entier - et ensuite mettre une représentation de l'arbre du document dans la mémoire de l'ordinateur. Si le document est très volumineux, la représentation est grande: la mémoire est gonflée avec toutes ces données temporaires et le code du listing 2 ralentit jusqu'à une analyse.

Les avantages de la personnalisation

Imaginez que vous essayez de vous rendre à Faneuil Hall à Boston, Massachusetts. Peu importe d'où vous venez; le voyage sera toujours confus et difficile. Quoi qu'il en soit, vous devez planifier votre itinéraire. Vous pouvez vous perdre dans les environs de Revere ou Cambridge ou dans le centre de Boston. Selon vos ressources, vous avez deux options:

  • Vous pouvez vous arrêter à une station-service et acheter une carte. Si vous le faites, alors vous ne pouvez jamais arriver à Faneuil Hall. Après tout, vous devez trouver où vous êtes sur la carte, chercher des itinéraires alternatifs, choisir un itinéraire, puis (Dieu vous aide) essayer de suivre la route sans se perdre à nouveau.
  • Vous pouvez dire à votre système GPS parlant et cher que vous voulez arriver à Faneuil Hall. Le système trace un itinéraire personnalisé et vous guide, tour à tour, de n'importe quel endroit misérable vers l'itinéraire optimal qui mène de là à Faneuil Hall. La route est si personnalisée que la voix du GPS indique (par exemple): «Il n'y a aucun signe à cette intersection, mais tournez à gauche de toute façon. "Plus tard, la voix dit" Il y a deux signes à cette intersection, et les signes se contredisent. Mais tournez à droite quand même. "

L'utilisation de la carte papier demande plus de travail (plus de temps, d'effort, de dextérité et de patience) que l'utilisation du GPS parlant. Pourquoi? Parce que la carte papier n'est pas adaptée à vos besoins spécifiques; En effet, il dit: «Voici toute la région métropolitaine de Boston. Faneuil Hall est là quelque part. Vous décidez quoi faire ensuite. "

Un système personnalisé est (comme vous pouvez vous y attendre) plus facile à utiliser qu'un autre qui n'est pas adapté à votre situation immédiate. Ainsi, le code de traitement XML du Listing 2 fait un énorme arbre DOM déglutissant les ressources dans l'espace mémoire de votre ordinateur ("Voici l'arbre - vous devinez quoi faire ensuite …") parce que le code n'est pas t personnalisé.Le code fonctionne pour n'importe quel document ancien - pas seulement celui que vous avez en main - et avale toujours des ressources pour le faire.

L'essence de JAXB

L'idée derrière JAXB est de créer des cours personnalisés pour répondre à vos besoins actuels. Vous prenez la description d'un document XML, exécutez-le via un programme spécial appelé compilateur de schéma , et obtenez une toute nouvelle classe appelée la classe générée . Cette classe générée est rationalisée pour fonctionner avec des documents XML particuliers.

Par exemple, si vos documents XML ont des éléments nommés Total, la classe générée peut avoir des méthodes setTotal et getTotal. Si l'élément d'un document a un attribut fullName, la classe générée peut avoir des méthodes setFullName et getFullName. (Voir Figure 1.)

La connexion entre une partie d'un document XML et une partie d'une classe Java est appelée liaison . Avec toutes ces liaisons, une instance de la classe représente un seul document XML.

Figure 1: Un objet représente un document.

Alors comment connecter un objet avec un document XML? Eh bien, la classe générée a des méthodes nommées unmarshal et marshal. (Voir la figure 2.)

  • La méthode unmarshal lit un fichier XML. La méthode obtient des valeurs du document XML et affecte ces valeurs aux variables de l'objet Java.
  • La méthode marshal écrit un fichier XML. La méthode obtient des valeurs de l'objet Java et utilise ces valeurs pour créer le document XML.

Avec des méthodes comme celles-ci, vous pouvez récupérer et modifier les données dans un document XML.

Figure 2: Lecture et écriture des valeurs.

Création de code personnalisé avec l'API Java pour la liaison XML (JAXB) - dummies

Le choix des éditeurs

Panneaux de caractères et de paragraphes Photoshop CC - mannequins

Panneaux de caractères et de paragraphes Photoshop CC - mannequins

Pour un contrôle incroyable sur l'apparence de votre texte dans Photoshop CC, utilisez les panneaux Caractère et Paragraphe. En plus de tous les attributs de texte disponibles dans la barre des options, les panneaux offrent un large éventail de choix. Avec eux, vous pouvez personnaliser l'apparence générale du texte ou appliquer un style typographique sophistiqué. Le ...

Options de l'outil Stylo Photoshop CS5 - mannequins

Options de l'outil Stylo Photoshop CS5 - mannequins

L'outil Plume de Photoshop Creative Suite 5 est la méthode ultime pour effectuer des sélections précises . Vous pouvez également l'utiliser pour créer des formes vectorielles et des chemins de détourage (silhouettes). Utilisez l'outil Stylo autant que vous le pouvez pour vraiment maîtriser ses capacités. Si vous ne l'utilisez pas régulièrement, cela vous semblera gênant, bien que ...

Modes de fusion photoshop CC - mannequins

Modes de fusion photoshop CC - mannequins

Modes de fusion dans Photoshop CC déterminent l'interaction des pixels d'une couche avec les pixels des couches inférieures et comment les outils de peinture interagissent avec les pixels déjà présents sur le calque actif et les calques ci-dessous. Normal: Normal est le mode de fusion par défaut pour les nouveaux calques et les outils de peinture de base. Selon l'opacité, le pixel supérieur ...

Le choix des éditeurs

Psychologie Sujets à étudier pour le test d'analogie de Miller (MAT) - dummies

Psychologie Sujets à étudier pour le test d'analogie de Miller (MAT) - dummies

Psychologie est une autre catégorie mineure qui peut apparaître sur le test Analogies Miller (MAT). Ne vous inquiétez pas - vous n'êtes pas censé ouvrir votre propre pratique de thérapie afin de passer le MAT, mais vous devriez vous familiariser avec certains termes psychologiques communs et les personnes qui ont fait des contributions majeures dans le domaine. La ...

Acheteur Contrats d'agence pour l'examen de licence de biens immobiliers - mannequins

Acheteur Contrats d'agence pour l'examen de licence de biens immobiliers - mannequins

L'examen de permis immobilier avoir des questions sur les accords d'agence d'acheteur. Le courtage immobilier traditionnel continue de représenter principalement les vendeurs; toutefois, les acheteurs ayant pris conscience qu'ils n'étaient pas représentés dans les transactions immobilières, des contrats d'agence d'acheteurs ont été développés pour permettre à l'acheteur de devenir le principal et ainsi avoir tous les avantages ...

Après la bulle immobilière: Devenir agent immobilier - les nuls

Après la bulle immobilière: Devenir agent immobilier - les nuls

Peut-être que vous avez pensé à propos de devenir un agent immobilier, mais vous avez manqué le dernier boom immobilier. Si vous avez lu les documents, vous savez que les marchés du logement s'améliorent partout au pays. Sans la frénésie du marché animé qui a pris fin en 2007 et avec la promesse d'améliorer les ventes immobilières, maintenant ...

Le choix des éditeurs

ÉCrivez des équations dans PowerPoint 2007 - des mannequins

ÉCrivez des équations dans PowerPoint 2007 - des mannequins

Utilisez l'éditeur d'équations pour placer des équations et des expressions mathématiques sur des diapositives PowerPoint. Les équations que vous dessinez deviennent des objets PowerPoint incorporés, ce qui vous permet de les éditer sans quitter PowerPoint, même si l'éditeur d'équations est en fait un programme distinct. Suivez ces étapes pour démarrer PowerPoint Equation Editor et commencer à construire une équation ou une expression sur ...

Placer des filigranes sur des pages de document Office - des mannequins

Placer des filigranes sur des pages de document Office - des mannequins

Un filigrane est une image pâle ou un ensemble de mots sur chaque page d'un document Office. Les filigranes sont élégants et constituent l'un des outils de mise en forme les plus faciles à utiliser dans Word 2011. Pour créer un filigrane pour chaque page d'un document, accédez à l'onglet Disposition et cliquez sur ...

À L'aide de la boîte de dialogue Configurer l'affichage dans PowerPoint 2011 pour Mac - témoins

À L'aide de la boîte de dialogue Configurer l'affichage dans PowerPoint 2011 pour Mac - témoins

Dans la boîte de dialogue Configurer l'affichage dans PowerPoint, cliquez sur le bouton Configurer l'affichage dans l'onglet Diaporama du ruban Office 2011 pour Mac, ou choisissez Diaporama → Configurer l'affichage dans la barre de menus. Dans les deux cas, la boîte de dialogue Configurer l'affichage polyvalent apparaît. Choisir un type de spectacle dans PowerPoint 2011 pour Mac ...