Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este tema se describe el VML, una característica que está en desuso a partir de Windows Internet Explorer 9. Las páginas web y las aplicaciones que dependen del VML deben migrarse a SVG u otros estándares ampliamente compatibles.
Nota:
A partir de diciembre de 2011, este tema se ha archivado. Como resultado, ya no se mantiene activamente. Para más información, consulte Contenido archivado. Para obtener información, recomendaciones e instrucciones sobre la versión actual de Windows Internet Explorer, consulte Centro para desarrolladores de Internet Explorer.
Contents
Introducción
Esta propuesta usa un pequeño número de tipos básicos, que se enumeran en la tabla siguiente.
| Tipo | Elemento | Representación fundamental | Descripción |
|---|---|---|---|
| boolean | 1 bit | Valor booleano: true o false. | |
| fracción | número 2 6 | Un valor numérico, con escala 2 6 (65536) y almacenado como entero con signo. | |
| ordenada | Entero de 30 bits más signo | Parte de una coordenada (por ejemplo, en una ruta de acceso ), los valores definidos por coord. | |
| length | EMU | Una longitud física, como el ancho de una línea o el tamaño de una fuente. | |
| medida | EMU o número 2 6 | Una longitud física, incluida una cantidad de píxeles del dispositivo, o una fracción de alguna otra cantidad. | |
| ángulo | grados 2 6 | Ángulo; positivo corresponde al sentido de las agujas del reloj. | |
| color | c | complex | Elemento que permite derivar un color. |
| font | font | complex | Descripción de una fuente. |
| bitmap | bitmap | href | Referencia a un archivo de imagen externo. |
| vector | v | complex | Descripción de una ruta de acceso vectorial. |
La "representación fundamental" es la representación de mayor precisión de que la propuesta requiere una implementación que cumpla los requisitos para mantener; los datos se perderán si la implementación no puede representar los datos con la precisión necesaria. Los tipos de color, fuente y vector corresponden a elementos que en sí mismos tienen estructura; en cierto sentido, no son tipos básicos; sin embargo, es conveniente tratarlos como tales dentro de esta propuesta.
Cada tipo básico no complejo tiene un elemento asociado con el mismo nombre. Estos nombres de elemento están reservados y no se pueden usar para ningún otro propósito dentro de las extensiones, incluso aunque el uso esté dentro de un elemento de extensión onview="skip". Debido a esto, es posible que una implementación que encuentre elementos XML desconocidos proporcione un almacenamiento interno eficiente del elemento XML desconocido siempre que los valores estén delimitados en los elementos "type".
<new:tag>1.578</new:tag>
<new:tag><v:fraction>1.578</v:fraction></new:tag>
En el primer ejemplo de arriba, la cadena "1.578" debe almacenarse como una secuencia de caracteres (la implementación no sabe si es una cadena o un número); en el segundo ejemplo, el elemento "fraction" indica que el contenido es un número, por lo que se puede convertir a la representación de fracción de alta precisión.
Los tipos complejos (incluido el mapa de bits) tienen nombres de elemento asociados que se usan para delimitar el valor. Esto simplifica el análisis al garantizar que las tareas de análisis más complejas estarán asociadas a etiquetas de elementos únicas.
boolean
boolean
<!entity % boolean "#pcdata" -- or nmtoken in an attribute -- >
Un valor booleano se representa como una palabra clave que indica el estado de la marca. Se definen las siguientes palabras clave.
| Valor de true | Valor de false |
|---|---|
| true | false |
| sí | no |
| en | apagado |
| t | f |
| 1 | 0 |
Una implementación puede escribir cualquier valor y debe reconocer todos los valores. Una implementación puede cambiar los valores de una representación a otra.
fraction
fraction
<!entity % fraction "#pcdata" -- or nmtoken in an attribute -- >
Todos los valores numéricos (es decir, valores de cantidades sin dimensiones) que se encuentren en esta propuesta se pueden almacenar como enteros si se les aplica una escala de 2 6 (65536). Se puede dar un número en este formato, con el sufijo "f" o como un número decimal sin sufijo. Por lo tanto, los siguientes elementos hipotéticos representan el mismo valor.
<fillwidth>0.25</fillwidth>
<fillwidth>16384f</fillwidth>
Una cantidad con el sufijo "f" debe ser un número entero; no se permiten números fraccionarios. El entero resultante debe poder representarse como número con signo complementario de 32 bits; por lo tanto, el intervalo efectivo de la representación es 32768 (de hecho, es menor que 32768 y mayor o igual que -32768).
Se requiere una implementación que cumpla los requisitos para conservar los valores que se expresan como valores f. Los valores representados como números decimales se pueden convertir en un valor f y almacenarse de esa manera. Se permite que una aplicación registre valores generados internamente en cualquier unidad adecuada; sin embargo, los valores leídos desde documentos existentes deben mantenerse en la precisión original completa o se deben convertir en un valor f.
Si la implementación no puede hacerlo, debe advertir al usuario de que los datos se pueden perder. (Se acepta emitir dicha advertencia una vez cuando se encuentran por primera vez los datos generados externamente).
Cuando se convierte un valor decimal en formato f, la implementación puede usar cualquier modo de redondeo aritmético; sin embargo, un número entero debe convertirse al formato f de forma exacta. Se recomienda que las implementaciones se conviertan redondeando a menos infinito y que la conversión siempre sea exacta.
ordenada
ordinate
<!entity % ordinate "#pcdata" -- or nmtoken in an attribute -- >
Las unidades del sistema de coordenadas establecidas por coord son de algún tipo nominal, lo que se conoce como "ordenada". Se trata de una medida de longitud, pero solo se usa en relación con el rectángulo que establece coord. Cualquier valor de tipo ordenada se escalará mediante los valores w y h de la coordenada y la relación resultante utilizada para establecer una medición real en el dispositivo de salida.
Una implementación que cumpla los requisitos debe ser capaz de controlar valores de ordenadas de hasta 30 bits más signo (es decir, un entero de 31 bits con signo, no un entero de 32 bits con signo). Sin embargo, se recomienda que las implementaciones intenten generar coordenadas para la ruta de acceso y elementos similares que tengan unos 16 bits de precisión. Esto minimizará la posibilidad de que se produzca un desbordamiento o un subdesbordamiento en una implementación que no cumpla los requisitos.
los valores de ordenadas siempre son integrales. Es posible que un separador decimal no aparezca en un valor de tipo ordenada. No se puede anexar ningún especificador de unidad a valores de tipo ordenada.
length
length
<!entity % length "#pcdata" -- or nmtoken in an attribute -- >
Una longitud es una medida real o, a veces, una medida en píxeles del dispositivo. Se recomienda que las implementaciones eviten el uso de píxeles de dispositivo (px).
Todos los calificadores de unidad CSS1 estándar se permiten con una longitud. Además, se podrá utilizar el calificador "EMU". Este calificador hace referencia a una unidad, EMU (English Metric Unit, unidad métrica inglesa), que es un denominador común de las cantidades de medición de uso generalizado en gráficos por ordenador. La EMU es la siguiente: pulgada/914400; es decir, hay 914400 EMU por pulgada. En la tabla siguiente se muestra el número de EMU en una pequeña cantidad de unidades que se encuentran habitualmente.
| Número de EMU | Número por pulgada | Número por milímetro | Descripción |
|---|---|---|---|
| 360 | 0,01 | Win32 HIMETRIC | |
| 12 700 | 72 | "punto" | |
| 635 | 1440 | Win32 TWIP | |
| 762 | 1200 | Impresora de alta resolución |
No se permiten números fraccionarios de EMU. Cualquier medida debe ser representable como un número integral con signo de 32 bits de EMU; esto limita la magnitud de una medida a 2348 pulgadas (unos 59 metros o 65 yardas). Debido a que las medidas siempre se refieren al tamaño de una representación en un dispositivo de salida nominal de tamaño de pantalla o página, siempre estarán dentro de este rango.
Tenga en cuenta, sin embargo, que la representación es inapropiada para mediciones del mundo real y que cuando estas se registran (por ejemplo, para registrar el tamaño de una ruta en el mundo real) se debe utilizar alguna otra representación.
Se requiere una implementación que cumpla los requisitos para conservar los valores que sean números exactos de EMU. Los valores representados de cualquier otra manera se pueden convertir en un valor de EMU y almacenarse de esa manera. Se permite que una aplicación registre valores generados internamente en cualquier unidad adecuada; sin embargo, los valores leídos desde documentos existentes deben mantenerse en la precisión original completa o se deben convertir en un valor EMU.
Si la implementación no puede hacerlo, debe advertir al usuario de que los datos se pueden perder. (Se acepta emitir dicha advertencia una vez cuando se encuentran por primera vez los datos generados externamente).
En la práctica, las longitudes físicas se utilizan para relativamente pocas medidas en esta propuesta. Los datos que normalmente son más importantes son los datos de la ruta y están codificados en el sistema de coordenadas definido, por forma, mediante coord.
Representaciones alternativas
Las representaciones de longitud estándar de HTML se definen mediante CSS1. Las unidades relativas, a excepción del píxel, no son significativas en el contexto en el que se usan longitudes en esta propuesta y no se deben usar. Si el documento registra el tamaño de píxel previsto (destino), se definirá la traducción de píxeles a EMU; de lo contrario, se deberá usar el valor predeterminado de 90 ppp definido mediante CSS1.
A excepción de EMU, cualquier valor se puede proporcionar como fracción decimal. Cuando se convierte un valor decimal en EMU, la implementación puede usar cualquier modo de redondeo aritmético. La única manera de que una aplicación de creación garantice un resultado determinado es especificarlo en EMU.
Si no se proporciona ningún especificador de unidad en un valor de longitud, la implementación deberá asumir que la unidad es EMU.
medida
measure
<!entity % measure "#pcdata" -- or nmtoken in an attribute -- >
Una medida es una cantidad que puede ser una longitud o una fracción. Esto se parece mucho a las medidas de longitud HTML y CSS, que, en muchos casos, pueden ser medidas físicas o porcentajes de alguna otra cantidad. Si no se proporciona ningún especificador de unidad, se debe asumir que el valor es una fracción decimal (por lo tanto, este comportamiento se hereda de la fracción, no de la longitud).
A diferencia de la longitud, un valor de píxel tiene un significado definido por el contexto, por lo que la conversión a EMU suele ser inapropiada. Hay tres posibles representaciones fundamentales que la implementación debe mantener (es decir, una representación no se puede convertir en otra sin pérdida de información).
- Se debe mantener un valor fraccionario en el formato de fracción (un valor "f").
- Se debe mantener una longitud física en EMU.
- Un valor de píxel debe mantenerse como un número entero de píxeles.
No se permiten números fraccionarios de píxeles.
Representaciones alternativas
Se permiten todas las representaciones alternativas de fracción y longitud .
angle
angle
<!entity % angle "#pcdata" -- or nmtoken in an attribute -- >
La representación fundamental de un ángulo es un número de grados multiplicado por 2 6 (65536) y almacenado como un número entero. Dado que el espacio de coordenadas se invierte (el eje y positivo está hacia abajo), un ángulo en el sentido de las agujas del reloj es positivo. Se requiere una implementación que cumpla los requisitos para conservar la precisión completa de este valor.
Una implementación puede usar cualquier rango para ángulos y puede normalizar un ángulo (por ejemplo, a -180, a +180 o 0 a 360). No es necesario que las implementaciones sean coherentes; sin embargo, la representación integral de un ángulo no debe superar el intervalo de un entero de 32 bits con signo.
El sufijo "fd" se usa para identificar esta representación de un ángulo (grado fraccionario). Tenga en cuenta que esto se distingue del sufijo "f" para una fracción sin dimensiones, aunque se puede usar la aritmética idéntica para admitirlo. El valor predeterminado de un valor angular es el grado simple; es decir, un valor sin escalar. Esto también puede indicarse con el sufijo "°" (símbolo de grado); sin embargo, el uso de este elemento depende de si se tiene una codificación de documento adecuada; por lo tanto, el sufijo "deg" también se define para referirse a "grados". El conjunto completo de posibles sufijos es el siguiente.
| Sufijo | Factor de conversión | Comentarios |
|---|---|---|
| fd | 1 | Representación interna de alta precisión |
| none, deg, | 65536 | Degrees |
| rad | 65536pi/180 | Radians |
Representaciones alternativas
La transformación de escalado tiene discontinuidades en múltiplos impares de 45. Por lo tanto, es sumamente importante que la conversión de cualquier cantidad inexacta esté bien definida. Por esta razón, la aritmética de conversión se define en el redondeo hacia menos infinito.
Dado que esto puede ser difícil o imposible de garantizar en algunas implementaciones, el uso de lo siguiente se define como una característica de nivel 3:
- Cualquier valor de grado fraccionario.
- Cualquier valor de radián
Por lo tanto, los valores calificados "fd" y los valores integrales no calificados, o los valores integrales calificados "deg", deben ser gestionados con exactitud por una implementación que cumpla los requisitos de nivel 0; otros valores no lo necesitan. Se recomienda encarecidamente que cualquier implementación controle la conversión de un valor de grado fraccionario a un valor de grado escalado (fd) de forma exacta. Esto se puede hacer sin compatibilidad con puntos flotantes.
Los requisitos más exactos para la conversión distinguen fd de f.
color
c
<!element c %color;>
Los colores son una parte esencial de los gráficos informáticos modernos. La propuesta utiliza los métodos establecidos de la especificación de colores fijos. Sin embargo, los colores de los diagramas rara vez son colores estáticos simples; a menudo se derivan de otros elementos del diagrama. Gran parte de esta información es muy específica de la aplicación, por lo que esta propuesta proporciona dos mecanismos muy básicos para especificar este comportamiento:
- Un color puede derivarse de otro color de la misma forma.
- Se define un pequeño número de operaciones aritméticas para derivar o modificar un color.
El mecanismo de forma del prototipo complementa esto al permitir definir prototipos de los cuales se pueden heredar los colores.
color
<!entity % color "( %color-unit; | pure | %color.adjustment; )*">
Un valor de color es un superconjunto de la definición de color CSS1. Las extensiones permiten que el valor del color RGB se determine a partir de otros colores dentro de la forma o de un esquema de color general definido mediante CSS1.
Si el valor de un elemento se define como un color, el contenido de un elemento define el valor de color mediante un único token de color modificado opcionalmente por una operación aritmética en el color RGB correspondiente.
Unidades de color
El conjunto completo de tokens de color procede de una gran variedad de orígenes: HTML, CSS1 y esta propuesta. Se definen de la siguiente manera mediante la notación de CSS1 o la notación XPointer definida para la vinculación XML.
En las definiciones de XPointer, el origen de ubicación es el elemento que contiene el valor de color y la expresión hace referencia al conjunto de elementos completo de la forma como si se hubiera combinado cualquier elemento de prototipo base con la forma. Cuando el elemento correspondiente no existe, el valor predeterminado para ese elemento se usa en su lugar.
| Color | Definición | Nivel | Descripción |
|---|---|---|---|
| name | Consulte a continuación | 0 | Nombre de color HTML, como se muestra en la tabla siguiente. |
| #rr'gg'bb' | #rr'gg'bb' | 0 | Representación de color CSS1/sRGB estándar que utiliza valores en el rango de 0 a 255 representados mediante 2 dígitos hexadecimales cada uno. |
| #rgb | #rrggbb | 1 | Formato CSS1 abreviado con solo tres dígitos hexadecimales. |
| rgb(r,g,b) | #(r)(g)(b) | 1 | Formato rgb CSS1; los elementos del valor rgb se convierten como se define en CSS1. |
| fill | ancestor(1,shape) child(1, fill) child(1, color) |
1 | Color de relleno de primer plano de la forma. |
| fillBack | ancestor(1,shape) child(1, fill) child(1, back) child(1, color) |
1 | Color de fondo del relleno de la forma. |
| line | ancestor(1,shape) child(1, line) child(1, color) |
1 | Color de la línea de primer plano de la forma. |
| lineBack | ancestor(1,shape) child(1, line) child(1, back) child(1, color) |
1 | Color de la línea de fondo de la forma. |
| lineOrFill | línea, relleno | 1 | Valor de línea si no se ha predeterminado; de lo contrario, el valor de relleno. Esto devuelve eficazmente el color que está en el borde de la forma. |
| fillThenLine | relleno, línea | 1 | Valor de relleno si no se ha predeterminado; de lo contrario, el valor de línea. Esto devuelve eficazmente el color de la forma principal (si la forma no se rellena; el resultado será el color de línea). |
| shadow | ancestor(1,shape) child(1, shadow) child(1, color) |
2 | Color de la sombra (se trata de una característica de nivel 2). |
| scheme | Consulte a continuación | 1 | Color del esquema definido para el documento; consulte la siguiente información. |
| scheme(index) | Consulte a continuación | 1 | Índice del color del esquema, a partir de 0; consulte la siguiente información. |
| this | Implícito | 2 | La operación (rellenar una ruta de acceso o dibujarla) se define de alguna otra manera (por ejemplo, como mapa de bits) y el color especifica una "modificación" de los colores así implicados. |
| palette(index) | Implícito | 3 | Se comporta de la misma manera que esto, salvo que se identifica exactamente una entrada de una tabla de colores de mapa de bits. Se permite solo cuando se indica explícitamente. |
| None | - | 2 | Indica la ausencia de un color; se puede usar para cancelar una operación de dibujo que use el color. |
| sistema | Consulte a continuación | 3 | Color definido por la interfaz de usuario del sistema. |
Este color permite que un valor de color especifique una modificación de un color que se deriva de alguna otra manera; en concreto, se puede especificar una sola operación para todos los colores de un mapa de bits. El color palette(index) identifica una entrada determinada en un mapa de bits asignado a la paleta. El uso de esto solo se define para grabar una entrada de tabla de colores que debe considerarse transparente en un mapa de bits de este tipo.
La definición de un valor de color no debe hacer referencia a sí misma, ya sea directa o indirectamente. Si se encuentra dicha definición, se recomienda, pero no es necesario, que la implementación trate el valor indefinido como negro.
Colores HTML
HTML define los siguientes dieciséis nombres de color:
Nombres de color y valores sRGB

Negro = "#000000"

Verde = "#008000"

Plateado = "#C0C0C0"

Lima = "#00FF00"

Gris = "#808080"

Verde oliva = "#808000"

Blanco = "#FFFFFF"

Amarillo = "#FFFF00"

Granate = "#800000"

Azul marino = "#000080"

Rojo = "#FF0000"

Azul = "#0000FF"

Púrpura = "#800080"

Verde azulado = "#008080"

Fucsia = "#FF00FF"

Celeste = "#00FFFF"
Colores del esquema
Los colores de esquema a los que hace referencia el esquema se definen en el nivel de documento mediante la meta etiqueta con un atributo de nombre de "Esquema de colores de tema".
<meta name="Theme Color Scheme"
content="rrggbb, rrggbb, rrggbb, rrggbb, rrggbb, rrggbb, rrggbb, rrggbb">
Esta etiqueta permite definir hasta ocho colores de esquema. Los colores no definidos deben tener como valor predeterminado el color negro. Los colores del esquema permiten cambiar el esquema de color utilizado para un documento completo simplemente alterando el contenido del esquema de color del tema. Para asegurarse de que los gráficos importados de diferentes aplicaciones de creación hacen un uso coherente de los colores de esquema, se definen las siguientes interpretaciones. En "Uso" se describe brevemente el propósito y la columna "Descripción" proporciona detalles adicionales.
| Índice | Nombre | Uso | Descripción |
|---|---|---|---|
| 0 | scheme.background | Fondo | Color usado para el fondo de un gráfico (y, con frecuencia, para toda la página). |
| 1 | scheme.text | Texto y líneas | Color del texto adjunto a una forma y el color de línea estándar. |
| 2 | scheme.shadow | Sombras | Color de sombra estándar: el color que se usa normalmente para las sombras de formas. |
| 3 | scheme.title | Texto de título | Color que se va a usar para el texto de título o el encabezado. |
| 4 | scheme.fill | Rellenos | Color de relleno estándar: el color que se usa normalmente para rellenar formas. |
| 5 | scheme.accent | Énfasis | Color de "resaltado" normal que se usa para resaltar un elemento importante de un gráfico. |
| 6 | scheme.hyperlink | Énfasis e hipervínculo | Color de resaltado usado para los hipervínculos. Puede utilizarse con otros fines en los que el color denota un vínculo a otra información. |
| 7 | scheme.followed | Énfasis e hipervínculo seguido | Color de resaltado para los hipervínculos seguidos; también es apropiado para enlaces de navegación "hacia atrás". |
Se puede hacer referencia a un color de esquema por nombre o por índice, por lo que scheme.fill y scheme(4) son el mismo color.
Los colores de esquema no participan en el esquema predeterminado si no se especifica un color. Un color de relleno no especificado siempre debe interpretarse como blanco, independientemente del color de esquema 4. Los colores de "énfasis" deben contrastar con los colores de fondo (0) y de relleno (4), y los colores del texto y del título deben tener la misma propiedad. Una técnica estándar consiste en colorear los énfasis y dejar el texto estándar sin color (normalmente negro o blanco).
Colores del sistema
Las aplicaciones a veces registran colores en función de la configuración del sistema operativo dentro de gráficos. Normalmente, son transitorios y no es necesario escribirlos; las definiciones de color del sistema existen únicamente para respaldar esto. Se introduce un color del sistema definiendo una etiqueta adecuada en un nuevo espacio de nombres e insertando la información adecuada en el contenido del elemento.
Esta propuesta define esta etiqueta para codificar los colores de la interfaz de usuario de Windows definidos en el archivo de encabezado winuser.h.
win.color
<!element win.color #pcdata>
El contenido del elemento es un número entero único que contiene el valor de COLOR_ relevante definido desde winuser.h. Se puede adoptar una técnica similar para cualquier especificación de color específica del sistema o de la aplicación. Se recomienda encarecidamente que esta característica solo se use para la compatibilidad con versiones anteriores.
Colores puros
pure
<!elementpure empty>
Si el elemento <pure/> aparece en un valor de color, se trata de una sugerencia de que el color no debe aproximarse a un patrón interpolar. Esta es una característica de nivel 1 y una implementación que cumpla los requisitos no necesita respetarla. La designación es importante para los gráficos que se muestran en dispositivos de resolución media, como las pantallas de vídeo, donde las características pequeñas (como las líneas) pueden provocar un alias incorrecto con colores interpolados. En dispositivos como impresoras, que normalmente interpolan todos los colores excepto los pocos colores totalmente saturados, la interpolación suele ser lo suficientemente fina como para evitar este problema.
Ajustes de color
El color base se puede ajustar mediante operaciones aritméticas en el valor RGB. Estas operaciones se definen mediante elementos adicionales dentro del valor de color. Estos ajustes solo son útiles cuando se aplican a colores derivados de otros elementos. Es válido especificar dicho ajuste en un valor de color fijo; sin embargo, se permite una implementación para reducir esto al valor RGB correspondiente y almacenarlo en lugar del original.
Todas las características de ajuste de color descritas en esta sección son características de nivel 1.
color.adjustment
<!entity % color.adjustment -- change to make to a color --
"( %color.op; )?, ( %color.adj; )*"
>
color.op
<!entity % color.op -- arithmetic operation --
"( darken | lighten | add | subtract | reverseSubtract |
blackWhite )"
>
<!element darken %color.parameter;>
<!element lighten %color.parameter;>
<!element add %color.parameter;>
<!element subtract %color.parameter;>
<!element reversesubtract %color.parameter;>
<!element blackwhite %color.parameter;>
color.parameter
<!entity % color.parameter "#pcdata" >
color.adj
<!entity % color.adj -- additional adjustment to color --
"invert | invert128 | gray"
>
<!element invert empty>
<!element INVERT128 empty>
<!element gray empty>
El parámetro de las primeras seis operaciones es un valor numérico integral único en el rango de 0 a 255. El ajuste se realiza en el valor RGB de 3x8 bits, como se indica a continuación:
Si se especifica <gray/>, el valor RGB se reemplaza por yyy, donde "y" es el valor de luminancia (y') calculado a partir del valor scRGB que sigue a ITU-r BT.709. Este cálculo es el siguiente:
y = 0 2125xr + 0 7154xg + 0 0721xbSi se da una modificación color.op, cada componente se ajusta por separado según la tabla siguiente. "c" es el valor del componente y "p" es el valor color.parameter.
Operación Fórmula oscurecer c := cxp/255 aclarar c := 255 - (255-c)xp/255 add c := c + p restar c := c - p reversesubtract c := p - c blackwhite if c < p thenc := 0elsec := 255 En cada caso, si el valor del componente calculado, c, supera los 255, se usa 255 y, si es menor que 0, se usa 0.
Si se especifica <INVERT128/>, se resta o suma el valor de 128 a cada componente según si el componente es menor que 128 o no.
if c < 128 then c := c + 128 else c := c - 128Si se especifica <invert/> , cada componente se reemplaza por 255 menos el valor del componente.
c := 255-c
font
font
<!element font any>
<!attlist font
style cdata #implied>
Una fuente se identifica mediante un atributo de estilo tal y como se define en la sección 5.2 de CSS1 (propiedades de fuente). El cuerpo del elemento de fuente es, en la actualidad, indefinido, pero puede usarse en el futuro para codificar la información de fuente estándar. Las implementaciones iniciales de esta propuesta deben conservar la información, pero no interpretarla.
Es posible agregar compatibilidad en el futuro para la información de fuentes fuera de línea (fuentes descargables o recursos de fuente compartidos). Esto lo hará un elemento de vínculo XML dentro del contenido del elemento de fuente, lo que garantizará la compatibilidad de las versiones anteriores con las implementaciones iniciales.
bitmap
bitmap
<!element bitmap empty>
<!attlist bitmap
XML-link cdata #fixed "simple"
href cdata #REQUIRED
title cdata #implied
behavior cdata #implied
show (embed|replace|new) #fixed "embed"
inline (true|false) #fixed "true"
actuate (auto|user) #fixed "auto"
>
El elemento de mapa de bits permite incluir una referencia a un recurso de imagen fuera de línea (normalmente un mapa de bits) en un gráfico.
El mapa de bits es una característica de nivel 1.
El atributo de comportamiento se puede usar para indicar cómo se debe controlar el mapa de bits mediante una aplicación de edición. El valor puede ser uno o ambos de los siguientes tokens.
| Token | Descripción |
|---|---|
| separar | Marca el mapa de bits como una entidad independiente que no debe considerarse parte integral del documento. El mapa de bits no debe mantenerse con el documento. Si se copia el documento, no se debe copiar el mapa de bits; si se mueve el documento, el mapa de bits no se debe mover con él. |
| original | El atributo "title" identifica la ubicación original del mapa de bits como una dirección URL; de lo contrario, no se especifica el significado de "title". |
Estos valores son sugerencias en cuanto al comportamiento esperado. La opción independiente hace referencia al comportamiento de los datos a los que hace referencia href. Si se proporcionan tanto la opción independiente como la original, se espera que la aplicación ignore el URI de href y vuelva a generar el mapa de bits a partir de los datos originales. Si solo se proporciona la opción original, se espera que la aplicación use el URI de href para encontrar el mapa de bits, pero puede dar al usuario la opción de regenerarlo.
Es válido hacer que el URI de href y el atributo "title" correspondan al mismo valor (léxico): esto es adecuado si el mapa de bits al que se hace referencia no se "almacena con" el documento. Está previsto (aunque no es necesario) que href se use para la propia copia del documento del mapa de bits, que se puede eliminar si se eliminan las formas de referencia, y que "title" se use para indicar una copia compartida. Por lo tanto, si ambos contienen el mismo valor, no hay ninguna copia específica del documento.
Las aplicaciones pueden ignorar la sugerencia si esta no encaja con el modelo de almacenamiento real de los datos XML.
Formatos de archivo de imagen
En el contexto de esta propuesta, los datos externos son invariablemente un mapa de bits o un archivo que se usa para generar un mapa de bits. En el nivel de representación 0, no es necesario admitir ningún formato de mapa de bits externo; es posible que las rutas de acceso solo se rellenen con colores sólidos. Para representar el conjunto completo de rellenos de nivel de representación 1, es necesario admitir mapas de bits. El nivel de representación 1 incluye (solo) los siguientes formatos:
- JFIF, es decir, los datos en formato ISO/IEC 10918 insertados en un archivo con el encabezado JFIF (que puede considerarse como un marcador APP0 particular después del fabricante de SOI) y que incluyen (solo) la gama de formatos JPEG admitidos por el código IJG v6.
- PNG, tal como se define en la especificación PNG, versión 1.0.
El nivel de representación 2 también incluye compatibilidad con lo siguiente:
- GIF, tal como se define en la especificación GIF publicada por CompuServ en 1987 (normalmente denominada "GIF87a"). GIF89a también debe ser compatible en este nivel, sujeto a la restricción de que los datos no deben contener ningún bloque de extensión que necesite interpretación para mostrar el mapa de bits que no sean extensiones de control de gráficos sin necesidad de entrada del usuario o tiempo de retraso. Esto permite incluir comentarios, pero no la extensión de texto sin formato. Una aplicación puede insertar extensiones de aplicación (0x21, 0xFF) pero, utilizando la terminología de esta propuesta, estas deben contener solo datos de edición, no de representación.
Cualquier otro formato de datos utilizado en el gráfico obliga a que ese gráfico tenga al menos el nivel de edición 3 y posiblemente el nivel de representación 3 (si los datos son necesarios para representar el gráfico). Se recomienda que una aplicación publique los formatos que admite. Por ejemplo, Microsoft Office admite los siguientes formatos adicionales de forma nativa y, por tanto, puede escribir datos de edición en este formato:
- WMF: metarchivo de Windows (formato Win 3.1)
- EMF: metarchivo "mejorado" de Windows (formato Win32)
- PICT: archivo PICT QuickDraw de Mac OS (todas las versiones, pero sin registros QuickTime ni otras extensiones)
- BMP: formato de archivo de mapa de bits de Windows, formatos "os/2" (BITMAPCORE), BITMAPINFO, BITMAPV4 y BITMAPV5.
vector
v
<!element v "( #pcdata | p )*">
Una ruta de gráfico vectorial está codificada como pcdata. El contenido del elemento v se mezcla, que contiene una descripción de ruta de acceso vectorial opcionalmente parametrizada con elementos p.
Volver al principio