Table des matières
Comment fonctionne Castor
Composants clés:
Exemple étape par étape
Option 1: mappage par défaut (pas de fichier de mappage)
Option 2: Utilisation d'un fichier de mappage (recommandé pour les cas complexes)
Avantages de Castor
Pièges et conseils communs
Dépendances (maven)
Maison développement back-end Tutoriel XML/RSS Liaison des données XML avec Castor en Java

Liaison des données XML avec Castor en Java

Aug 15, 2025 am 03:43 AM
java xml

Castor permet le mappage d'objets XML-TO-Java via des conventions par défaut ou des fichiers de mappage explicite; 1) Définir les classes Java avec Getters / Setters; 2) Utilisez unmarshaller pour convertir XML en objets; 3) Utilisez Marshaller pour sérialiser les objets à XML; 4) Pour les cas complexes, configurez les mappages de champs dans mapping.xml; 5) Mappage de chargement via XMLContext pour un contrôle précis - cette approche fonctionne de manière fiable pour des systèmes simples ou hérités malgré un support moderne limité.

Liaison des données XML avec Castor en Java

La liaison des données XML avec Castor en Java permet aux développeurs de mapper des données XML aux objets Java et vice versa sans analyser manuellement ni générer de XML. Castor est l'un des cadres de liaison de données open source précoces et largement utilisés pour Java, offrant un moyen simple de sérialiser les objets Java à XML et de désérialiser XML dans les objets.

Liaison des données XML avec Castor en Java

Comment fonctionne Castor

Castor utilise des fichiers de mappage (ou introspection de classe) pour définir comment les classes Java correspondent aux éléments et attributs XML. Vous pouvez soit compter sur les conventions de dénomination (mappage par défaut), soit fournir un fichier de mappage XML explicite ( mapping.xml ) pour un contrôle à grain fin.

Composants clés:

  • Source XML - Le document XML d'entrée ou de sortie.
  • Classes Java - Old Java objets simples (POJOS) qui représentent le modèle de données.
  • Fichier de mappage (facultatif) - Définit la liaison entre les champs XML et Java.
  • Unmarshaller - convertit XML en objets Java.
  • Marshaller - convertit les objets Java en xml.

Exemple étape par étape

Disons que vous avez un fichier XML représentant un livre:

Liaison des données XML avec Castor en Java
 <book>
  <Title> Java efficace </TITME>
  <auteur> Joshua Bloch </auteur>
  <SBN> 978-0134685991 </SBN>
</book>

Et une classe Java correspondante:

 Livre de classe publique {
    titre de chaîne privée;
    auteur de chaîne privée;
    String privé ISBN;

    // Getters et Setters
    public String getTitle () {return title; }
    public void SettItle (String Title) {this.title = title; }

    public String getAuthor () {return auteur; }
    public void setAuthor (String Auteur) {this.author = auteur; }

    String public getisBn () {return isbn; }
    public void setisbn (String isbn) {this.isbn = isbn; }
}

Option 1: mappage par défaut (pas de fichier de mappage)

Si vos noms d'éléments XML correspondent aux noms de champ Java (ou suivez les conventions de JavaBean), Castor peut les faire automatiquement.

 import org.exolab.castor.xml.unmarshaller;
import org.exolab.castor.xml.marshaller;
import java.io.fileReader;
import java.io.filewriter;

// Unmarshal: XML à l&#39;objet
Livre de livres = (livre) unmarshaller.unmarshal (book.class, nouveau fileReader ("book.xml"));

// Marshal: Object à XML
MARSHALLER.MARSHAL (Book, New FileWriter ("Output.xml"));

Cela fonctionne hors de la boîte si:

  • Les noms d'élément correspondent aux noms de champ (sensibles à la casse par défaut).
  • La classe a des setteurs et des getters publics.
  • Pas de nidification complexe ou de types personnalisés.

Option 2: Utilisation d'un fichier de mappage (recommandé pour les cas complexes)

Lorsque la structure XML ne correspond pas à la classe Java, utilisez un mapping.xml :

 <mapping>
  <class name = "book">
    <map-to xml = "book" />
    <field name = "title" type = "java.lang.string">
      <bind-xml name = "title" node = "élément" />
    </FIELD>
    <field name = "auteur" type = "java.lang.string">
      <bind-xml name = "auteur" node = "élément" />
    </FIELD>
    <field name = "isbn" type = "java.lang.string">
      <bind-xml name = "isbn" node = "élément" />
    </FIELD>
  </class>
</ mapping>

Utilisez-le maintenant dans le code:

 import org.exolab.castor.mapping.mapping;
import org.exolab.castor.xml.xmlcontext;

// mappage de chargement
Mappage mappage = new mapping ();
mapping.loadMapping ("mapping.xml");

XmlContext context = new XmlContext ();
context.addmapping (mappage);

// Unmarshal avec cartographie
Unmarshaller unmarshaller = context.CreateunMarshaller ();
unmarshaller.setClass (book.class);
Livre de livres = (livre) unmarshaller.unmarshal (nouveau fileReader ("book.xml"));

// Maréchal avec cartographie
Marshaller Marshaller = context.CreateMarshaller ();
Marshaller.setWriter (new FileWriter ("output.xml"));
Marshaller.marshal (livre);

Avantages de Castor

  • Configuration simple pour les cas d'utilisation de base.
  • Mappage flexible via la configuration XML.
  • Prend en charge les collections, les objets imbriqués et l'héritage.
  • Peut générer des classes Java à partir de XSD (en utilisant castor-codegen ).

Pièges et conseils communs

  • Les noms de champ doivent correspondre à moins que le mappage ne soit défini.
  • Utilisez l'attribut type dans le mappage pour les types non primitifs ou personnalisés.
  • Pour les collections (par exemple, List<Book> ), définissez field avec collection="arraylist" dans Mapping.
  • Castor est moins activement maintenu maintenant; Considérez Jaxb ou Jackson pour de nouveaux projets.

Dépendances (maven)

Ajoutez Castor à votre pom.xml :

 <dépendance>
  <bandrandId> org.castor </rombandid>
  <ArtefactId> Castor-xml </letefactive>
  <version> 1.5.1 </ version>
</Dependance>

Alors que Castor était populaire au début des années 2000 du développement Java, des alternatives modernes comme Jaxb (intégrées à Java jusqu'à Java 9, maintenant séparées), Jackson XML ou Xstream offrent de meilleures performances et un soutien communautaire. Mais pour les systèmes hérités ou les tâches de liaison simples, Castor reste une option viable et sans fioritures.

Fondamentalement, si vous êtes coincé avec des outils plus anciens ou si vous avez besoin d'une liaison rapide XML-Java sans annotations, Castor fait le travail - ne vous attendez pas au vernis des nouvelles bibliothèques.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Tutoriel PHP
1535
276
Excel trouver et remplacer ne fonctionne pas Excel trouver et remplacer ne fonctionne pas Aug 13, 2025 pm 04:49 PM

CheckkSearchSettings like "MatchEnteRireCellContents" et "MatchCase" ByExpandingOptionsInFindanDreplace, garantissant "lookin" issettominuesand »dans" TOCORRECTSCOPE; 2.LOORHFORHIDDENCHARACTER

Comment déployer une application Java Comment déployer une application Java Aug 17, 2025 am 12:56 AM

Préparez-vous en application par rapport à Mavenorgradletobuildajarorwarfile, externalisationConfiguration.2.ChoOSEADPLOYENDIRONMENT: Runonbaremetal / vmwithjava-jarandsystemd, deploywarontomcat, compeneriserisewithdocker, orusecloudplatformslikelise.

Comment configurer la journalisation dans une application Java? Comment configurer la journalisation dans une application Java? Aug 15, 2025 am 11:50 AM

L'utilisation de SLF4J combinée avec la journalisation ou le log4j2 est le moyen recommandé de configurer les journaux dans les applications Java. Il introduit des bibliothèques API et implémentation en ajoutant des dépendances Maven correspondantes; 2. Obtenez l'enregistreur via le loggerfactory de SLF4J dans le code et écrivez le code journal découplé et efficace à l'aide de méthodes de journalisation paramétrée; 3. Définir le format de sortie du journal, le niveau, la cible (console, le fichier) et le contrôle du journal du package via Logback.xml ou les fichiers de configuration log4j2.xml; 4. Activer éventuellement la fonction de balayage de fichiers de configuration pour atteindre un ajustement dynamique du niveau de journal, et Springboot peut également être géré via des points de terminaison de l'actionneur; 5. Suivez les meilleures pratiques, y compris

Liaison des données XML avec Castor en Java Liaison des données XML avec Castor en Java Aug 15, 2025 am 03:43 AM

CASTORENablesxml-to-javaObjectMappingViadefaultConverionsOrexplicitMappingFiles; 1) DefinejavaclasseswithGetters / seters; 2) useUnmarShallertOConvertXmltoObjects; 3)

JS Ajouter un élément au début du tableau JS Ajouter un élément au début du tableau Aug 14, 2025 am 11:51 AM

Dans JavaScript, la méthode la plus courante pour ajouter des éléments au début d'un tableau est d'utiliser la méthode Unsich (); 1. En utilisant unsith () modifiera directement le tableau d'origine, vous pouvez ajouter un ou plusieurs éléments pour retourner la nouvelle longueur du tableau ajouté; 2. Si vous ne souhaitez pas modifier le tableau d'origine, il est recommandé d'utiliser l'opérateur d'extension (tel que [Newelement, ... Arr]) pour créer un nouveau tableau; 3. Vous pouvez également utiliser la méthode CONCAT () pour combiner le nouveau tableau d'éléments avec le numéro d'origine, renvoyez le nouveau tableau sans modifier le tableau d'origine; En résumé, utilisez Unsich () lors de la modification du tableau d'origine et recommandez l'opérateur d'extension lorsque vous gardez le tableau d'origine inchangé.

Comparaison des performances: Java Vs. GO pour les services backend Comparaison des performances: Java Vs. GO pour les services backend Aug 14, 2025 pm 03:32 PM

GOTYPICAL OFFERSBETTERRUNTIMEPERFORMANCE AVEC LA MAINTRÉE DE PUTHROUGHTANDLOWERLATENCE, ENTERTFORI / O-HEAVYSERVICES, DUETOITSLIGHT LONDEGOROUTINESANDERFICENTSCHEDULL

Comment travailler avec JSON à Java Comment travailler avec JSON à Java Aug 14, 2025 pm 03:40 PM

ToworkwithJSONinJava,useathird-partylibrarylikeJackson,Gson,orJSON-B,asJavalacksbuilt-insupport;2.Fordeserialization,mapJSONtoJavaobjectsusingObjectMapperinJacksonorGson.fromJson;3.Forserialization,convertJavaobjectstoJSONstringsviawriteValueAsString

Quel est le mot-clé Assert en Java? Quel est le mot-clé Assert en Java? Aug 17, 2025 am 12:52 AM

TheassertKeywordInjavaisUsedTovalIdateShandshandingsDuringDevelopment, ThrowinganAssertionErroriftheconditionisfalse.2.ithastwoforms: AssertCondition; AndSersertCondition: Message; avecthelatterProvidActureCustomerMessage.3.

See all articles