Я не использую саксонский;Я использую прямой XSLT 1.0.
Я использую следующий документ XSLT:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fo="http://www.w3.org/1999/XSL/Format"
xmlns:a="http://schemas.datacontract.org/2004/07/Delek.Store"
xmlns:msxsl="urn:schemas-microsoft-com:xslt"
xmlns:user="urn:my-scripts">
<msxsl:script implements-prefix='user' language='CSharp'>
<![CDATA[
public string ConvertUTCtoLocal(DateTime EndTime)
{
var Local = EndTime.ToLocalTime().ToString("MM/dd/yyyy") + " " + EndTime.ToLocalTime().ToString("HH:mm:ss");
return Local;
}
]]>
</msxsl:script>
<!-- .. since we have a source default namespace we have to declare a namespace here exclude-result-prefixes="msxsl" -->
<xsl:output method="xml" indent="yes"/>
<xsl:param name="header" />
<xsl:param name="footer"/>
<xsl:param name="ReceiptLayoutCodeType"/>
<xsl:variable name="spaces27" select="' '"/>
<xsl:template match="/">
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<epos-print xmlns="http://www.epson-pos.com/schemas/2011/03/epos-print">
<xsl:apply-templates select ="Sale"/>
<feed unit="24"/>
<cut/>
</epos-print>
</s:Body>
</s:Envelope>
</xsl:template>
<xsl:template match="Sale">
<text lang="en" smooth="true" align="left" >
Date<xsl:value-of select="concat(substring($spaces27,9),user:ConvertUTCtoLocal(EndTime))"/>
</text>
</xsl:template>
</xsl:stylesheet>
Когда он пытается вызвать скрипт C #, я получаю сообщение об ошибке
Не удается найти подходящую функцию с 1 аргументом с именем {urn: my-scripts} ConvertUTCtoLocal ()
Каждый выполненный поиск возвращает ошибки с саксонским кодом.Я не использую саксонский код, и все, что я читаю, говорит о том, что форматирование отличается от того, которое используется в стандартном W3C XSLT.
У кого-нибудь есть какие-либо советы о том, как заставить этот код работать?
Действительно странно, что я проверяю с https://www.freeformatter.com/xsl-transformer.html,, и он говорит то же самое для любого примера кода, который я использую из Интернета.
Так это мой код?Это что-то происходит с обновлением XML 1.0?
Я в настоящее время потерян, и мог бы использовать некоторую помощь в борьбе с сорняками.
Данные XML, с помощью которых люди могут тестировать:
<Sale z:Id="i1" xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns:z="http://schemas.microsoft.com/2003/10/Serialization/">
<AllItems>
<!--Data Removed-->
</AllItems>
<CreditTendered>-8.17</CreditTendered>
<EndTime>2018-10-22T15:25:35.0562305Z</EndTime>
<GrossFuelSaleAmount>0</GrossFuelSaleAmount>
<GrossNonFuelSaleAmount>7.48</GrossNonFuelSaleAmount>
<IdPerson>1000</IdPerson>
<IdRowStateCode>0</IdRowStateCode>
<IdSale>8</IdSale>
<IdSite>1</IdSite>
<IdWorkflowStateCode>Completed</IdWorkflowStateCode>
<IsTaxExempt>false</IsTaxExempt>
<Loyalties />
<NetNonFuelSaleAmount>7.48</NetNonFuelSaleAmount>
<PaymentMethods>
<!--Data Removed-->
</PaymentMethods>
<Receipts>
<SaleReceipt z:Id="i15">
<IdReceiptTypeCode>Store</IdReceiptTypeCode>
<IdRowStateCode>0</IdRowStateCode>
<IdSale>8</IdSale>
<IdSaleReceipt>1</IdSaleReceipt>
<ReceiptSegments>
<SaleReceiptSegment z:Id="i16">
<!--Data Removed-->
</SaleReceiptSegment>
</ReceiptSegments>
<ReceiptTypeCode i:nil="true" />
<RowCreated>2018-10-22T15:25:34.6771725</RowCreated>
<RowGuid>1810a6b5-0ed6-e811-9766-90e2ba14d18e</RowGuid>
<RowModifiedBy>1000</RowModifiedBy>
<RowModifiedDate>2018-10-22T15:25:34.6771725</RowModifiedDate>
<RowVersion>AAAAAAAAIII=</RowVersion>
</SaleReceipt>
<SaleReceipt z:Id="i17">
<IdReceiptTypeCode>Customer</IdReceiptTypeCode>
<IdRowStateCode>0</IdRowStateCode>
<IdSale>8</IdSale>
<IdSaleReceipt>2</IdSaleReceipt>
<ReceiptSegments>
<SaleReceiptSegment z:Id="i18">
<!--Data Removed-->
</SaleReceiptSegment>
</ReceiptSegments>
<ReceiptTypeCode i:nil="true" />
<RowCreated>2018-10-22T15:25:34.6800439</RowCreated>
<RowGuid>1a10a6b5-0ed6-e811-9766-90e2ba14d18e</RowGuid>
<RowModifiedBy>1000</RowModifiedBy>
<RowModifiedDate>2018-10-22T15:25:34.6800439</RowModifiedDate>
<RowVersion>AAAAAAAAIIQ=</RowVersion>
</SaleReceipt>
</Receipts>
<ReferencedBySales />
<ReferencedSales />
<RowCreated>2018-10-22T15:15:13.0180317</RowCreated>
<RowGuid>bd931f45-0dd6-e811-9766-90e2ba14d18e</RowGuid>
<RowModifiedBy>1000</RowModifiedBy>
<RowModifiedDate>2018-10-22T15:25:35.0832346</RowModifiedDate>
<RowStateCode i:nil="true" />
<RowVersion>AAAAAAAAIJQ=</RowVersion>
<SaleManagerSales />
<Session z:Id="i19" xmlns:a="http://schemas.datacontract.org/2004/07/Delek.Store">
<!--Data Removed-->
</Session>
<Signatures />
<StartTime>2018-10-22T15:15:13.0180317</StartTime>
<TotalTendered>-8.17</TotalTendered>
<WorkflowStateCode i:nil="true" />
</Sale>
Ошибка принтера:
- <Result>
<Battery>0</Battery>
<Code>Error exists in the requested document syntax</Code>
<Status />
<Success>Print Failed</Success>
- <Res>
- <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
- <soapenv:Body>
<response success="false" code="SchemaError" status="0" battery="0" xmlns="http://www.epson-pos.com/schemas/2011/03/epos-print" />
</soapenv:Body>
</soapenv:Envelope>
</Res>
</Result>