El comando XML SET OPTIONS se utiliza para modificar el valor de uno o más parámetros XML para estructura pasada en el primer parámetro.
Este comando se aplica a las estructuras XML de tipo "árbol" (DOM) o "document" (SAX). En el primer parámetro, puede pasar una referencia del elemento raíz (refElement), o la referencia de un documento SAX abierto (document).
Pase la opción a modificar en selector y el nuevo valor de la opción en valor. Puede pasar tantos pares selector/valor como desee. Debe utilizar las constantes descritas a continuación, colocadas en el tema "XML":
Las siguientes opciones sólo se utilizan en la dirección 4D a XML (no tienen ningún efecto en la lectura de valores XML en 4D) por estos comandos
Constante |
Tipo |
Valor |
Comentario |
XML binary encoding |
Entero largo |
5 |
Especifica la manera como se convierten los datos binarios. Valores posibles:
- XML Base64 (valor por defecto): los datos binarios se convierten simplemente en base64
- XML Data URI scheme: los datos binarios se convierten en base64 y se añade el encabezado "data:;base64". Este formato permite principalmente a un navegador decodificar automáticamente una imagen, y también es necesario para insertar imágenes . Para mayor información, consulte http://en.wikipedia.org/wiki/Data_URI_scheme.
|
XML date encoding |
Entero largo |
2 |
Especifica la forma en que se convierten las fechas 4D. Por ejemplo, !01/01/2003! en la zona horaria de Paris. Valores posibles:
- XML ISO (valor por defecto): uso del formato xs:datetime sin indicación de la zona horaria. Resultado: "2003-01-01". La parte hora, si está presente en el valor 4D (vía SQL) se pierde.
- XML Local: uso del formato xs:date con indicación de zona horaria. Resultado: "2003-01-01 +01:00". La parte hora, si está presente en el valor 4D (vía SQL) se pierde.
- XML Datetime local: uso del formato xs:dateTime (ISO 8601). Indicación de la zona horaria. Este formato permite conservar la parte hora, si está presente en el valor 4D (vía SQL). Resultado: "<Date>2003-01-01T00:00:00 +01:00</Date>".
- XML UTC: uso del formato xs:date. Resultado: "2003-01-01Z". La parte hora, si está presente en el valor 4D (vía SQL) se pierde.
- XML Datetime UTC: uso del formato xs:dateTime (ISO 8601). Este formato permite conservar la parte hora, si está presente en el valor 4D (vía SQL). Resultado: "<Date>2003-01-01T00:00:00Z</Date>".
|
XML indentation |
Entero largo |
4 |
Define la indentación del document XML. Valores posibles:
- XML With indentation (valor por defecto): el documento está indentado.
- XML No indentation: el documento no está indentado; su contenido se ubica en una sola línea.
|
XML picture encoding |
Entero largo |
6 |
Especifica la forma en la que las imágenes deben convertirse (antes de codificar en base64). Valores posibles:
- XML Convert to PNG (valor por defecto): las imágenes se convierten en PNG antes de ser codificadas en base64.
- XML Native codec: las imágenes se convierten en su primer CODEC nativo de almacenamiento antes de ser codificadas en base64. Debe utilizar estas opciones para codificar imágenes SVG (ver ejemplo del comando XML SET OPTIONS).
|
XML string encoding |
Entero largo |
1 |
Especifica la forma como las cadenas 4D se convierten en valores de elementos. No concierne a las conversiones en atributos para las cuales XML impone el uso de caracteres de escape. Valores posibles:
- XML With escaping (valor por defecto): conversión de las cadenas 4D en valores de elementos XML con reemplazo de caracteres. Los datos de tipo texto son analizados automáticamente de manera que los caracteres prohibidos (<&>’) son reemplazados por las entidades XML (&<> '").
- XML Raw data: las cadenas 4D se envían como datos brutos; 4D no efectúa codificación ni análisis. Los valores 4D se convierten si es posible en fragmentos XML y se insertan como hijo del elemento objetivo. Si un valor no puede considerarse como fragmento XML, se inserta en forma de dato bruto en un nuevo nodo CDATA.
|
XML time encoding |
Entero largo |
3 |
Define la forma como las horas 4D se convierten. Por ejemplo, ?02/00/46? (hora de Paris). La codificación difiere dependiendo de si quiere expresar una hora o una duración. Valores posibles para las horas: - XML Datetime UTC: hora expresada en UTC (Universal Time Coordinated). Note que la conversión a UTC es automática. Resultado: "<Duration>0000-00-00T01:00:46Z</Duration>".
- XML Datetime local: hora expresada con la diferencia horaria de la máquina del motor de 4D. Resultado: "<Duration>0000-00-00T02:00:46+01:00</Duration>".
- XML Datetime local absolute (valor por defecto): hora expresada sin indicación de la zona horaria. Sin modificación del valor. Resultado: "<Duration>0000-00-00T02:00:46</Duration>".
Valores posibles para las duraciones:
- XML Seconds: número de segundos desde la media noche; sin modificación del valor porque expresa una duración. Resultado: "<Duration>7246</Duration>".
- XML Duration: duración expresada conforme a XML Schema Part 2: Datatypes Second Edition. Sin modificación dle valor ya que expresa una duración. Resultado: "<Duration>PT02H00M46S</Duration>".
|
Notas:
- Los valores XML Local y XML Datetime local no ofrecen fechas expresadas en UTC (Universal Time Coordinated); se convierten sin modificación pero indican la diferencia horaria. Estos formatos son útiles en el caso de conversiones sucesivas y recíprocas (round tripping).
- Los valores XML UTC y XML Datetime UTC son equivalentes a los precedentes desde el punto de vista del formato, pero se expresan en UTC. Estos formatos deben tener prioridad para asegurar la interoperabilidad. Los valores no son modificables.
Las siguientes opciones le permiten modificar algunas funcionalidades del analizador xml predeterminado:
Constante |
Tipo |
Valor |
Comentario |
XML DOM case sensitivity |
Entero largo |
8 |
Especifica la sensibilidad a mayúsculas y minúsculas con respecto a los nombres de los elementos de los comandos DOM Get XML element y DOM Count XML elements. Valores posibles:- XML case sensitive (valor predeterminado): los comandos distinguen entre mayúsculas y minúsculas
- XML case insensitive: los comandos no distinguen entre mayúsculas y minúsculas.
|
XML external entity resolution |
Entero largo |
7 |
Controla si las entidades externas están definidas en documentos XML. Por razones de seguridad, por defecto, los analizadores XML DOM y SAX de 4D no permiten la resolución de entidades externas. Tenga en cuenta que el alcance de este selector es el proceso de llamada (si es apropiativo) o todos los procesos cooperativos (si se llama desde un proceso cooperativo). Se aplica globalmente a todos los documentos XML (el primer parámetro se ignora, puede pasar una cadena vacía).
Valores posibles:- XML enabled: permite la resolución de entidades externas en documentos XML
- XML disabled (valor predeterminado): no permite la resolución de entidades externas (una declaración de entidad externa genera un error de análisis)
|
Inserción de una imagen SVG: