Jaki jest odpowiednik serializacji XML w języku Java w języku Java?
java
xml
serialization
Dmitry Shechtman
źródło
źródło
Odpowiedzi:
Odpowiedź 2008 "Oficjalnym" Java API do tego jest teraz JAXB - Java API for XML Binding. Zobacz samouczek firmy Oracle . Implementacja referencyjna znajduje się pod adresem http://jaxb.java.net/
Aktualizacja 2018 Należy zauważyć, że moduły Java EE i CORBA są przestarzałe w wersji SE w JDK9 i mają zostać usunięte z SE w JDK11 . W związku z tym, aby używać JAXB, będzie musiał albo znajdować się w istniejącym środowisku klasy korporacyjnej, dołączonym np. Przez serwer aplikacji, albo będzie trzeba wprowadzić go ręcznie.
źródło
XStream całkiem nieźle radzi sobie z serializacją obiektu do XML bez dużej konfiguracji i pieniędzy! (jest na licencji BSD).
Użyliśmy go w jednym z naszych projektów, aby zastąpić zwykłą, starą serializację Java i działał prawie po wyjęciu z pudełka.
źródło
Projekt „Prosta serializacja XML”
Możesz zajrzeć do projektu Simple XML Serialization . Jest to najbliższa rzecz, jaką znalazłem, do System.Xml.Serialization w .Net.
źródło
JAXB jest częścią standardowej edycji JDK w wersji 1.6+. Tak jest
FREE
i nie ma żadnych dodatkowych bibliotek do pobrania i zarządzania. Prosty przykład można znaleźć tutajWydaje się, że XStream nie żyje. Ostatnia aktualizacja miała miejsce 6 grudnia 2008 r.
Simple
Wydaje się tak łatwa i prostsza jak JAXB, ale nie mogłem znaleźć żadnych informacji licencyjnych, aby ocenić ją do użytku korporacyjnego.źródło
Warto wspomnieć, że od wersji 1.4 Java posiadała klasy java.beans.XMLEncoder i java.beans.XMLDecoder. Te klasy wykonują kodowanie XML, które jest co najmniej bardzo porównywalne z serializacją XML iw pewnych okolicznościach może załatwić sprawę.
Jeśli twoja klasa trzyma się specyfikacji JavaBeans dla swoich metod pobierających i ustawiających, ta metoda jest prosta w użyciu i nie potrzebujesz schematu. Z następującymi zastrzeżeniami:
Na przykład weź następującą deklarację:
Wykonywanie tego kodu:
Dałoby to następujący plik:
źródło
java.beans.XMLDecoder
z danymi dostarczonymi przez użytkownika może wprowadzić luki w zabezpieczeniach umożliwiające wykonanie dowolnego kodu w kodzie.XMLBeans działa świetnie, jeśli masz schemat dla swojego XML. Tworzy obiekty Java dla schematu i tworzy łatwe w użyciu metody analizy.
źródło
Jeśli mówisz o automatycznej serializacji obiektów XML, sprawdź Castor :
źródło
Zwykle używam jaxb lub XMLBeans, jeśli potrzebuję utworzyć obiekty serializowalne do XML. Teraz widzę, że XStream może być bardzo przydatny, ponieważ jest nienachalny i ma naprawdę prosty interfejs API. Niedługo się nim pobawię i pewnie go wykorzystam. Jedyną wadą, jaką zauważyłem, jest to, że nie mogę samodzielnie utworzyć identyfikatora obiektu do tworzenia odwołań.
@Barak Schiller
Dzięki za umieszczenie linku do XStream!
źródło
Nie zapomnij o JiBX .
źródło
jeśli potrzebujesz ustrukturyzowanego rozwiązania (takiego jak ORM), JAXB2 jest dobrym rozwiązaniem.
Jeśli chcesz serializacji, takiej jak DOT NET, możesz użyć długoterminowej trwałości komponentów JavaBeans
Wybór zależy od użycia serializacji.
źródło
źródło