Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Nouvelle API de génération de XML

4 réponses
Avatar
Traroth
Bonjour,

Je viens de mettre en ligne une nouvelle petite API permettant de
g=E9n=E9rer du XML avec Java.
L'id=E9e est de g=E9n=E9rer du XML en utilisant une pile. On empile chaque
niveau d'imbrication, et il suffit de d=E9piler pour redescendre d'un
niveau. L'objectif =E9tant d'obtenir de meilleurs performances qu'avec
ce qui se fait actuellement, genre JDOM ou XStream. J'essayerais de
faire un petit benchmark, =E0 l'occasion.

Ca s'appelle Xpresso, c'est sous LGPL et vous pouvez le trouver ici si
=E7a vous int=E9resse :

http://sourceforge.net/projects/xpresso/

Tout feedback m'int=E9resse, m=EAme mauvais...

4 réponses

Avatar
steph
Traroth wrote:
Bonjour,

Je viens de mettre en ligne une nouvelle petite API permettant de
générer du XML avec Java.
L'idée est de générer du XML en utilisant une pile. On empile chaque
niveau d'imbrication, et il suffit de dépiler pour redescendre d'un
niveau. L'objectif étant d'obtenir de meilleurs performances qu'avec
ce qui se fait actuellement, genre JDOM ou XStream. J'essayerais de
faire un petit benchmark, à l'occasion.

Ca s'appelle Xpresso, c'est sous LGPL et vous pouvez le trouver ici si
ça vous intéresse :

http://sourceforge.net/projects/xpresso/

Tout feedback m'intéresse, même mauvais...



Il n'est pas évident de savoir quel type d'usage est couvert.
Générer du xml mais à partir de quoi ?
JDOM permet de manipuler
XStream perment de faire du traitement en flux.
Donc xpresso ne semble pas 'concurrencer' cette API ou cette bibliothèque.
A la lecture de la javadoc (c'est la seule documentation disponible ?),
il est surprenant de gérer une pile sur le document mais pas sur un
élémént, comment gérer un arbre ?
D'autre part, je n'ai pas vu d'objet utilisant un outputstream ou un
write - je m'attendais à le voir dans "document" - comment produit-on le
document xml ?
Avatar
Traroth
On 6 jan, 00:35, steph wrote:
Traroth wrote:
> Bonjour,

> Je viens de mettre en ligne une nouvelle petite API permettant de
> générer du XML avec Java.
> L'idée est de générer du XML en utilisant une pile. On empile cha que
> niveau d'imbrication, et il suffit de dépiler pour redescendre d'un
> niveau. L'objectif étant d'obtenir de meilleurs performances qu'avec
> ce qui se fait actuellement, genre JDOM ou XStream. J'essayerais de
> faire un petit benchmark, à l'occasion.

> Ca s'appelle Xpresso, c'est sous LGPL et vous pouvez le trouver ici si
> ça vous intéresse :

>http://sourceforge.net/projects/xpresso/

> Tout feedback m'intéresse, même mauvais...

Il n'est pas évident de savoir quel type d'usage est couvert.
Générer du xml mais à partir de quoi ?
JDOM permet de manipuler
XStream perment de faire du traitement en flux.
Donc xpresso ne semble pas 'concurrencer' cette API ou cette bibliothèq ue.
A la lecture de la javadoc (c'est la seule documentation disponible ?),
il est surprenant de gérer une pile sur le document mais pas sur un
élémént, comment gérer un arbre ?
D'autre part, je n'ai pas vu d'objet utilisant un outputstream ou un
write - je m'attendais à le voir dans "document" - comment produit-on l e
document xml ?



Personnellement, j'ai d'abord créé un système analogue (mais dont la
propriété intellectuelle appartient à mon employeur) dans le cadre
d'un projet dans lequel un client Flex communique avec un serveur
Java. Comme la problématique de la montée en charge est très
importante, j'ai abandonné rapidement l'idée d'utiliser des web
services ou même BlazeDS.
Xpresso permet de générer du XML à partir d'une structure de donnée s,
comme une liste, par exemple. Mais il faut construire la logique
permettant de le générer soi-même. Avec JDOM aussi, au demeurant.
Le principe est simple : la pile stocke ta position en profondeur dans
l'arbre. Si tu dépiles et que tu empiles un autre élément, tu cré és
une branche parallèle à la première (celle que tu as dépilée).
Actuellement, oui, la Javadoc est la seule documentation. Je vais
toutefois écrire une présentation permettant d'introduire le
fonctionnement.
On peut récupérer le XML sous forme de String ou de Reader, en ce
moment. La version que je vais mettre en ligne dans les prochains
jours permet également de le récupérer sous forme de FileWriter (je
compte également changer le Reader en StringReader). Je prévois aussi
de créer une classe XpressoSource, qui implémentera
javax.xml.transform.Source.
Avatar
Traroth
En fait, on peut penser à cette bibliothèque comme à un genre de SAX à
l'envers.

Traroth


On Jan 6, 12:35 am, steph wrote:
Traroth wrote:
> Bonjour,

> Je viens de mettre en ligne une nouvelle petite API permettant de
> générer du XML avec Java.
> L'idée est de générer du XML en utilisant une pile. On empile cha que
> niveau d'imbrication, et il suffit de dépiler pour redescendre d'un
> niveau. L'objectif étant d'obtenir de meilleurs performances qu'avec
> ce qui se fait actuellement, genre JDOM ou XStream. J'essayerais de
> faire un petit benchmark, à l'occasion.

> Ca s'appelle Xpresso, c'est sous LGPL et vous pouvez le trouver ici si
> ça vous intéresse :

>http://sourceforge.net/projects/xpresso/

> Tout feedback m'intéresse, même mauvais...

Il n'est pas évident de savoir quel type d'usage est couvert.
Générer du xml mais à partir de quoi ?
JDOM permet de manipuler
XStream perment de faire du traitement en flux.
Donc xpresso ne semble pas 'concurrencer' cette API ou cette bibliothèq ue.
A la lecture de la javadoc (c'est la seule documentation disponible ?),
il est surprenant de gérer une pile sur le document mais pas sur un
élémént, comment gérer un arbre ?
D'autre part, je n'ai pas vu d'objet utilisant un outputstream ou un
write - je m'attendais à le voir dans "document" - comment produit-on l e
document xml ?


Avatar
dufrenoy
Je viens de publier la version 0.7; Extrait du changelog :

0.7 version, 2010-01-11

Bug fixes/optimizations/refactoring:
-Element.label is now final.
-In the Document.unstack() method: the peekFirst()+removeFirst()
combination is replaced by pollFirst().
-Added a condition on open in the while loop in Document.finish()
(useful in the inherited
ConcurrentDocument class).

New features:
-A getStringReader() method is added to Document, returning the xml
text as a StringReader.
-Document now implements Cloneable. Document.clone() overrides
Object.clone().
and returns a deep copy of the Document, including deep copies of all
Element in the stack (see below).
-Element now implements Cloneable. Element.clone() overrides
Object.clone() and returns a deep copy of
the Element.
-Document now implements CharSequence and the length(), charAt(int),
subSequence(int,int) and toString() methods
are added.
-All classes now implement Serializable and contain a
serialVersionUID.
-Comment, Element, ProcessingInstruction, Comment and CDATA
constructors now protected. Instance are to be created
with methods from Document
-Added a thread-safe ConcurrentDocument class.
-Added a thread-safe ConcurrentElement class.
-Added a org.xpresso.xml.outputOutputter class, to output data in a
Writer ou an OutputStream.


Et maintenant, je vais essayer d'améliorer la qualité : passer aux
tests unitaires, documenter (y compris les packages), avant de
continuer d'ajouter des fonctionnalités. Avant que ça ne devienne trop
gros...

Traroth


On Jan 8, 11:01 am, Traroth wrote:
En fait, on peut penser à cette bibliothèque comme à un genre de SA X à
l'envers.

Traroth

On Jan 6, 12:35 am, steph wrote:

> Traroth wrote:
> > Bonjour,

> > Je viens de mettre en ligne une nouvelle petite API permettant de
> > générer du XML avec Java.
> > L'idée est de générer du XML en utilisant une pile. On empile c haque
> > niveau d'imbrication, et il suffit de dépiler pour redescendre d'un
> > niveau. L'objectif étant d'obtenir de meilleurs performances qu'ave c
> > ce qui se fait actuellement, genre JDOM ou XStream. J'essayerais de
> > faire un petit benchmark, à l'occasion.

> > Ca s'appelle Xpresso, c'est sous LGPL et vous pouvez le trouver ici s i
> > ça vous intéresse :

> >http://sourceforge.net/projects/xpresso/

> > Tout feedback m'intéresse, même mauvais...

> Il n'est pas évident de savoir quel type d'usage est couvert.
> Générer du xml mais à partir de quoi ?
> JDOM permet de manipuler
> XStream perment de faire du traitement en flux.
> Donc xpresso ne semble pas 'concurrencer' cette API ou cette biblioth èque.
> A la lecture de la javadoc (c'est la seule documentation disponible ?),
> il est surprenant de gérer une pile sur le document mais pas sur un
> élémént, comment gérer un arbre ?
> D'autre part, je n'ai pas vu d'objet utilisant un outputstream ou un
> write - je m'attendais à le voir dans "document" - comment produit-on le
> document xml ?