Trabajar con fechas
Si el documento de origen contiene nodos que toman valores de fecha, puede usar los tipos de datos xs:date o xs:dateTime del esquema XML subyacente para aprovechar las potentes funciones de manipulación de datos de XPath 2.0/3.0 (ver ejemplos). StyleVision es compatible con los tipos de datos xs:date y xs:dateTime y ofrece un amplio abanico de opciones de formato de fechas (disponibles a través de la característica Formato de valor).
Nota: | los datos de fecha y hora no se pueden manipular con XPath 1.0. No obstante, si usa XPath 1.0 en su diseño puede usar la característica Formato de valor para dar formato a las fechas. |
Calcular fechas con XPath 2.0
Puede manipular fechas con ayuda de cálculos automáticos basados en expresiones XPath 2.0. A continuación ofrecemos algunos ejemplos.
•Las funciones XPath 2.0 current-date() y current-dateTime() sirven para obtener la fecha y la fecha-hora actuales respectivamente.
•Puede realizar substracciones con valores de fecha. Por ejemplo: current-date() - DueDate devolvería un valor xdt:dayTimeDuration como P24D, por ejemplo, que indica una diferencia positiva de 24 días.
•Puede usar funciones XPath 2.0 para extraer unidades de tiempo de duraciones. Por ejemplo: days-from-duration(xdt:dayTimeDuration('P24D')) devolvería el entero 24.
El siguiente ejemplo muestra una expresión XPath 2.0 dentro de un cálculo automático. La expresión calcula un interés anual del 4% sobre una cantidad no pagada por cada día de retraso y devuelve la suma de la cantidad principal más el interés acumulado:
if (current-date() gt DueDate)
then (round-half-to-even(InvoiceAmount +
(InvoiceAmount*0.04 div 360 *
days-from-duration((current-date() - DueDate))), 2))
else InvoiceAmount
Este cálculo se podría hacer con XPath 2.0 si el elemento DueDate tuviera definido el tipo de datos xs:date y el contenido del elemento se insertara en su formato léxico correcto (es decir, YYYY-MM-DD[±HH:MM]), siendo el componente de uso horario (prefijo ±) opcional.