Telling XStream where to start serializing from

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Telling XStream where to start serializing from

Jesus Salvador Ramos Cardona

Hi all.

 

Consider the following XML document:

 

<?xml version="1.0" encoding="Cp850"?>

<mensaje xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" categoria="RESPUESTA" xsi:type="mensaje">

            <respuesta>

                        <FechaOper>20060110</FechaOper>

                        <Id></Id>

                        <ErrCodigo>2</ErrCodigo>

                        <ErrDescripcion>

                                   The markup in the document preceding the root element must be well-formed.

                        </ErrDescripcion>

            </respuesta>

</mensaje>

 

XStream will obviously attempt to serialize starting from the tag ‘mensaje’, since it is the root element. How can I tell XStream to start serializing this doc from the ‘respuesta’ tag? Namely, the first child element?

 

Best regards.

 

J.

 

Jesús Ramos Cardona
Desarrollo de Sistemas de Casa de Bolsa

[hidden email][hidden email]

+52 (55) 51 74 22 22 ext. 1250

Ixe Grupo Financiero

Este correo electrónico y sus anexos pueden contener información CONFIDENCIAL para uso exclusivo de su destinatario. Si ha recibido este correo por error, por favor, notifíquelo al remitente y bórrelo de su sistema. Muchas gracias. Las opiniones expresadas en este correo son las de su autor y no son necesariamente compartidas o apoyadas por la compañía. Ixe Grupo Financiero no asume aquí obligaciones ni se responsabiliza del contenido de este correo, a menos que dicha información sea confirmada por escrito por un representante autorizado. No se garantiza que la transmisión de este correo sea segura o libre de errores, podría haber sido viciada, perdida, destruida, haber llegado tarde, de forma incompleta o contener VIRUS.

 

Reply | Threaded
Open this post in threaded view
|

Re: Telling XStream where to start serializing from

Rickard Öberg
Jesus Salvador Ramos Cardona wrote:
> XStream will obviously attempt to serialize starting from the tag
> ‘mensaje’, since it is the root element. How can I tell XStream to start
> serializing this doc from the ‘respuesta’ tag? Namely, the first child
> element?

The easiest way is probably to transform it into a DOM, get the node you
want to start from, and send that into XStream. That way you can
deserialize nodes at arbitrary paths easily by using XPath to locate them.

If you need more performance and have a more static format I would use a
custom XML-reader and override it to find the specific part before
starting the process. Overriding XppReader.pullNextEvent() seems like a
decent choice to do this.

/Rickard