Я хочу сместить часовой пояс в XSL, но получаю ошибки:
Когда я использую dayTimeDuration из пространства имен xmlns:xs="http://www.w3.org/2001/XMLSchema" Я получаю следующую ошибку:
dayTimeDuration
xmlns:xs="http://www.w3.org/2001/XMLSchema"
Error at xsl:variable on line 11 of : XPST0017: XPath syntax error at char 90 on line 11 in {..., xs:dayTimeDuration('PT2H'...}: Unknown constructor function: {http://www.w3.org/2001/XMLSchema}dayTimeDuration javax.xml.transform.TransformerConfigurationException: Failed to compile stylesheet. 1 error detected.
Когда я используюxs:dayTimeDuration пространство имен формы xmlns:xdt="http://www.w3.org/2005/xpath-datatypes" Я вижу ошибку:
xs:dayTimeDuration
xmlns:xdt="http://www.w3.org/2005/xpath-datatypes"
net.sf.saxon.s9api.SaxonApiException: Errors were reported during stylesheet compilation
Как я могу сместить текущее время в XSL.Вот пример, который терпит неудачу:
<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="2.0" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.preadviceevents/functions" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:common="http://www.hermes.co.uk/v2.0.7/common" xmlns:pe="http://www.hermes.co.uk/v2.0.7/preadviceEvents" xmlns:pct="http://www.hermes.co.uk/v2.0.7/parcelTypes" xmlns="http://www.cognitomobile.com/schemas/FieldForceIQ/1.0/TAMS" xmlns:xdt="http://www.w3.org/2005/xpath-datatypes" exclude-result-prefixes="xs common pe pct fn"> <xsl:variable name="dateNow" select="format-dateTime(adjust-dateTime-to-timezone(current-dateTime(), xdt:dayTimeDuration('PT2H')), '[Y0001]-[M01]-[D01]T[H01]:[m01]:[s01]')"/> <xsl:variable name="dateNow" select="format-dateTime(adjust-dateTime-to-timezone(current-dateTime(), xs('PT2H')), '[Y0001]-[M01]-[D01]T[H01]:[m01]:[s01]')"/>
Я пробовал xdt и xs без взгляда.Что мне не хватает?Есть ли лучший способ достичь того, чего я хочу.
xdt
xs
Правильное пространство имен: http://www.w3.org/2001/XMLSchema. Пространство имен http://www.w3.org/2005/xpath-datatypes использовалось в течение короткого времени в черновой спецификации, но никогда не использовалось в окончательном варианте.Конечно, вы можете использовать любой префикс, который вам нравится, если вы привязываете его к нужному пространству имен.Если вы получаете ошибку с пространством имен http://www.w3.org/2001/XMLSchema, тогда мы должны увидеть, что это за ошибка.