2016-01-07 13 views
1

У меня есть много XSL-преобразований, которые полагаются на формат XML java.beans.XMLEncoder, и мне интересно, могу ли я найти заменяемый lib, который имеет лучшую производительность. Я посмотрел на XStream, но его формат сериализации отличается.Замена на замену java.beans.XMLEncoder

Я ищу, чтобы заменить его, поскольку я работаю с устаревшей кодовой базой, которая имеет раздвоенную версию XMLEncoder, и я хотел бы вернуть ее в нечто более стандартное, но java.beans.XMLEncoder имеет гораздо худшую производительность.

Для класса Person (с соответствующими добытчиками и сеттеров):

public class Person { 
    private String name; 
    private List<String> favoriteColors; 
    private Date birthDate; 
    private int age; 
} 

XMLEncoder производит XML, как в следующем:

<?xml version="1.0" encoding="UTF-8"?> 
<java version="1.8.0_66" class="java.beans.XMLDecoder"> 
<object class="Person" id="Person0"> 
    <void property="age"> 
    <int>40</int> 
    </void> 
    <void property="birthDate"> 
    <object class="java.util.Date"> 
    <long>175064400000</long> 
    </object> 
    </void> 
    <void property="favoriteColors"> 
    <void method="add"> 
    <string>red</string> 
    </void> 
    <void method="add"> 
    <string>green</string> 
    </void> 
    </void> 
    <void property="name"> 
    <string>John Doe</string> 
    </void> 
</object> 
</java> 

Я предполагаю, что можно было бы создать кучу XStream Converters, чтобы приблизиться к формату, но мне интересно, есть ли более легкое решение, прежде чем я пойду вниз по этой кроличьей дыре.

ответ

0

В случае, если кто-то еще столкнется с этим позже, внедрение через XStream приведет вас туда, пока вас не волнует порядок элементов. Возможно, вы, возможно, сделаете более глубокую реализацию, которая позволит вам контролировать порядок элементов, но в итоге я отказался от этой идеи, и я просто займусь этим, пока не смогу переписать код, о котором идет речь.