Dieses Mal werde ich Ihnen die Implementierungsschritte für die Verwendung von Oxm zum Zuordnen von XML vorstellen. Was sind die Vorsichtsmaßnahmen für die Verwendung von Oxm zum Zuordnen von XML? .
XML-Parsing-Technologie verstehen
XML-bezogene Konzepte
(1) DTD: XML-Syntaxregeln sind der Überprüfungsmechanismus von XML-Dateien. Sie können XML-Dokumente und DTD-Dateien vergleichen, um festzustellen, ob das Dokument den Spezifikationen entspricht und ob die Elemente und Tags korrekt verwendet werden.
(2) XML ist die Basis von SOA.
XML-Verarbeitungstechnologie
(1) Um XML verwenden zu können, müssen wir über einen XML-Prozessor oder eine XML-API auf Daten zugreifen. Derzeit bietet JAXP zwei Methoden zur Verarbeitung von XML: DOM und SAX.
①DOM: DOM greift durch Programmierung auf die Daten und Struktur im XML-Dokument zu, basierend auf der Baumstruktur des XML-Dokuments im Speicher. Der Nachteil besteht darin, dass das Laden des gesamten XML-Dokuments in den Speicher einen hohen Overhead erfordert.
②SAX: Es ist ereignisgesteuert und verwendet ein Parsing-Segment, um das Problem zu lösen, dass DOM großen Speicher belegt. Sein Nachteil besteht jedoch darin, dass es nicht zufällig auf Dokumente zugreifen kann.
(2) Um die Probleme von DOM und SAX zu lösen, wurde eine Stream-basierte StreamAPI für XML (kurz StAX) hinzugefügt, die ebenfalls ereignisgesteuert ist.
(3) DOM, SAX und StAX verarbeiten alle XML basierend auf der Dokumentstruktur, aber viele Anwendungen konzentrieren sich nur auf die Dokumentdaten selbst, sodass die XML-Datenbindungstechnologie ins Leben gerufen wurde.
Datenbindung: bezieht sich auf den Prozess des Extrahierens von Daten aus Speichermedien (XML-Dokumente und Datenbanken) und der Darstellung der Daten durch Programme, d. h. der Bindung der Daten an eine Art Speicherstruktur, die die virtuelle Maschine verstehen und bedienen kann.
XML-Bindungsframeworks: Castor, JAXB, JiBX, Quick, Zeus usw.
XStream-Übersicht
(1) XStream ist ein einfaches und benutzerfreundliches Open-Source-Framework zum Serialisieren von Java-Objekten in XML oder zum Deserialisieren von XML in Java-Objekten.
(2) Zusammensetzung der XStream-Architektur: Konverter: Wenn XStream auf ein Objekt trifft, das konvertiert werden muss, delegiert es an die entsprechende Konverterimplementierung. IO (Eingabe/Ausgabe): XStream wird von den zugrunde liegenden XML-Daten über HierarchicalStreamWriter und HierarchicalStreamReader abstrahiert, die für Serialisierungs- bzw. Deserialisierungsvorgänge verwendet werden. Kontext: Wenn XStream Objekte serialisiert und deserialisiert, erstellt es zwei Klassen, MarshallingContext und UnmarshallingContext, und der Tower verarbeitet die Daten und delegiert sie an den entsprechenden Konverter. Fassade (einheitlicher Eingang): Integrieren Sie die oben genannten drei Punkte und öffnen Sie sie über eine einheitliche Schnittstelle für Benutzer.Schnellstart
(1) Erstellen Sie einen XStream und geben Sie den XML-Parser an XStreamxstream=newXStream(newDomDriver()); Wenn Sie keinen Parser angeben, verwendet XStream standardmäßig den XPP-Parser (XMLPullParser), einen Hochgeschwindigkeitsparser. (2) Beispiele sind wie folgt:Verwenden Sie den XStream-Alias
XStream-Konverter
Während des Entwicklungsprozesses müssen Sie manchmal einige benutzerdefinierte Typen konvertieren. Implementieren Sie einfach die Converter-Schnittstelle und rufen Sie die Methode registerConverter() von XStream auf, um den Konverter zu registrieren.XStream-Anmerkungen
XStreamxstream=newXStream(newDomDriver()); Es gibt zwei Möglichkeiten, Objekte zu laden:①Methode 1:
xstream.processAnnotations(AAA.class);
xstream.processAnnotations(BBB.class);
②Methode 2:
xstream.autodetectAnnotations(true);//Automatisch die Annotation Bean laden und auch das annotierte Objekt zwischenspeichern
Streaming-Objekt
(1) XStream bietet alternative Implementierungen für ObjectInputStream und ObjectOutputStream und ermöglicht XML-Serialisierungs- oder Deserialisierungsvorgänge in Form von Objektströmen. Das vorherige ist das vom DOM-basierten XML-Parser gelesene XML. Hier sollten wir natürlich die Stream-Methode zum Parsen verwenden.
Der Unterschied zwischen der Verwendung von
PrettyWriter und CompactWriter besteht darin, dass PrettyWriter das generierte XML formatiert, während CompactWriter das generierte XML komprimiert.
Persistenz-API
(1) XStream bietet eine einfache Möglichkeit, Objekte in einer Sammlung in Dateien beizubehalten, z. B.: XmlArrayList, XmlSet, XmlMap usw.
(2) Bevor Sie eine Sammlung erstellen, müssen Sie außerdem eine Persistenzstrategie PersistenceStrategy angeben.
Verarbeitung von JSON
(1) XML hat in WebService eine unerschütterliche Stellung, aber in den meisten Webanwendungen wird immer noch leichtgewichtiges JSON als Datenaustauschformat verwendet.
(2) XStream stellt JettisonMappedXmlDriver und JsonHierarchicalStreamDriver bereit, um die Konvertierung von Java-Objekten und JSON abzuschließen.
(3) Der Unterschied zwischen JettisonMappedXmlDriver und JsonHierarchicalStreamDriver:
①JettisonMappedXmlDriver generiert komprimiertes JSON, während JsonHierarchicalStreamDriver formatiertes JSON generiert.
②Um JSON in ein Objekt zu konvertieren, können Sie nur JettisonMappedXmlDriver verwenden.
Integration mit SpringOXM
SpringOXM-Übersicht
SpringOXM hat Verbesserungen am Mainstream-O/ vorgenommen XMapping-Framework Marshaller und Unmarshaller sind eine einheitliche Abstraktion und Kapselung und die beiden Kernschnittstellen von SpringOXM. Marshaller wird zum Konvertieren von Objekten in XML verwendet, und Unmarshaller wird zum Konvertieren von XML in Objekte verwendet.
Zusammenfassung
(1) Die XML-Datenbindung von Java-Anwendungen kann in zwei Methoden zusammengefasst werden:
Generieren Sie Java-Sprachcode (wie JAXB, XMLBeans, Castor) basierend auf XML-Dokumenten.
Verwenden Sie eine Form der Zuordnungsbindungsmethode, die darin besteht, festzulegen, wie Java-Klassen mit XML verknüpft werden (z. B. XStream, Castor, JiBX).
(2) Vergleich von 2 Möglichkeiten:
Bei einer stabilen Dokumentstruktur, die durch ein Schema oder eine DTD definiert wird, die für die Anforderungen der Anwendung geeignet ist, ist ein Codegenerierungsansatz möglicherweise die beste Wahl.
Wenn Sie eine vorhandene Java-Klasse verwenden oder anstelle einer XML-Struktur eine Struktur der Klasse verwenden möchten, die die Verwendung der Daten durch die Anwendung widerspiegelt, ist die Zuordnungsmethode die beste Wahl.
Ich glaube, dass Sie die Methode beherrschen, nachdem Sie den Fall in diesem Artikel gelesen haben. Weitere spannende Informationen finden Sie in anderen verwandten Artikeln auf der chinesischen PHP-Website!
Empfohlene Lektüre:
Swiper implementiert die Bildrotation für mobile Werbung
Wie vue+swiper das Seitenleistenmenü implementiert
Das obige ist der detaillierte Inhalt vonImplementierungsschritte für die Verwendung von Oxm zum Zuordnen von XML. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!