Página 1 de 1

Orden de los elementos en XML

Publicado: Vie May 27, 2022 7:59 am
por jalter
Hola a todos

Tengo un proceso que genera un xml y que ha funcionado con un pac.
Ahora estoy haciendo pruebas con Ecodex y el mismo xml me manda un error

Código: Seleccionar todo

301 The element 'Concepto' in namespace 'http://www.sat.gob.mx/cfd/4' has invalid child element 'Impuestos' in namespace 'http://www.sat.gob.mx/cfd/4'. List of possible elements expected: 'InformacionAduanera, CuentaPredial, ComplementoConcepto, Parte' in namespace 'http://www.sat.gob.mx/cfd/4'.
Ecodex dice que tengo MAL la estructura, (ni si quiera me explica el error textualmente :? ), pero me manda unas imagenes y lo que veo es que el orden del elemento <cfdi:InformacionAduanera> esta antes que el elemento <cfdi:Impuestos>.

Esto nunca habia sido un impedimento y en el programa ValidaCFD todo esta correcto.
Segun yo el orden de los elementos en un xml no es estricto o si ?


saludos

Re: Orden de los elementos en XML

Publicado: Vie May 27, 2022 8:24 am
por Dado
Segun yo depende del lenguaje que estes usando. Algunos lenguajes son estrictos con el orden y otros no

Delphi, el lenguaje con el que esta escrito el ValidaCFD, no es estricto, por eso no marca error, supongo.

Re: Orden de los elementos en XML

Publicado: Vie May 27, 2022 1:09 pm
por jalter
OK, entonces si es posible que algunos pac, parsers o herramientas si pueden validar incluso el orden de lo elementos.
Pues hare los ajustes

Nota: No estoy implicando que ValidaCFD este mal, me ha servido mucho :)

Gracias
saludos

Re: Orden de los elementos en XML

Publicado: Mar May 31, 2022 12:49 pm
por Dado
Mira, recibi una queja de un usuario de nuestro validador, y me acorde de este tema que discutiamos aqui.

Resulta que los XML de cierto proveedor no podia cargarlos nuestro validador ValidaCFD (por cierto, programado en Delphi), marca error fatal

Pero si los cargas en cualquier otro validador en linea, los carga y valida sin problema !!

Despues de analizarlo resulta que estos XML tienen un namespace muy especial, estan asi :

<cfdi:Comprobante xmlns:xml="http://www.w3.org/XML/1998/namespace" ......

De hecho es tan especial, que si cargas el XML en Chrome o Edge, no se muestra ese namespace, tienes que cargarlo con el humile bloc de notas para poderlo ver

Que lo hace tan especial ??? No lo se y no he tenido tiempo de preguntarle a don google.

La anecdota aqui, es mas o menos la misma, cada lenguaje/modulo/parser/etc interpreta a su entender los XML, algunos casos incluso como un error fatal en caso de que haya algo que no les guste.

Pregunta seria, tu que harias en este caso, si estuvieras validando el XML, lo dabas por aceptado o pedirias al emisor que lo verifique, en el sentido de que ese namespace NO es parte del estandar de un cfdi ??

Adjunto el mismo XML, es un XML real de produccion, con y sin el dato en cuestion. Saludos.