我看到这个异常消息来自xslcompiledtransform.Transform(),但在处理异常后,XSL转换似乎仍然成功.完整的异常消息是:
Token Text in state EndRootElement
would result in an invalid XML
document. Make sure that the
ConformanceLevel setting is set to
ConformanceLevel.Fragment or
ConformanceLevel.Auto if you want to
write an XML fragment.
样式表如下所示:
<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>
生成的XML如下所示:
<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>
以上是我捕获并忽略异常时获得的内容.
我一直无法找到设置ConformanceLevel的方法(属性是只读的),但同时我也不认为这里应该存在问题.
我的输出是否构成XML片段?我在样式表中遗漏了什么吗?