Cette erreur,
La cible de l'instruction de traitement correspondant à "[xX] [mM] [lL]" n'est pas autorisée
se produit chaque fois que j'exécute une page XSLT qui commence comme suit:
<?xml version="1.0" encoding="windows-1256"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:include href="../header.xsl"/>
<xsl:template match="/">
<xsl:call-template name="pstyle"/>
<xsl:call-template name="Validation"/>
<xsl:variable name="strLang">
<xsl:value-of select="//lang"/>
</xsl:variable>
<!-- ////////////// Page Title ///////////// -->
<title>
<xsl:value-of select="//ListStudentFinishedExam.Title"/>
</title>
Remarque : j'ai supprimé tous les espaces de début avant la première ligne, mais l'erreur se produit toujours!
../header.xsl
) ainsi que le document d'entrée XML en cours de transformation, pour chacune des trois possibilités que j'énumère dans ma réponse ci-dessous .Réponses:
Les outils basés sur Xerces émettront l'erreur suivante
lorsqu'une déclaration XML est rencontrée ailleurs qu'en haut d'un fichier XML.
Ceci est un message de diagnostic valide; les autres analyseurs XML doivent émettre un message d'erreur similaire dans cette situation.
Pour corriger le problème, vérifiez les possibilités suivantes:
Un espace vide ou un autre contenu visible existe avant la
<?xml ?>
déclaration.Résolution : supprimez l'espace vide ou tout autre contenu visible avant la déclaration XML.
Un contenu invisible existe avant la
<?xml ?>
déclaration. Il s'agit le plus souvent d'une marque d'ordre d'octet (BOM) .Solution : supprimez la nomenclature en utilisant des techniques telles que celles suggérées par la page W3C sur la nomenclature en HTML.
Une déclaration parasite
<?xml ?>
existe dans le contenu XML. Cela peut se produire lorsque des fichiers XML sont combinés par programme ou par copier-coller. Il ne peut y avoir qu'une seule<?xml ?>
déclaration dans un fichier XML, et elle ne peut être qu'en haut.Résolution : effectuez une recherche
<?xml
sans tenir compte de la casse et supprimez toutes les déclarations XML du fichier à l'exception de la première déclaration.la source
<?xml ?>
déclaration parasite avant de le traiter comme un fichier XML.La raison pour moi est 2 du code suivant dans un xml
la source
<?xml
sans tenir compte de la casse et supprimez tout sauf la déclaration XML supérieure du fichier.Il y avait un message de copyright généré automatiquement
XML
et une ligne vide avant la<resources>
balise, une fois que je l'ai supprimée, ma construction a réussi.la source
Une autre raison de l'erreur ci-dessus est le fichier jar corrompu. J'ai eu la même erreur mais pour Junit lors de l'exécution des tests unitaires. Supprimer le fichier jar et le télécharger à nouveau résout le problème.
la source
dans mon cas, il y avait un mauvais chemin dans un fichier de configuration: le fichier n'a pas été trouvé (le chemin était faux) et il est sorti avec cette exception:
la source
J'ai eu un problème similaire avec 50 000 fichiers rdf / xml dans 5 000 répertoires (le fichier catalogue du projet Gutenberg). Je l'ai résolu avec Riot (dans la distribution Jena)
le répertoire est cache / epub / NN / nn.rdf (où NN est un nombre)
dans le répertoire au-dessus du répertoire où se trouvent tous les fichiers, c'est-à-dire en cache
Cela produit peut-être de nombreux avertissements mais le résultat est dans un format qui peut être chargé dans jena (en utilisant l'interface Web de fuseki).
étonnamment simple (du moins dans ce cas).
la source
Pour PHP, mettez cette ligne de code avant de commencer à imprimer votre XML:
la source