“Jeton Texte en l'état EndRootElement seraient le résultat d'un document XML non valide”
Je vois ce message d'exception venant de XslCompiledTransform.Transform(), mais après la manipulation de l'exception la transformation XSL encore semble avoir été couronnée de succès. Le plein de message d'exception est:
Jeton Texte en l'état EndRootElement
serait le résultat dans un fichier XML non valide
document. Assurez-vous que le
ConformanceLevel paramètre est défini à
ConformanceLevel.Fragment ou
ConformanceLevel.Auto si vous souhaitez
écrire un fragment XML.
La feuille de style ressemble à ceci:
<xsl:stylesheet version="1.0" xmlns:ext="ext:extensions" xmlns:f="http://schemas.foo.com/FOAMSchema">
<xsl:template match="/Root/Documents/PO/DROPSHIP">
<Transactions>
<Transaction>
<f:partnerTransmission>
<transmission_id>
<xsl:value-of select="ext:NewGUID()"/>
</transmission_id>
<partner_code>
<xsl:value-of select="/Root/@PartnerCode"/>
</partner_code>
<control_nbr>
<xsl:value-of select="@GS_CNTRL_NUM"/>
</control_nbr>
<creationTime>
<xsl:value-of select="ext:ConvertToStandardDateTime(@DATE,@TIME,'ISO8601Basic')"/>
</creationTime>
<direction>I</direction>
<messageCount>
<xsl:value-of select="count(ORDERS/ORDER)"/>
</messageCount>
<syntax>XML</syntax>
<format>BARBAZ</format>
<deliveryMethod>FTP</deliveryMethod>
</f:partnerTransmission>
</Transaction>
</Transactions>
</xsl:template>
</xsl:stylesheet>
Le XML généré ressemble à ceci:
<Transactions xmlns="http://schemas.foo.com/IntegrationProfile" xmlns:ext="ext:extensions">
<Transaction>
<f:partnerTransmission xmlns:f="http://schemas.foo.com/FOAMSchema">
<transmission_id>a5e0ec76-6c24-426b-9eb5-aef9c45d913f</transmission_id>
<partner_code>VN000033</partner_code>
<control_nbr>650</control_nbr>
<creationTime>9/27/2008 12:51:00 AM</creationTime>
<direction>I</direction>
<messageCount>2</messageCount>
<syntax>XML</syntax>
<format>BARBAZ</format>
<deliveryMethod>FTP</deliveryMethod>
</f:partnerTransmission>
</Transaction>
</Transactions>
Ci-dessus est ce que j'obtiens quand je les attraper et de les ignorer l'exception.
Je n'ai pas été en mesure de trouver un moyen de mettre le ConformanceLevel (la propriété est en lecture seule), mais en même temps je ne pense pas qu'il devrait y avoir un problème ici de toute façon.
Ma sortie de constituer un fragment XML? Ai-je raté quelque chose dans la feuille de style?
OriginalL'auteur Chris Wenham | 2008-10-16
Vous devez vous connecter pour publier un commentaire.
L'exception essaie de vous dire que vous avez tenté de texte de sortie après la clôture de l'élément de l'élément racine. La raison de votre sortie à l'air bon, c'est que l'exception empêché le fichier XML non valide d'être générés.
La raison en est simple: vous n'avez pas une transformation de la racine du document. Par conséquent, la valeur par défaut des transformations sont effectuées. Ces affichera le contenu du texte de tous les éléments comme des nœuds de texte.
Ajouter
OriginalL'auteur John Saunders
Votre sortie ne constitue pas un XML bien formé fragment. En d'autres termes, il semble correct et le fait de votre XSLT.
Il semble que le message d'erreur essaie de vous dire ce qui suit:
De noter l'importance de la différence entre "bien formé" (conforme à la non-validation xml parser peut le lire) et "valide" (la structure ne respecte pas la grammaire spécifié dans un schéma).
Également noter qu'il est impossible de XSLT pour produire une sortie qui n'est pas du XML bien formé.
Il n'y a aucune raison qu'il faudrait. Pourtant, il semble que votre processeur xsl est d'effectuer une validation par rapport à des schémas. Sinon vous ne seriez pas obtenir un "document XML non valide" erreur.
OriginalL'auteur ddaa