Saltar al contenido

exmlerror –  lï¿œnea 1: las estructuras de documento xml deben comenzar y terminar dentro de la misma entidad.)

Las estructuras de documentos XML deben comenzar y terminar dentro de la misma entidad

Si te estás peleando con el error exmlerror –  lï¿œnea 1: las estructuras de documento xml deben comenzar y terminar dentro de la misma entidad.). No te preocupes, uno de nuestros usuarios ya ha realizado esta pregunta y nuestra comunidad le ha respondido.

Un Usuario hizo la siguiente pregunta

Hola expertos,

Estamos en SAP PO 7.5.

Al ejecutar el mapeo de Java en ESR, arrojamos el siguiente error.

Error de detalles:

No se puede mostrar la vista de los árboles; Error al analizar el documento XML (las estructuras del documento XML deben comenzar y terminar dentro de la misma entidad).

He verificado la carga útil de salida y puedo ver que la etiqueta es definitiva ““falta después de la etiqueta último.

No debe repetirse después de cada etiqueta. .

Rendimiento esperado

<?xml version="1.0" encoding="UTF-8"?>
<ns0:MT_BD_QP_ECC xmlns:ns0="urn:BDG-is.com/xi/KWE/KIG/01_db">
<row>
<pSystemId>DUK</pSystemId>
<pRecordType>BD</pRecordType>
<pSourceSystem>SAPXI</pSourceSystem>
<pStatus>1</pStatus>
<pPlantCodeCHO</pPlantCode>
<pBlockCode>B</pBlockCode>
<pDateTimeFrom>2019-01-01T00:00:00.000+00:00</pDateTimeFrom>
<pDateTimeTo>2019-01-31T23:59:59.999+00:00</pDateTimeTo>
<pMaterial>Apple</pMaterial>
<pAmount>106789.055</pAmount>
<pAmountUnit>HW</pAmountUnit>
</row>
<row>
<pSystemId>DUK</pSystemId>
<pRecordType>BD</pRecordType>
<pSourceSystem>SAPXI</pSourceSystem>
<pStatus>1</pStatus>
<pPlantCode>CHO</pPlantCode>
<pBlockCode>B</pBlockCode>
<pDateTimeFrom>2019-01-01T00:00:00.000+00:00</pDateTimeFrom>
<pDateTimeTo>2019-01-31T23:59:59.999+00:00</pDateTimeTo>
<pMaterial>Orange</pMaterial>
<pAmount>189567.055</pAmount>
<pAmountUnit>HW</pAmountUnit>
</row>
</ns0:MT_BD_QP_ECC>

Salida de error

<?xml version="1.0" encoding="UTF-8"?>
<ns0:MT_BD_QP_ECC xmlns:ns0="urn:BDG-is.com/xi/KWE/KIG/01_db">
<row>
<pSystemId>DUK</pSystemId>
<pRecordType>BD</pRecordType>
<pSourceSystem>SAPXI</pSourceSystem>
<pStatus>1</pStatus>
<pPlantCodeCHO</pPlantCode>
<pBlockCode>B</pBlockCode>
<pDateTimeFrom>2019-01-01T00:00:00.000+00:00</pDateTimeFrom>
<pDateTimeTo>2019-01-31T23:59:59.999+00:00</pDateTimeTo>
<pMaterial>Apple</pMaterial>
<pAmount>106789.055</pAmount>
<pAmountUnit>HW</pAmountUnit>
</row>
<row>
<pSystemId>DUK</pSystemId>
<pRecordType>BD</pRecordType>
<pSourceSystem>SAPXI</pSourceSystem>
<pStatus>1</pStatus>
<pPlantCode>CHO</pPlantCode>
<pBlockCode>B</pBlockCode>
<pDateTimeFrom>2019-01-01T00:00:00.000+00:00</pDateTimeFrom>
<pDateTimeTo>2019-01-31T23:59:59.999+00:00</pDateTimeTo>
<pMaterial>Orange</pMaterial>
<pAmount>189567.055</pAmount>
<pAmountUnit>HW</pAmountUnit>
</row>

En nuestro mapeo, estamos usando startElement / endElement (Uri String, String localName, String qName) métodos para la notificación del inicio y final de un elemento.

 public void endElement (String uri, String localName, String qName) throws SAXException
    {
		newContent = true;
    	
    	if(qName.equals("row"))
        {
            if(currentRecord.flag != null && 
               currentRecord.flag.equals("OK")) // Create result entry if flag OK set
            {
               if (targetsystem.equals("ECC")) // ECC Result
                {
                    // ECC is only interested in records having VTBT_DATUM >= 2010
                	if(Tools.DateHasValidYearECC(currentRecord.VTBT_DATUM, 2010))
                    {
                    	mapToTargetRecordsXem();
                    }
                }                
            }
        }
        else if(qName.equals("ES_MT_BD_QP_transit_ECC"))
        {  
            // end ECC result document
           result.append("</ns0:MT_BD_QP_ECC>");            
        }
    }

 

 

3 respuestas al error exmlerror –  lï¿œnea 1: las estructuras de documento xml deben comenzar y terminar dentro de la misma entidad.).

  • Hola Bhargava;

    El documento XML no es válido.

    Sobre

    Hasan

  • Gracias por su respuesta.

    Es un error ceñirse a la carga útil aquí. Podríamos ver el código a continuación en la carga útil de salida.

    < CHO

    El único problema con la última etiqueta.

    Sobre

    Bhargava Krishna

  • ¡Hola Bhargava Krishna!

    Intente usar localName en lugar de qName en su modo “endElement”. QName significa nombre completo (nombre de espacio + nombre de elemento).

    Acerca de Evgeniy.

     

Si tienes más dudas sobre SAP/ABAP sigue navegando por nuestra web y seguro que encontrarás respuesta a todas ellas, desde ebooksonline.es llevamos muchos años solucionando estos problemas del día a día de cualquier consultor o programador