Imagen

DESCARGA SOFTWARE PARA FACTURA ELECTRONICA DE AQUI.
Facturacion, Validacion, Addendas, Librerias de programacion, etc.


CARTA PORTE V3.1

ECODEX TIENE ESTOS NUEVOS DATOS DE CONTACTO :
Comercializacion y Ventas - Evelia Vicke evicke@ecodex.com.mx 33-16-03-03-48
Soporte - Humberto Guerrero soporte@ecodex.com.mx 33-34-90-46-03


.

Cómo ordeno los atributos de un nodo XML

La factura esta basada en XML, independiente del lenguaje de programacion todos debemos saber acerca de esta tecnologia
[[ FORO CERRADO DEBIDO A QUE YA LA INFORMACION YA NO ES VIGENTE ]]
Cerrado
eduardoaap
Mensajes: 27
Registrado: Vie Feb 04, 2011 10:15 am

Cómo ordeno los atributos de un nodo XML

Mensaje por eduardoaap »

Hola a todos:

Les comento mi duda. Debo generar la addenda de Mabe, para ello recibí el XSD de la misma y con JAXB generé su clase correspondiente, sin embargo tengo un problema. Cuando se genera el XML, los nodos se generan en el órden correcto, pero no así sus atributos.

Lo único que sé es que con lo siguiente:

Código: Seleccionar todo

@XmlType(name = "", propOrder = {    "moneda",    "proveedor",    "entrega",    "detalles",    "descuentos",    "subtotal",    "traslados",    "retenciones",    "total"})
Le especifico en que orden quiero los nodos. Pero mi problema es como indicar en qué orden quiero que aparezcan los atributos de los nodos. Por ejemplo:

Actualmente los atributos del nodo raíz mabe:Factura me aparece en el siguiente orden:

Código: Seleccionar todo

<mabe:Factura fecha="2011-04-14" folio="1" tipoDocumento="FACTURA" version="1.0">
y yo quiero que me aparezcan de la siguiente forma:

Código: Seleccionar todo

<mabe:Factura version="1.0" tipoDocumento="FACTURA" fecha="2011-04-14" folio="1" > 
Sin embargo no he encontrado de qué manera puedo especificar este orden.

¿Alguien puede ayudarme?, adjunto la clase de la Addenda generada por JAXB


De antemano muchas gracias.
Adjuntos
Factura.rar
Clase java
(2.27 KiB) Descargado 316 veces
Avatar de Usuario
Dado
Mensajes: 15981
Registrado: Mar Jul 06, 2010 7:56 pm

Re: Cómo ordeno los atributos de un nodo XML

Mensaje por Dado »

No se si este sea tu caso pero te menciono un detalle que me costo descubrir.

Por alguna razon que todavia no termino de entender el (mugre) Internet Explorer 9 (nueve) CAMBIA EL ORDEN DE LOS ATRIBUTOS cuando se visualiza el XML y no solo eso, tambien por sus pantalones le pone el encabezado <?xml version="1.0" encoding="utf-8" ?> aun si tu XML no trae ese encabezado lo muestra en pantalla.

De hecho, como programador eso no me gustaba y degrade mi explorer a la version 8.

Sacame de la duda, estas usando explorer 9?
ADDENDAS? VALIDACION? CODIGO PARA PROGRAMAR TU PROPIA SOLUCION? TODO LO TENEMOS EN WWW.VALIDACFD.COM VISITANOS !!
eduardoaap
Mensajes: 27
Registrado: Vie Feb 04, 2011 10:15 am

Re: Cómo ordeno los atributos de un nodo XML

Mensaje por eduardoaap »

Efectivamente estoy utilizando el explorer 9, sin embargo, los archivos XML que genero no los abro con el explorer, sino con el editor Altova XMLSpy y el orden de los atributos no es como yo lo quiero.
Avatar de Usuario
Dado
Mensajes: 15981
Registrado: Mar Jul 06, 2010 7:56 pm

Re: Cómo ordeno los atributos de un nodo XML

Mensaje por Dado »

eduardoaap escribió:Efectivamente estoy utilizando el explorer 9, sin embargo, los archivos XML que genero no los abro con el explorer, sino con el editor Altova XMLSpy y el orden de los atributos no es como yo lo quiero.
Mmmmh, la cosa es que XMLSpy pudiera estar usando la libreria de Windows para parsear el XML (vease aqui) y esa libreria es parte del ie9

La ultima prueba, abrelo con el bloc de notas y revisa el orden de tus atributos.

NOTA: Una disculpa por anticipado si te estoy guiando por el lado equivocado, pero bueno, es mi granito de arena y realmente creo que pudiera ser problema del visor mas que de tu programa.
ADDENDAS? VALIDACION? CODIGO PARA PROGRAMAR TU PROPIA SOLUCION? TODO LO TENEMOS EN WWW.VALIDACFD.COM VISITANOS !!
eduardoaap
Mensajes: 27
Registrado: Vie Feb 04, 2011 10:15 am

Re: Cómo ordeno los atributos de un nodo XML

Mensaje por eduardoaap »

Muchas gracias por tu ayuda.Ya descubrí cual era el detalle, sólo bastaba con acomodar en mi clase los atributos pero en orden inverso a como yo lo quiero.

Inicialmente estaba así:

Código: Seleccionar todo


public class Factura{

@XmlElementAttribute(required=true)
protected String version;

@XmlElementAttribute(required=true)
protected String tipoDocumento;

@XmlElementAttribute(required=true)
protected String folio;

@XmlElementAttribute(required=true)
protected XmlGregorianCalendar fecha;

}
Y el resultado en el XML era:

Código: Seleccionar todo

<mabe:Factura fecha="2011-06-27" folio="FW26" tipoDocumento="FACTURA" version="1.0">
Entonces decidí colocar en orden inverso los atributos directamente en la clase, de la siguiente manera.

Código: Seleccionar todo

public class Factura{

@XmlElementAttribute(required=true)
protected XmlGregorianCalendar fecha;

@XmlElementAttribute(required=true)
protected String folio;

@XmlElementAttribute(required=true)
protected String tipoDocumento;

@XmlElementAttribute(required=true)
protected String version;

}
y efectivamente, cuando se generó el XML, el orden de los atributos ya era correcto.

Código: Seleccionar todo

<mabe:Factura version="1.0" tipoDocumento="FACTURA" folio="FW26" fecha="2011-06-27">
De cualquier forma muchas gracias por el apoyo.

Saludos!!
Cerrado