# EXSLT

EXSLT es una propuesta comunitaria para proveer extensiones al lenguaje XSLT. Está dividido en varios módulos, listados más adelante.
Los paquetes descargables que implementan las extensiones están disponibles en el sitio web oficial, para los procesadores XSLT que no soporten una extensión en particular.

## Funciones
### Common EXSLT

Este módulo provee elementos y funciones básicas.
| Función | Tipo devuelto | Tipo de parámetros |
| exsl:node-set | node-set | object |
| exsl:object-type | string | object |

### Math EXSLT

Este módulo provee extensiones para diversas funciones matemáticas.
| Función | Tipo devuelto | Tipo de parámetros |
| math:min | number | node-set |
| math:max | number | node-set |
| math:highest | nodeset | node-set |
| math:lowest | node-set | node-set |
| math:abs | number | number |
| math:acos | number | number |
| math:asin | number | number |
| math:atan | number | number |
| math:atan2 | number | number, number |
| math:constant | number | string, number |
| math:cos | number | number |
| math:exp | number | number |
| math:log | number | number |
| math:power | number | number, number |
| math:random | number | (vacío) |
| math:sin | number | number |
| math:sqrt | number | number |
| math:tan | number | number |

### Sets EXSLT

Este módulo provee extensiones para trabajar con conjuntos.
| Función | Tipo devuelto | Tipo de parámetros |
| set:difference | node-set | node-set, node-set |
| set:intersection | node-set | node-set, node-set |
| set:distinct | node-set | node-set |
| set:has-same-node | boolean | node-set, node-set |
| set:leading | node-set | node-set, node-set |
| set:trailing | node-set | node-set, node-set |

### Dates and Times EXSLT

Este módulo provee extensiones relacionadas con fechas y horas.
| Función | Tipo devuelto | Tipo de parámetros |
| date:date-time | string | (vacío) |
| date:date | string | string? |
| date:time | string | string? |
| date:year | number | string? |
| date:leap-year | boolean | string? |
| date:month-in-year | number | string? |
| date:month-name | string | string? |
| date:month-abbreviation | string | string? |
| date:week-in-year | number | string? |
| date:day-in-year | number | string? |
| date:day-in-month | number | string? |
| date:day-of-week-in-month | number | string? |
| date:day-in-week | number | string? |
| date:day-name | string | string? |
| date:day-abbreviation | string | string? |
| date:hour-in-day | number | string? |
| date:minute-in-hour | number | string? |
| date:second-in-minute | number | string? |
| date:format-date | string | string, string |
| date:parse-date | string | string, string |
| date:week-in-month | number | string? |
| date:difference | string | string, string |
| date:add | string | string, string |
| date:add-duration | string | string, string |
| date:sum | string | node-set |
| date:seconds | number | string? |
| date:duration | string | number? |

### Strings EXSLT

Este módulo provee extensiones para manipular cadenas.
| Función | Tipo devuelto | Tipo de parámetros |
| str:tokenize | node-set | string, string? |
| str:replace | node-set | string, object, object |
| str:padding | string | number, string? |
| str:align | string | string, string, string? |
| str:encode-uri | string | string, string, string? |
| str:decode-uri | string | string, string |
| str:concat | string | node-set |
| str:split | node-set | string, string? |

### Regular Expressions EXSLT

Este módulo provee extensiones para trabajar con expresiones regulares.
| Función | Tipo devuelto | Tipo de parámetros |
| regexp:test | boolean | string, string, string? |
| regexp:match | object | string, string, string? |
| regexp:replace | string | string, string, string, string |

### Dynamic EXSLT

Este módulo provee extensiones para la evaluación dinámica de cadenas que contienen expresiones XPath.
| Función | Tipo devuelto | Tipo de parámetros |
| dyn:evaluate | object | string |
| dyn:min | number | node-set, string |
| dyn:max | number | node-set, string |
| dyn:sum | number | node-set, string |
| dyn:map | node-set | node-set, string |
| dyn:closure | node-set | node-set, string |

### Random EXSLT

Este módulo provee extensiones para trabajar con datos aleatorios.
| Función | Tipo devuelto | Tipo de parámetros |
| random:random-sequence | number | number?, number? |