xsl validator validate validar online archivo xml xslt xml-parsing xml-validation

validate - xml validator xsd



Cómo corregir el error: el marcado en el documento que sigue al elemento raíz debe estar bien formado (1)

Caso general

El marcado en el documento que sigue al elemento raíz debe estar bien formado.

Este error indica que su XML tiene marcado después del elemento raíz. Para estar bien formado , XML debe tener exactamente un elemento raíz , y no puede haber más marcado después del elemento raíz individual.

Un ejemplo de elemento raíz (BUENO)

<r> <a/> <b/> <c/> </r>

Las fuentes más comunes para este error son:

  1. Incluyendo etiquetas extraviadas o extra cercanas (BAD):

    <r> <a/> <b/> <c/> </r> </r> <!-- shouldn''t be here -->

  2. Intencionalmente tener múltiples elementos raíz (BAD):

    <a/> <b/> <!-- second root element shouldn''t be here --> <c/> <!-- third root element shouldn''t be here -->

  3. Sin querer tener múltiples elementos raíz (BAD):

    <r/> <!-- shouldn''t be self-closing --> <a/> <b/> <c/> </r>

  4. Analizando XML diferente de lo que piensas (MALO):

    Registre el XML inmediatamente antes de proporcionar al análisis que está fallando para asegurarse de que el XML que está viendo el analizador sea el mismo que el que cree que está viendo. Los errores comunes aquí incluyen:

    • El nombre de archivo del documento XML que se pasa al analizador difiere de lo que usted cree que es.
    • El buffer del XML está sucio. Asegúrese de que haya sido borrado antes de agregar su XML.
    • Un programa anterior de una etapa anterior en su canalización que cambia el XML antes del análisis que genera este mensaje de error.

Tu problema particular

En su caso particular, su XML parece tener múltiples elementos raíz porque el elemento xsl:stylesheet se cierra prematuramente (caso # 3 arriba).

Cambio

xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/>

a

xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

para solucionar su problema inmediato y agregar una etiqueta de cierre,

</xsl:stylesheet>

si uno no existe en su documento real.

Puse mi código en el sitio web de validación XML y me da este error:

Línea 8: 4 El marcado en el documento que sigue al elemento raíz debe estar bien formado.

La línea que está teniendo un problema es la línea <xsl:output method = "html" doctype-system = "about:legacy-compat"/> .

XML

<?xml version="1.0"?> <!-- Fig. 15.21: sorting.xsl --> <xsl:stylesheet version = "1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/> <!-- write XML declaration and DOCTYPE DTD information --> *<xsl:output method = "html" doctype-system = "about:legacy-compat" />* <!-- match document root --> <xsl:template match="/"> -<html> <xsl:apply-templates/> </html> </xsl:template>