Comportamientos específicos de la implementación de XSLT 2.0, XPath 2.0 y XQuery 1.0
Característica | Descripción | Especificación | Código de error | Comportamiento documentado |
---|---|---|---|---|
coincidencia múltiple preserve-strip-space | Se trata de un error dinámico recuperable si un elemento del documento origen coincide tanto con una declaración xsl:strip-space como con una declaración xsl:preserve-space. | XSLT 2.0 | XTRE0270 | El procesador no devuelve un error y se recupera seleccionando la declaración xsl:strip-space o xsl:preserve-space que es la última en el orden de declaraciones. |
evaluación de patrones | Cualquier error dinámico o error de escritura que se produzca durante la evaluación de un patrón respecto a un nodo particular se tratará como error recuperable aunque el error no fuera recuperable en otras circunstancias. La acción de recuperación opcional consta en tratar el patrón como si no coincidiera con ese nodo. | XSLT 2.0 | El procesador no devuelve un error y se recupera tratando el patrón como no coincidente con ese nodo. | |
diversas plantillas coincidentes | Se trata de un error recuperable si el algoritmo de resolución de conflictos para reglas de plantilla deja más de una regla de plantillas coincidentes. La acción de recuperación opcional consiste en seleccionar, a partir de las reglas de plantillas coincidentes que han quedado, la que se produce en el último lugar del orden de declaraciones. | XSLT 2.0 | XTRE0540 | El procesador no devuelve ningún error y se recupera seleccionando la plantilla que se encuentra en el último lugar del orden de declaraciones. |
espacio value-xml no válido space | Se trata de un error dinámico recuperable si el nombre de un atributo construido es xml:space y el valor no es ni predeterminado ni conservar. La acción de recuperación opcional consta en construir el atributo con el valor según se ha solicitado. Esto se aplica cuando el atributo se ha creado utilizando un elemento de resultados literal o utilizando las instrucciones xsl:attribute, xsl:copy o xsl:copy-of. | XSLT 2.0 | XTRE0795 | El procesador no devuelve un error y construye el atributo con el valor según se ha solicitado. |
fragmento no válido en uri de documento | Cuando una referencia a un URI suministrado en la función de documentos contiene un identificador de fragmentos, se trata de un error dinámico recuperable si alguna de estas afirmaciones es cierta: |
XSLT 2.0 | XTRE1160 | El procesador ignora el identificador de fragmentos y devuelve el nodo de documentos. No se devuelve ningún aviso. |
los mismos recursos para diversos resultados | Se trata de un error dinámico recuperable para una transformación con el fin de generar dos o más árboles de resultados finales con URI que identifican el mismo recurso físico. La acción de recuperación opcional depende de la implementación porque puede que al procesador le resulte imposible detectar el error. | XSLT 2.0 | XTRE1495 | El procesador devuelve un error. |
lectura y grabación en el mismo recurso | Se trata de un error dinámico recuperable para una hoja de estilo con el fin de grabar en un recurso externo y leer el mismo recurso durante una sola transformación, tanto si se utiliza el mismo URI como si no para acceder al recurso en ambos casos. La acción de recuperación opcional depende de la implementación; las implementaciones no son necesarias para detectar la condición del error. | XSLT 2.0 | XTRE1500 | El procesador no intenta detectar esta condición de error. |
no se da soporte a la inhabilitación de la acción de escape de salida | Se trata de un error recuperable si una instrucción xsl:value-of o xsl:text especifica que esa acción de escape de salida se debe inhabilitar y no recibe soporte por parte de la implementación. La acción de recuperación opcional es ignorar el atributo disable-output-escaping. | XSLT 2.0 | XTRE1620 | El procesador no proporciona la posibilidad de inhabilitar la acción de escape de salida e ignora el atributo disable-output-escaping sin avisos. |
inhabilitar la acción de escape de salida para no serializado | Se trata de un error recuperable si una instrucción xsl:value-of o xsl:text especifica que la acción de escape de salida se debe inhabilitar cuando se grabe un árbol de resultados finales que se está serializando. La acción de recuperación opcional es ignorar el atributo disable-output-escaping. | XSLT 2.0 | XTRE1630 | El procesador no proporciona la posibilidad de inhabilitar la acción de escape de salida e ignora el atributo disable-output-escaping sin avisos. |
desbordamiento de enteros | En situaciones de desbordamiento o subdesbordamiento durante operaciones aritméticas
xs:integer, las implementaciones que dan soporte a las operaciones de enteros con precisión limitada se deben seleccionar de entre las opciones siguientes: |
Funciones y operadores de XQuery 1.0 y XPath 2.0 | FOAR0002 | El procesador proporciona un mecanismo para habilitar la detección de desbordamiento para operaciones de enteros a través del método com.ibm.xml.xapi.XStaticContext.setIntegerMathMode(int), el cual se puede invocar con las constantes INTEGER_MATH_MODE_OVERFLOW_DETECTION o INTEGER_MATH_MODE_LIMITED_PRECISION (definidas en la interfazXStaticContext) para elegir entre las dos opciones. Se proporciona una tercera opción, INTEGER_MATH_MODE_ARBITRARY_PRECISION, para permitir enteros de precisión arbitrarios. |
desbordamiento de flotación doble | Para las operaciones aritméticas xs:float
y xs:double, el comportamiento de desbordamiento debe cumplir la normativa IEEE 754-1985, que permite las opciones siguientes: |
Funciones y operadores de XQuery 1.0 y XPath 2.0 | El procesador devuelve INF o -INF. | |
subdesbordamiento de flotación doble | Para las operaciones aritméticas xs:float
y xs:double, el comportamiento de subdesbordamiento debe cumplir la normativa IEEE 754-1985, que permite las opciones siguientes: |
Funciones y operadores de XQuery 1.0 y XPath 2.0 | El procesador devuelve 0.0E0. | |
uso no válido del atributo doctype-system o standalone | Se trata de un error de serialización al especificar el parámetro doctype-system o al especificar el parámetro standalone con un valor distinto de omit si la instancia del modelo de datos contiene nodos de texto o múltiples nodos de elementos como hijos del nodo raíz. El serializador debe señalar el error o la recuperación ignorando la solicitud de salida de una declaración de tipo de documento o del parámetro standalone. | SR | SEPM0004 | El procesador devuelve un error de serialización. |
codificación de salida xml no válida | Se produce un error de serialización si el método de salida es XML y se solicita una codificación de salida distinta de UTF-8 o UTF-16 y el serializador no ofrece soporte a esa codificación. El serializador debe devolver el error (SESU0007) o se recupera utilizando UTF-8 o UTF-16 en su lugar. | SR | SESU0007 | El procesador devuelve un error de serialización. |
error o recuperación | Algunos errores dinámicos se clasifican como errores recuperables. Cuando se produce un error recuperable, es posible que el procesador señale el error (informando de la condición del error y finalizando la ejecución) o que emprenda una acción de recuperación definida y siga con el proceso. | XSLT 2.0 | El procesador se recupera de muchos de los errores recuperables pero señala un error en muchos casos. Consulte esta tabla para determinar el comportamiento definido por la implementación de cada tipo de error recuperable. | |
errores de escritura señalados como estáticos | Si los errores de escritura se van a señalar estáticamente o no viene definido por la implementación. | XSLT 2.0 | El procesador detecta los errores de escritura estáticas siempre que sea posible: pero hay casos en que el error no se puede detectar en el tiempo de compilación. En esos casos, el error se detecta en el tiempo de ejecución. | |
manejo de errores de serialización | El manejo de errores de serialización viene definido por la implementación. | XSLT 2.0 | Los mensajes se error se envían a una implementación de com.ibm.xml.xapi.XMessageHandler que se ha registrado durante el método setXMessageHandler en la interfaz com.ibm.xml.xapi.XDynamicContext. | |
URI de salida base | La forma en que se establece un URI de salida base viene definido por la implementación. | XSLT 2.0 | Los usuarios pueden establecer el URI de salida base utilizando el método setBaseOutputURI en la interfaz com.ibm.xml.xapi.XDynamicContext. | |
atributos de extensión | Las implementaciones pueden permitir que los atributos de extensión modifiquen el comportamiento de las funciones de extensión y las instrucciones de extensión o que influyan en el comportamiento de los métodos de serialización xml, xhtml, html o texto llegando a un punto en que el comportamiento del método de serialización viene definido por la implementación o depende de la implementación. | XSLT 2.0 | El procesador reconoce el atributo
indent-amount en declaraciones xsl:output para especificar cuántos espacios se utilizan en cada nivel de indentación cuando la indentación está habilitada. El atributo debe proceder de uno de los espacios de nombres siguientes: |
|
elementos de datos definidos por el usuario | Una implementación puede unir un significado definido por la implementación con elementos de datos definidos por el usuario que aparezcan en determinados espacios de nombres. El conjunto de espacios de nombres que se reconocen para este tipo de elementos de datos viene definido por la implementación. | XSLT 2.0 | El procesador no reconoce ninguno de los elementos de datos definidos por el usuario. | |
tipos definidos por el usuario | El soporte para tipos adicionales definidos por el usuario o definidos por la implementación viene definido por la implementación | XPath 2.0 Data Model | Se da soporte a un procesador que tenga en cuenta los esquemas. | |
comportamiento de tipo no definido | Algunos valores escritos en el modelo de datos no están definidos. Cuando se intenta acceder a una propiedad no definida genera siempre un error. El comportamiento en estos casos viene definido por la implementación y el idioma del host es el responsable de determinar el resultado. | XPath 2.0 Data Model | FOTY0012 | El procesador devuelve un error. Los mensajes se error se envían a una implementación de com.ibm.xml.xapi.XMessageHandler que se ha registrado durante el método setXMessageHandler en la interfaz com.ibm.xml.xapi.XDynamicContext. |
representación de nodos de espacio de nombres | La representación de espacios de nombres, es decir, si están representados por nodos o no, depende de la implementación. | XPath 2.0 Data Model | El eje del espacio de nombres no recibe soporte. | |
ubicar módulo de hoja de estilo | Tras la resolución con el URI base, la forma en que se utiliza una referencia del URI desde el atributo href de una declaración xsl:include o xsl:import para localizar una representación de un módulo de hojas de estilo y la forma en que el módulo de hojas de estilo se construye a partir de esa representación vienen definidas por la implementación. En particular, los esquemas de URI que reciben soporte, independientemente de si los identificadores de fragmentos reciben soporte y de los tipos de medio que reciben soporte, vienen definidos por la implementación. | XSLT 2.0 | Los usuarios pueden proporcionar una implementación de
com.ibm.xml.xapi.XSourceResolver a través del método com.ibm.xml.xapi.XStaticContext. setSourceResolver(XSourceResolver).
El procesador utiliza XSourceResolver para resolver los URI procedentes de declaraciones
xsl:include y xsl:import (por lo tanto, el usuario puede decidir a qué URI se da soporte) y su método getSource(String,
String) debe devolver un objeto de origen JAXP. Si no se ofrece ningún XSourceResolver, el procesador gestiona el esquema del URI de archivos y los que admite el método java.net.URL.openConnection(). Es posible utilizar un fragmento de URI para seleccionar un módulo de hoja de estilo incrustada en un documento XML de origen. El fragmento debe identificar un elemento xsl:stylesheet en el documento utilizando el valor de uno de sus atributos que es un atributo xml:id o está definido en un DTD como si fuera un ID o está definido en un esquema como si fuera xs:ID. No hay soporte incorporado para tipos de medios no XML pero los usuarios pueden utilizar una implementación XSourceResolver para proporcionar al procesador una representación XML de datos no XML. |
|
funciones de extensión | Funciones de extensión La especificación XSLT 2.0 define cómo se invoca a las instrucciones de extensión y a las funciones de extensión, pero las prestaciones para crear instrucciones de extensiones nuevas y funciones de extensiones nuevas se definen en la implementación. |
XSLT 2.0 | Las funciones de extensión reciben soporte a través de los métodos XStaticContext.declareFunction y XDynamicContext.bindFunction del procesador. De forma alternativa, también es posible declarar funciones de extensión directamente dentro de una hoja de estilo o una consulta. El estilo antiguo de las funciones de extensión soportadas en el analizador y en el procesador también reciben soporte en cuanto a la compatibilidad con versiones anteriores; sin embargo, solamente los tipos de la versión 1.0 reciben soporte con el estilo antiguo. Consulte la documentación de la API para obtener más información. Se recomienda que declare las funciones de extensión directamente en la hoja de estilo o a través de la API para las funciones de extensión siempre que sea posible, en lugar de utilizar el estilo antiguo. | |
instrucciones de extensión | Instrucciones de extensión La especificación XSLT 2.0 define cómo se invoca a las instrucciones de extensión y a las funciones de extensión, pero las prestaciones para crear instrucciones de extensiones nuevas y funciones de extensiones nuevas se definen en la implementación. |
XSLT 2.0 | XTDE1450 | Las instrucciones de extensión definidas por el usuario no reciben soporte. Las instrucciones de extensión se deben proteger con una instrucción de reserva; de lo contrario, la hoja de estilo fallará en la compilación. La extensión de redirección recibe soporte en cuanto a la compatibilidad con versiones anteriores; sin embargo, se recomienda que utilice la instrucción xsl:result-document de XSLT 2.0 porque es más portable. |
compatibilidad con versiones anteriores | Si una implementación particular de XSLT 2.0 da soporte al comportamiento de compatibilidad con versiones anteriores se define en la implementación. | XSLT 2.0 | Se da soporte a la función de compatibilidad con versiones anteriores tal como se describe en la especificación de XSLT 2.0. | |
ordenaciones en un ámbito para use-when | Ordenaciones en un ámbito para expresiones use-when | XSLT 2.0 | La única ordenación disponible durante la evaluación de use-when es la ordenación de punto de código Unicode. | |
fecha y hora actuales para use-when | Fecha y hora actuales para expresiones use-when | XSLT 2.0 | La fecha y hora actual es la fecha y hora actual del sistema recuperada llamando al método java.util.GregorianCalendar getInstance(). | |
huso horario implícito para use-when | Huso horario implícito para expresiones use-when | XSLT 2.0 | El huso horario implícito es el huso horario del sistema recuperado llamando al método java.util.TimeZone getDefault(). | |
número máximo de dígitos decimales | El número máximo de dígitos totales en dígitos decimales viene definido en la implementación, pero debe haber un mínimo de 18 dígitos. | XSLT 2.0 | La implementación utiliza la clase java.math.BigDecimal que da soporte a la precisión casi sin limitaciones, salvo que el número de dígitos de la derecha de la posición decimal está limitado por Integer.MAX_VALUE. El recorte solamente es necesario en el caso de una división, cuando hay posibilidad de que haya decimales sin terminación. La precisión de la parte fraccionaria del resultado está limitada a 18 dígitos. La modalidad de redondeo en este caso es ROUND_HALF_UP, en que las fracciones descartadas de 0,5 o superior se redondean al alza (lo más alejado posible de cero) y las fracciones inferiores se redondean a la baja. | |
valores de componente anual | Para los tipos xs:date, xs:time, xs:dateTime, xs:gYear y xs:gYearMonth: el rango de valores del componente anual (que debe ser al menos entre +0001 y +9999), y el número máximo de segundos dígitos fraccionarios (que debe ser de al menos 3) | XSLT 2.0 | El componente anual de los tipos xs:date, xs:dateTime, xs:gYear y xs:gYearMonth tiene un rango que va de -(10^9-1) a (10^9)-1. El número máximo de segundos dígitos fraccionarios admitidos por los tipos xs:time y xs:dateTime es de tres. | |
duración | Para el tipo xs:duration: los valores absolutos máximos de los componentes años, meses, días, horas, minutos y segundos | XSLT 2.0 | Los valores absolutos máximos para los componentes de duración son: |
|
duración de año y mes | Para el tipo xdt:yearMonthDuration: el valor absoluto máximo expresado como un número entero de meses | XSLT 2.0 | El valor absoluto máximo para el tipo xs:yearMonthDuration es de 2147483647 meses. | |
duración de día y hora | Para el tipo xdt:dayTimeDuration: el valor absoluto máximo expresado como un número decimal de segundos | XSLT 2.0 | El valor absoluto máximo para el tipo xs:dayTimeDuration es de 9223372036854775 segundos. | |
longitud máxima de valor | Para los tipos xs:string, xs:hexBinary, xs:base64Binary, xs:QName, xs:anyURI, xs:NOTATION y tipos derivados de los mismos: la longitud máxima del valor | XSLT 2.0 | La longitud máxima teóricamente es 2^31 - 1; sin embargo, es posible que el sistema agote la memoria mucho antes de llegar al límite. | |
longitud de secuencia | Número máximo de elementos en una secuencia | XSLT 2.0 | El número máximo de elementos teóricamente es 2^31 - 1; sin embargo, es posible que el sistema agote la memoria mucho antes de llegar al límite. | |
ordenaciones conocidas estáticamente | Definido en las ordenaciones de un ámbito | XSLT 2.0
XPath 2.0 XQuery 1.0 |
Se considera que cualquier URI se encuentra en el conjunto de ordenaciones de un ámbito. Cada URI que se utiliza como URI de ordenación debe tener asociado un organizador Java™ en el tiempo de ejecución. | |
huso horario implícito | Huso horario implícito | XSLT 2.0
XPath 2.0 XQuery 1.0 |
El huso horario implícito se puede definir utilizando el método XDynamicContext.setImplicitTimeZone(Duration) en el procesador. Si no se ha establecido el huso horario implícito, se utilizará el huso horario tal como se recupere del método java.util.TimeZone.getDefault(). | |
colección predeterminada | Colección predeterminada Se trata de la secuencia de nodos que resultarían de llamar a la función fn:collection sin argumentos. El valor de la colección predeterminada lo puede inicializar la implementación. |
XSLT 2.0 XPath 2.0 |
FODC0004 | La colección predeterminada la determina XCollectionResolver registrado con XDynamicContext. Si no se ha registrado XCollectionResolver, se devolverá un error y se utilizará la secuencia vacía. Para obtener más información sobre la interfaz XCollectionResolver, consulte la documentación de la API. |
parámetro de hoja de estilo | Proporciona el parámetro de la hoja de estilo cuando se ejecuta una transformación Un elemento xsl:param de nivel superior declara un parámetro de hoja de estilo. Un parámetro de hoja de estilo es una variable global con la propiedad adicional que un llamante puede suministrar este valor cuando se inicia una transformación. |
XSLT 2.0 | Si un valor para un parámetro está enlazado a
XDynamicContext, se utilizará ese valor; de lo contrario, se utilizará el valor predeterminado especificado en la hoja de estilo del parámetro. Para enlazar valores con parámetros, utilice los métodos XDynamicContext.bind(). |
|
mecanismo de sustitución de la función de hojas de estilo | Sustituye una función de hoja de estilo por una función que ha proporcionado el implementador; pertenece al elemento xsl:function El atributo de sustitución opcional define lo que ocurre si esta función tiene el mismo nombre que una función proporcionada por el implementador o que está disponible en el contexto estático utilizando un mecanismo definido por la implementación. Si el atributo de sustitución tiene un valor de yes, preferentemente se utilizará esta función; si tiene el valor de no, la preferencia de utilización será la de la otra función. El valor predeterminado es yes. Si se especifica override="yes" se garantiza un comportamiento interoperable —se ejecutará el mismo código con todos los procesadores. El hecho de especificar override="no" resulta útil cuando se escribe una implementación de reserva de una función que está disponible con algunos procesadores pero con otros no —permite que la implementación de la función del proveedor (o una implementación del usuario escrita como función de extensión) se utilice preferentemente antes que la implementación de la hoja de estilo. |
XSLT 2.0 | Si el atributo de sustitución tenía el valor
yes, las funciones de la hoja de estilo pueden sustituir lo siguiente: Las funciones de hoja de estilo no pueden sustituir ninguna de las funciones centrales definidas en la especificación XSLT 2.0 o en la especificación de Funciones y operadores de XQuery 1.0 y XPath 2.0. |
|
normalizar id de xml copiado | Cuando se copia un atributo xml:id utilizando la instrucción xsl:copy o xsl:copy-of, la implementación define si el valor del atributo está sujeto a la normalización del valor del atributo —es decir, se aplica de forma eficaz la función de espacio de normalización de Funciones y operadores de XQuery 1.0 y XPath 2.0. | XSLT 2.0 | Ninguna de las instrucciones xsl:copy ni xsl:copy-of se aplican a la función de espacio de normalización en los atributos xml:id attributes; por lo que se conservarán todos los espacios en blanco. | |
secuencias de numeración soportadas | Secuencias de numeración soportadas La implementación define qué secuencias de numeración reciben soporte además de las que figuran anteriormente. Si una implementación no ofrece soporte a una secuencia de numeración representada por una señal determinada, debe utilizar una señal de formato de 1. |
XSLT 2.0 | El procesador solamente ofrece soporte a los conjuntos estándar de las secuencias de numeración. | |
límites en rango de números | Los límites superior e inferior del rango de números Para las secuencias de numeración estándar, cualquier límite superior que imponga la implementación no puede ser inferior a 1000 (mil) y cualquier límite inferior no puede ser superior a 1. Los números que estén fuera de este rango deberán formatearse utilizando el señal de formato 1. La secuencia de numeración asociada al señal de formato 1 tiene un límite inferior de 0 (cero). |
XSLT 2.0 | ||
idioma predeterminado para la numeración | El idioma predeterminado para la numeración El atributo lang especifica qué convenciones de idioma se van a utilizar; tiene el mismo rango de valores que xml:lang (consulte la especificación XML 1.0). Si no se especifica ningún valor lang, se utilizará el idioma que se defina en la implementación. El conjunto de idiomas para el cual la numeración recibe soporte viene definido en la implementación. Si se solicita un idioma que no recibe soporte, el procesador utilizará el idioma que utilizaría si se omitiera el atributo lang. |
XSLT 2.0 | El idioma predeterminado para el formateo de números siempre está establecido en en-US. | |
idiomas para la numeración | Conjunto de idiomas para la numeración Muchas secuencias de numeración son sensibles al idioma. |
XSLT 2.0 | Los idiomas soportados se basan en International Component Unicode (ICU) e idiomas soportados por JVM. | |
combinaciones para la numeración | Combinaciones de valores del señal de formato, el idioma y el atributo ordinal para la numeración. | XSLT 2.0 | El procesador solamente da soporte al valor ordinal de yes. El resto de valores para el atributo ordinal se ignoran como si no se hubiera especificado el atributo ordinal. | |
data-type para la clasificación | Efecto del atributo data-type para xsl:sort Si tiene el texto de un valor efectivo, los valores clave de la clasificación atomizada se convierten en series antes de compararlos. Si tiene el número de valor efectivo, los valores clave de la clasificación atomizada se convierten en dobles antes de compararlos. La conversión se realiza utilizando la función string-FO o number-FO según corresponda. Si el atributo data-type tiene cualquier otro valor efectivo, el valor deberá ser un QName léxico con un prefijo que no esté vacío y el efecto del atributo vendrá definido en la implementación. |
XSLT 2.0 | Los valores soportados para el atributo data-type son 'text' y 'number'. Para el resto de valores válidos, se emite un mensaje de aviso y se ignora el atributo data-type. | |
URI de ordenación | Forma en que el URI está asociado a una regla o algoritmo de ordenación real Los atributos lang y case-order se ignoran si existe un atributo de ordenación. Pero en ausencia de un atributo de ordenación, estos atributos proporcionan una entrada a un algoritmo definido por la implementación para localizar una ordenación adecuada. Los recursos de XSLT 2.0 y XPath 2.0 que requieren que se ordenen series se basan en el concepto de una ordenación denominada. Una ordenación es un conjunto de reglas que determina si dos series son iguales y, si no lo son, cuál de ellas se debe clasificar antes que la otra. Una ordenación viene identificada mediante un URI, pero la forma en que este URI está asociado con una regla o algoritmo real la define la implementación. |
XSLT 2.0 | Los URI de ordenación están asociados a un organizador Java a través de la API utilizando uno de los métodos XDynamicContext.bindCollation. | |
lang case-order determina la ordenación | Los atributos lang y case-order que determinan un algoritmo de ordenación para la clasificación | XSLT 2.0 | El procesador recupera un entorno local basado en el valor del atributo lang. A continuación se crea un organizador Java utilizando el método java.text.Collator.getInstance(Locale). El método de comparación del organizador se sustituye para gestionar el atributo case-order si se especifica. Si no se ha especificado el atributo lang, el procesador procede como antes usando el entorno local predeterminado devuelto por el método Java Locale.getDefault(). | |
ordenación predeterminada para la clasificación | Ordenación predeterminada para la clasificación Si no hay ninguno de los atributos de ordenación, lang o case-order en xsl:sort, se elegirá la ordenación en función de lo que se haya definido en la implementación. No es necesario que la ordenación predeterminada para la clasificación sea la misma que la ordenación predeterminada que se utiliza cuando se evalúan expresiones XPath. (consulte la Sección 5.4.1: Inicialización del contexto estático y de la sección 3.6.1: el atributo default-collation) |
XSLT 2.0 | El procesador utiliza el entorno local que ha devuelto el método Locale.getDefault() de Java para crear un organizador Java utilizando el método java.text.Collator.getInstance(Locale). | |
tipos de medios reconocidos | Conjunto de tipos de medios reconocidos por un procesador | XSLT 2.0 | El procesador solamente da soporte a archivos XML. | |
reserva de imágenes en el formato de fecha | La representación de reserva para la serie de imágenes en las funciones de formato de fecha; el señal de formato n, N o Nn, que indica que el valor del componente será la salida del nombre, en minúsculas, mayúsculas o en formato de título respectivamente Los componentes de los que se puede ofrecer una salida por nombre incluyen (pero sin limitarse) los meses, días de la semana, husos horarios y eras. Si el procesador no puede ofrecer una salida de estos componentes por nombre del calendario e idioma elegidos, tendrá que utilizar una representación de reserva definida por la implementación. |
XSLT 2.0 | El procesador ofrecerá una salida [Calendar: AD] como reserva. | |
conjunto soportado en las funciones de formato | Idiomas, calendarios y países que reciben soporte en las funciones de formato de fecha | XSLT 2.0 | ||
valores predeterminados en las funciones de formato de fecha | El idioma predeterminado, el calendario y el país en las funciones de formato de fecha si se omiten los argumentos o si están vacíos | XSLT 2.0 | ||
idioma predeterminado en las funciones de formato | El idioma predeterminado en las funciones de formato de fecha Si se omite el argumento de idioma, establecido en una secuencia vacía, o establecido en un valor no válido o en un valor que no reconoce la implementación, el procesador utiliza un idioma definido en la implementación. |
XSLT 2.0 | Consulte los valores predeterminados en las funciones de formato de fecha. | |
abreviaturas de nombres en idiomas en las funciones de formato de fecha | Nombres y abreviaturas en las funciones de formato de fecha | XSLT 2.0 | El sitio web de International Components for Unicode (ICU) tiene un Explorador de entorno local que contiene enlaces a tablas para cada entorno local soportado. El procesador utiliza los nombres abreviados para los nombres de los días de la semana y los meses especificados en esas tablas como formas abreviadas y utiliza los nombres largos como formas no abreviadas. | |
comportamiento del calendario en las funciones de formato de fecha | Comportamiento del calendario en las funciones de formato de fecha | XSLT 2.0 | El procesador no da soporte a ningún calendario con un URI de espacio de nombres distinto de nulo. Si el valor QName suministrado tiene un prefijo, se utilizará el calendario AD. | |
calendario predeterminado en las funciones de formato de fecha | El calendario predeterminado en las funciones de formato de fecha | XSLT 2.0 | Consulte los valores predeterminados en las funciones de formato de fecha. | |
calendarios soportados en las funciones de formato de fecha | Conjunto de calendarios soportados en las funciones de formato de fecha | XSLT 2.0 Sección 16.5.2, primer párrafo después de la tabla de calendarios |
Consulte el conjunto soportado en las funciones de formato de fecha. | |
valores de propiedad del sistema | Valores reales devueltos de las propiedades del sistema | XSLT 2.0 Sección 16.5.5, segundo párrafo después de la lista con viñetas |
El valor de la propiedad del sistema: |
|
conjunto de propiedades del sistema | Conjunto de propiedades del sistema | XSLT 2.0 | El procesador da soporte a lo siguiente: |
|
xslmessage | Forma en que una instrucción xsl:message envía un mensaje | XSLT 2.0 | Según la Sección
17 de la especificación XSLT 2.0, xsl:message envía un mensaje de una forma definida en la implementación para un destino definido en la implementación.
El procesador utiliza el valor de serie del nodo de documento creado mediante la instrucción
xsl:message como mensaje. Si el usuario no ha suministrado ninguna instancia de com.ibm.xml.xapi.XMessageHandler en com.ibm.xml.xapi.XDynamicContext para la transformación, el mensaje se grabará en la corriente de salida System.err; y si el valor efectivo del atributo de terminación era yes, la transformación emitirá una excepción. Si el usuario ha suministrado una instancia de com.ibm.xml.xapi.XMessageHandler, el mensaje pasará a ese método report() del objeto. Consulte la documentación de la API para obtener más información. |
|
destino de xslmessage | Destino de salida del documento creado por una instrucción xsl:message | XSLT 2.0 | Consulte xslmessage. | |
manejo de errores en funciones ext | Consecuencias de un error para una función de extensión con el fin de que devuelva una serie que contenga caracteres que no son XML | XSLT 2.0 | La sección 18.1.2 de la especificación XSLT 2.0 permite diversos comportamientos cuando una función de extensión devuelve una cadena que contiene caracteres que no están permitidos en XML, incluido su tratamiento como si estuvieran permitidos. Este es el comportamiento que implementa el procesador. | |
objetos externos | Forma en que se representan los objetos externos en el sistema de tipo | XSLT 2.0 | Los objetos de datos cuyos valores sean de algún tipo que no se correlaciona con los tipos incorporados tal como se describe en Correlación de tipos XML con tipos Java no reciben soporte. | |
entrega del árbol de resultados final | Forma en que se entrega un árbol de resultados final a una aplicación | XSLT 2.0 | Tal como se describe en la Sección
19.1 de la especificación XSLT 2.0, una implementación puede permitir serializar un resultado final o proporcionar mecanismos adicionales a través de los que se podrá procesar. En el procesador, un árbol de resultados final se puede serializar o se puede entregar a una aplicación en forma de un objeto
java.xml.transform.Result o un objeto com.ibm.xml.xapi.XSequenceCursor. Si el
URI del árbol de resultados final no es igual al URI de salida base, y:
|
|
Restricción de URI | Restricciones en forma de URI absoluto utilizado en una href | XSLT 2.0 | Tal como se describe en la Sección
19.1 de la especificación XSLT 2.0, una implementación puede colocar límites definidos en la implementación en un URI absoluto que es el valor de un atributo href en una instrucción xsl:result-document.
Con el procesador, |
|
ubicación del árbol de resultados final | Ubicación a la cual se serializan los árboles de resultados finales | XSLT 2.0 | De forma predeterminada, los URI del árbol de resultados final se interpretarán de forma relativa según el URI base del documento de salida principal. Si se desea otra ubicación, se puede registrar una implementación XResultResolver con el contexto dinámico para implementar comportamientos definidos por el usuario. Utilice el método XDynamicContext.setResultResolver() para registrar la implementación XResultResolver. El URI base que se utiliza también se puede cambiar invocando al método XDynamicContext.setBaseOutputURI(). | |
codificación de salida predeterminada | El valor predeterminado del atributo de codificación en xsl:output | XSLT 2.0 | La codificación de salida predeterminada es UTF-8. | |
byte-order-mark para UTF-8 | Byte-order-mark para UTF-8 | XSLT 2.0 | El valor predeterminado es no, lo que significa que no se genera ninguna BOM al iniciar los archivos UTF-8. | |
forma de normalización adicional | Forma de normalización adicional para la serialización | Serialización de XSLT 2.0 y XQuery 1.0 | No se proporcionan formas de normalización definidas por la implementación. | |
versión de salida | Valor permitido y predeterminado del atributo de la versión en xsl:output | XSLT 2.0 | El valor predeterminado de XML o XHTML es 1.0; los usuarios pueden especificar de forma explícita 1.0 o 1.1. Para HTML, el valor predeterminado es 4.0. | |
escritura estática en la hoja de estilo | Interacción de las hojas de estilo XSLT 2.0 con la función de escritura estática de XPath 2.0 | XSLT 2.0 y XPath 2.0 | Este procesador XSLT no tiene ningún mecanismo actualmente para solicitar que XPaths lleven a cabo una escritura estática. | |
tipos incorporados | Definiciones de los tipos disponibles en una hoja de estilo | XSLT 2.0 | El procesador tiene en cuenta el esquema según se ha definido en la Sección 3.13 de la especificación XSLT 2.0. | |
espacio de nombres para códigos de error adicionales | Espacio de nombres que se utiliza si la implementación ha definido QNames de errores adicionales | XSLT 2.0 | Cuando proceda, el procesador incluirá el código (o los códigos) de error especificado(s) en el texto de los mensajes entre corchetes. Los errores adicionales se suelen expresar de forma similar sin ningún prefijo de especificación en el identificador de errores. Las condiciones de error no se presentan como QNames; las aplicaciones que quieran responder a errores de forma programática deben analizar los identificadores de error extrayéndolos de la parte frontal de las series de mensajes de error. |
|
codificación de texto sin analizar | Mecanismo para determinar la codificación de un origen externo | XSLT 2.0 | El procesador no implementa ninguna heurística adicional. La resolución de codificación continúa inmediatamente con el paso 5 y se supone que se utiliza UTF-8. | |
documentos disponibles | Mecanismo para obtener un nodo de documentos y un tipo de medio determinado en un URI absoluto | XSLT 2.0 | El comportamiento de la resolución de origen predeterminado para los documentos cargados utilizando la función fn:doc de XPath es resolver los URI relativos basados en los URI base del contexto estático. Si el URI base no está disponible, se utilizará el directorio de trabajo actual. Los URI absolutos se utilizan sin modificar. El comportamiento de resolución de origen predeterminado para los documentos cargados utilizando la función de documentos XSLT se describe en la especificación XSLT 2.0 Múltiples documentos de origen. Si no hay disponible ningún URI base, se utilizará el directorio de trabajo actual. Si la aplicación necesita restringir o ampliar estos comportamientos, es posible conecta una implementación de XSourceResolver a XDynamicContext a través del método setSourceResolver(). | |
métodos de salida adicionales | Soporte para un método de salida definido por la implementación | Serialización de XSLT 2.0 y XQuery 1.0 | El procesador no implementa ningún método de salida adicional. | |
parámetros de serialización adicionales | Efecto de los parámetros de serialización adicionales en la salida del serializador | Serialización de XSLT 2.0 y XQuery 1.0 | El procesador implementa los parámetros de serialización adicionales siguientes: |
|
formato de normalización adicional | Soporte para el formato de normalización Unicode adicional | Serialización de XSLT 2.0 y XQuery 1.0 | No se proporcionan formas de normalización definidas por la implementación. | |
opción en la fase de codificación | Efecto de una opción que permite saltarse la fase de codificación de forma que el resultado de la serialización sea una corriente de caracteres Unicode | Serialización de XSLT 2.0 y XQuery 1.0 | El procesador no proporciona este tipo de opción. | |
mecanismo cdata sec | Mecanismo alternativo solicitado por el usuario para crear secciones CDATA | SR | El procesador no proporciona ningún mecanismo alternativo para crear secciones CDATA. | |
versión de unicode | Versión de Unicode soportada | XPath 2.0
XQuery 1.0 |
El procesador da soporte a la versión de Unicode soportada por el host JRE —en concreto, Unicode Standard versión 4.0 para Java 6 y Unicode Standard versión 6.0 para Java 7. | |
función de rastreo | Función de rastreo El destino de la salida de rastreo se define en la implementación. |
Funciones y operadores de XQuery 1.0 y XPath 2.0 | Cuando se utiliza la función fn:trace(), el resultado pasará a com.ibm.xml.xapi.XMessageHandler (anteriormente,com.ibm.xml.xapi.XErrorHandler). Es responsabilidad del usuario especificar su propio XMessageHandler para manejar los resultados de rastreo de los que ha informado el procesador. El tipo de mensaje de rastreo lo indica XMessageHandler.TRACE. | |
recuperación para operaciones de enteros en desbordamiento | Mecanismo que permite que los usuarios elijan entre obtener un error y devolver un resultado cuyo módulo sea el valor entero representante mayor durante operaciones de aritmética de desbordamiento o subdesbordamiento | Funciones y operadores de XQuery 1.0 y XPath 2.0 | El procesador proporciona un mecanismo para habilitar la detección de desbordamiento para operaciones de entero a través del método com.ibm.xml.xapi.XStaticContext.setIntegerMathMode(int), el cual se puede invocar con las constantes INTEGER_MATH_MODE_OVERFLOW_DETECTION o INTEGER_MATH_MODE_LIMITED_PRECISION para elegir entre las dos opciones. Se proporciona una tercera opción para permitir enteros de precisión arbitrarios. | |
recorte de dígitos | Si el número de dígitos en el resultado de una operación numérica supera el número de dígitos al cual da soporte la implementación, el resultado se recorta o se redondea de una forma definida en la implementación. | Funciones y operadores de XQuery 1.0
y XPath 2.0
Sección 3.2.3 de la segunda edición de la Parte 2 de esquemas XML: tipos de datos |
La implementación utiliza la clase java.math.BigDecimal, que da soporte a una precisión casi ilimitada con la salvedad que el número de dígitos de la derecha de la posición decimal está limitada a Integer.MAX_VALUE. El recorte solamente es necesario en el caso de una división, cuando hay posibilidad de que haya decimales sin terminación. La precisión de la parte fraccionaria del resultado está limitada a 18 dígitos. La modalidad de redondeo en este caso es ROUND_HALF_UP, en que las fracciones descartadas de 0,5 o superior se redondean al alza (lo más alejado posible de cero) y las fracciones inferiores se redondean a la baja. | |
habilidades de la ordenación | La habilitad de la ordenación especificada de descomponer series en unidades de ordenación adecuadas para la comparación de subseries es una propiedad definida por la implementación de una ordenación. | Funciones y operadores de XQuery 1.0 y XPath 2.0 | Si el organizador Java especificado en una llamada al método bindCollation de la interfaz XDynamicContext es una instancia de la clase RuleBasedCollator, el URI de ordenación asociado se podrá utilizar con una de las funciones que lleva a cabo la comparación de subseries basadas en la ordenación. | |
límites del valor de año | El número máximo de dígitos para los valores de año. Todos los procesadores que cumplen mínimamente la normativa deben dar soporte a los valores de año con un mínimo de 4 dígitos (AAAA) y una precisión mínima de segundo fraccionario de 1 milisegundo o de tres dígitos (s.sss); sin embargo, la conformación de procesadores puede establecer límites mayores definidos por la implementación en el número máximo de dígitos a los que se da soporte en estas dos situaciones. |
Funciones y operadores de XQuery 1.0 y XPath 2.0 | El componente anual de los tipos xs:date, xs:dateTime, xs:gYear y xs:gYearMonth tiene un rango de -(10^9-1) a (10^9)-1. | |
precisión de segundos fraccionarios | El número máximo de dígitos para los valores de segundos fraccionarios. | Funciones y operadores de XQuery 1.0 y XPath 2.0 | El número máximo de dígitos de segundos fraccionarios admitidos por los tipos xs:time y xs:dateTime es 3. | |
función doc | Diversos aspecto del proceso proporcionado por fn:doc vienen definidos por la implementación. Las implementaciones pueden proporcionar opciones de configuración externas que permiten que el usuario controle cualquier aspecto del proceso. | Funciones y operadores de XQuery 1.0 y XPath 2.0 | Los usuarios pueden proporcionar una implementación de
com.ibm.xml.xapi.XSourceResolver a través del método com.ibm.xml.xapi.XDynamicContext. setSourceResolver(XSourceResolver).
XSourceResolver lo utiliza la implementación de fn:doc para resolver URI (por lo que el usuario puede decidir a qué URI da soporte), y su método getSource(String, String) debe volver a un objeto de origen JAXP. Si no se indica ningún XSourceResolver, el procesador gestiona el esquema de URI de archivo y los que admite el método java.net.URL.openConnection().
No procesa fragmentos de URI. No hay soporte incorporado para tipos de medios no XML pero los usuarios pueden utilizar una implementación XSourceResolver para proporcionar al procesador una representación XML de datos no XML.
La validación DTD y la validación de esquemas se debe aplicar al documento de origen dependiendo del valor de validación. El valor de validación debe establecerse en las instancias com.ibm.xml.xapi.XFactory utilizando el método setValidating y este valor lo heredan los objetos creados por XFactory. Si se proporciona una instancia com.ibm.xml.xapi.XDynamicContext para el método execute o executeToList de una instancia com.ibm.xml.xapi.XExecutable, se utilizarán sus valores de validación; de lo contrario, se utilizará el valor de la propia instancia XExecutable. El procesador no proporciona ningún mecanismo de recuperación de errores a la hora de recuperar o analizar o validar su contenido. El procesador no proporciona ninguna opción para flexibilizar la necesidad de que la función fn:doc devuelva resultados estables. |
|
precisión de operador decimal | Para los valores xs:decimal, el número de dígitos de precisión devuelto por los operadores numéricos se define mediante la implementación. | Funciones y operadores de XQuery 1.0 y XPath 2.0 | La cantidad de dígitos de precisión es el mínimo necesario para representar el resultado exacto sin redondeo, salvo en el caso de una división, en que el número de dígitos de precisión para la parte fraccionaria del resultado está limitada a 18. | |
estabilidad de documentos de colección | La opción del usuario para evaluar la función sin ninguna garantía de estabilidad además de la forma en que se proporcionan este tipo de opciones de usuario | Funciones y operadores de XQuery 1.0 y XPath 2.0 | El procesador no proporciona ninguna opción para flexibilizar la necesidad de que la función fn:doc o fn:collection devuelva resultados estables. | |
precisión decimal | Número de dígitos decimales soportados en
xs:decimal El resultado de difundir una serie a xs:decimal cuando el valor resultante es demasiado grande o demasiado pequeño pero, no obstante, tiene demasiados dígitos decimales para representarlos de forma precisa, viene definido por la implementación. |
Funciones y operadores de XQuery 1.0 y XPath 2.0 | La implementación utiliza la clase java.math.BigDecimal que da soporte a la precisión casi sin limitaciones, salvo que el número de dígitos de la derecha de la posición decimal está limitado por Integer.MAX_VALUE. La memoria se agotaría antes que se llegara al límite. | |
devuelve un aviso | Circunstancias en las que se devuelven los avisos y las formas en que se gestionan los avisos | Funciones y operadores de XQuery 1.0
y XPath 2.0
XPath 2.0 XQuery 1.0 |
El usuario puede proporcionar una implementación de
com.ibm.xml.xapi.XMessageHandler utilizando el método setMessageHandler()(XMessageHandler) en com.ibm.xml.xapi.XStaticContext o com.ibm.xml.xapi.XDynamicContext para avisos estáticos y dinámicos respectivamente. Se invocará al método report(int,
String, XSourceLocation, Exception) de XMessageHandler para cada aviso, con el primer argumento igual a XMessageHandler.WARNING.
Si no se proporciona XMessageHandler, se imprimirán avisos en la corriente de salida de errores estándares. Los avisos se devuelven en situaciones en que el procesador emprende alguna acción para evitar una condición de error, como por ejemplo sustituir un valor predeterminado para un valor no válido, que el usuario tal vez desea corregir en el futuro. |
|
informar de errores | Método mediante le cual se informa de errores al entorno de proceso externo | Funciones y operadores de XQuery 1.0
y XPath 2.0
XPath 2.0 XQuery 1.0 |
El usuario puede proporcionar una implementación de
com.ibm.xml.xapi.XMessageHandler utilizando el método setMessageHandler()(XMessageHandler) en com.ibm.xml.xapi.XStaticContext o com.ibm.xml.xapi.XDynamicContext para errores estáticos y dinámicos respectivamente. El método report(int, String,
XSourceLocation, Exception) de XMessageHandler se invocará para cada error, con el primer argumento igual que
XMessageHandler.ERROR o XMessageHandler.FATAL_ERROR.
Si no se proporciona XMessageHandler, se imprimirán los errores en la corriente de salida de errores estándares. |
|
Reglas de XML 1.0 o XML 1.1 | Si el procesador se basa en las reglas XML 1.0 o XML 1.1 para nombres y caracteres soportados | XPath 2.0 XQuery 1.0 | El procesador sigue las reglas de XML 1.1 para las definiciones de NCName y caracteres soportados así como para el manejo de fin de la línea y la normalización de valores de atributo. | |
orden predeterminado de secuencias vacías | Si el manejo predeterminado de secuencias vacías en "order by" es "empty least" o "empty greatest" | XQuery 1.0 | El procesador utiliza el conjunto predeterminado mediante una llamada al método XStaticContext setDefaultOrderForEmptySequences. De lo contrario, el valor predeterminado es "empty greatest". | |
pragmas soportados | Los nombres y semánticas de cualquier expresión de extensión de XQuery (pragmas) soportados | XQuery 1.0 | XQST0079 | El procesador no reconoce ni soporta ninguna expresión de extensión. |
opciones soportadas | Los nombres y semánticas de cualquier declaración de opciones de XQuery soportados | XQuery 1.0 | El procesador actualmente da soporte a la opción java-extension para declarar funciones de extensión dentro de una consulta. Consulte la documentación de la API para obtener más información. | |
paso de un parámetro de función externa | Protocolos soportados para pasar parámetros a funciones externas de XQuery y para devolver un resultado | XQuery 1.0 | Las funciones de extensión reciben soporte a través de los métodos XStaticContext.declareFunction y XDynamicContext.bindFunction del procesador. Consulte la documentación de la API para obtener más información. | |
invocación de serialización | El medio por el cual se invoca a la serialización en cuanto al resultado de evaluar una consulta XQuery | XQuery 1.0 | Si se proporciona una instancia de la interfaz javax.xml.transform.stream.StreamResult en un método evaluado de una instancia XQueryExecutable, el procesador serializará el resultado de la consulta. También puede serializar un XSequenceCursor que dé como resultado la evaluación de una consulta invocando uno de los métodos exportSequence. | |
parámetros de serialización predeterminados | Los valores predeterminados de parámetros byte-order-mark, de codificación, de tipo de medio, de formato de normalización, omit-xml-declaration, autónomos y de serialización de versión. | XQuery 1.0 | Los valores de los parámetros de serialización se pueden especificar en una instancia de la interfaz
XOutputParameters. |
|
llamada a funciones externas no satisfactoria | El efecto de una llamada no satisfactoria a una función externa | XQuery 1.0 | El procesador primero informará de un error en cualquier instancia de la interfaz del manejador
XMessage que se proporcione y, a continuación se emitirá una excepción si una llamada de
XQuery a una función externa no es satisfactoria por alguna de estas razones (pero sin que esté limitada a estos motivos): |
|
ubicar importaciones de módulos | El proceso mediante el cual se identifican los módulos específicos que debe importar una importación de módulos si está soportada la característica de módulos (incluido el proceso de sugerencias de ubicaciones, si las hay) | XQuery 1.0 | Si un XModuleResolver está registrado con XStaticContext, se utiliza para obtener objetos Source para los módulos. Si no hay ningún XModuleResolver registrado, o devuelve un nulo, el procesador intenta cargar un módulo para cada sugerencia de ubicación. Las URI relativas se resuelven con respecto al URI base desde el contexto básico, si está disponible. Si el URI base no está disponible, las sugerencias de ubicación disponibles se interpretan como vías de acceso de archivo relativas al directorio de trabajo actual. Las sugerencias de ubicación absolutas se utilizan tal cual. Si no se puede cargar un módulo para una sugerencia de ubicación específica, el procesador pasa a la siguiente sugerencia. Se emite un mensaje de error sólo si no se puede cargar ningún módulo para un espacio de nombres. |