W3C

3.4592592592469 (810)
Publicado por roy 12/03/2009 @ 01:08

Tags : w3c, estándares web, internet, tecnología

últimas noticias
Internet 3.0 está un poco más cerca - La Gaceta de los Negocios
Dirige el World Wide Web Consortium (W3C), organismo normalizador e impulsor de Internet al que pertenecen más de 400 miembros, incluyendo a las empresas tecnológicas más importantes del mundo. Tras la decisión de impulsar la Web semántica hace 10 años...
Vinton Cerf muestra su interés por apoyar «el desarrollo económico ... - El Comercio Digital (Asturias)
Entre sus logros, se encuentra albergar la sede española del Consorcio internacional W3C, que bajo la dirección mundial de Tim Berners-Lee trabaja para impulsar todo el potencial de internet. Tras este encuentro, el martes visitará las obras del Centro...
Los contenidos de la Fundación CTIC sorprendieron al 'padre' de ... - El Comercio Digital (Asturias)
Uno de los elementos que le sorprendió fue la presencia en Asturias de la Oficina Española de W3C, cuya llegada se remonta a la concesión del Premio Príncipe de Asturias a los 'padres' de internet. «Es muy amigo de Tim Berners-Lee, director del...
La web de adif, disponible en el móvil - ecodiario
Según informó la entidad, los contenidos de la web de Adif han recibido la certificación de Doble A, según las recomendaciones indicadas por la WAI (Web Accessibility Iniciative), grupo de trabajo internacional perteneciente al W3C (World Wide Web...
La página web de Acciona recibe un certificado de AENOR que ... - Europa Press - Diario Social
Según la eléctrica, con este reconocimiento de AENOR, Acciona se convierte en la primera web de las compañías del Ibex-35 en recibir este sello, que se ajusta a las Directrices de Accesibilidad definidas por el Consorcio para la World Wide Web (W3C) ya...
LA CNMV CONFÍA A IECISA LA CONSTRUCCIÓN DEL PORTAL DE EDUCACIÓN ... - Computing España
Deberá garantizar, además, un nivel máximo de usabilidad y plena accesibilidad a todos sus contenidos; concretamente todas las páginas deberán cumplir los requisitos de accesibilidad de Nivel AA para el contenido web 1.0 del W3C-WAI (Web Accessibility...
Seresco libera su plataforma de código abierto Aries destinada al ... - IS-Portal (Comunicado de prensa)
Seresco es una de las empresas que forman la Oficina Española del Consorcio W3C y mantiene alianzas estratégicas y tecnológicas con empresas como Microsoft, Oracle, SAP, Esri o Business Objects. Seresco cuenta con más de 2.000 clientes en los...
W3C CSS 2.1 Spec Gets One Step Closer to Release - CMSWire
By Barb Mosher | May 14, 2009 The W3C Cascading Style Sheets (CSS) Working Group has released the latest version of the Candidate Recommendation CSS Specification — CSS 2.1. The newest version corrects some errors in the previous version and adds some...
La Junta de Extremadura entre las premiadas en la VIII edición de ... - Extremadura al día
Conforme a los estándares del consorcio W3C, estara conformaco ene l nivel 1-A, que garantiza que el sitio web cumple con todos los requisitos necesarios para una navegación sencilla. Los Premios Tecnet 2009 cuentan con el patrocinio del Ayuntamiento...
Primera empresa del IBEX 35 que certifica la accesibilidad de su web - ComunicaRSE
Conforme a las Directrices de Accesibilidad definidas por el grupo de trabajo permanente Web Accessibility Initiative (WAI), del Consorcio para la World Wide Web (W3C), ACCIONA ha desarrollado su web corporativa para llegar a todas las personas,...

Scalable Vector Graphics

SVG.svg

Scalable Vector Graphics (SVG) es un lenguaje para describir gráficos vectoriales bidimensionales, tanto estáticos como animados (estos últimos con ayuda de SMIL), en XML.

SVG se convirtió en una recomendación del W3C en septiembre de 2001, por lo que ya ha sido incluido de forma nativa en el navegador web del W3C Amaya. La versión 1.5 de Mozilla Firefox soporta gráficos hechos con SVG y desde su versión 8, también el navegador Opera ha implementado SVG 1.1 Tiny en su núcleo. Otros navegadores web, como Internet Explorer, necesitan un conector o plug-in, para lo que se puede utilizar el Visualizador SVG de Adobe.

SVG rivaliza con Adobe Flash en términos de potencial y poder, con la diferencia de que el primero es un estándar abierto.

Los objetos gráficos pueden ser agrupados, transformados y compuestos en objetos previamente renderizados, y pueden recibir un estilo común. El texto puede estar en cualquier espacio de nombres XML admitido por la aplicación, lo que mejora la posibilidad de búsqueda y la accesibilidad de los gráficos SVG. El juego de características incluye las transformaciones anidadas, los clipping paths, las máscaras alfa, los filtros de efectos, las plantillas de objetos y la extensibilidad.

El dibujado de los SVG puede ser dinámico e interactivo. El Document Object Model (DOM) para SVG, que incluye el DOM XML completo, permite animaciones de gráficos vectoriales sencillas y eficientes mediante ECMAScript o SMIL. Un juego amplio de manejadores de eventos, como "onMouseOver" y "onClick", pueden ser asignados a cualquier objeto SVG. Debido a su compatibilidad y relación con otras normas Web, características como el scripting pueden ser aplicadas a elementos SVG y a otros elementos XML desde distintos espacios de nombre XML simultáneamente dentro de la misma página web. Un ejemplo extremo de esto es un juego completo de tetris realizado como un objeto SVG, disponible aquí. (El enlace requiere un navegador con soporte de SVG).

Si el espacio de almacenamiento es un problema, las imágenes SVG pueden salvarse comprimidas con gzip, en cuyo caso pasan a ser imágenes SVGZ. Debido a la verbosidad del XML, este tiende a comprimirse muy bien, y estos ficheros pueden ser mucho más pequeños. Aun así, a menudo el fichero vectorizado original (SVG) es más pequeño que la versión de mapa de bits.

La amplia adopción de clientes SVG, particularmente aquellos integrados nativamente en los navegadores, como Firefox, Opera, Konqueror o Safari, puede traer un significativo cambio de imagen en la Web. Una tendencia actual es construir sitios web dinámicos que se comportan como aplicaciones de escritorio, usando AJAX. SVG amplía las posibilidades de AJAX, proveyendo de un juego gráfico más rico a los elementos de la página, más allá de los especificados mediante HTML/CSS. El módulo terminal SVG de Firefox es un ejemplo inicial de esto.

La versión 9.5 Beta, incorpora la posibilidad de llamar en forma externa a una imagen en formato svg. Usando <image> o <use>.

Al principio



Hojas de estilo en cascada

CSS.svg

Las hojas de estilo en cascada (Cascading Style Sheets, CSS) son un lenguaje formal usado para definir la presentación de un documento estructurado escrito en HTML o XML (y por extensión en XHTML). El W3C (World Wide Web Consortium) es el encargado de formular la especificación de las hojas de estilo que servirán de estándar para los agentes de usuario o navegadores.

La idea que se encuentra detrás del desarrollo de CSS es separar la estructura de un documento de su presentación.

Por ejemplo, el elemento de HTML <H1> indica que un bloque de texto es un encabezamiento y que es más importante que un bloque etiquetado como <H2>. Versiones más antiguas de HTML permitían atributos extra dentro de la etiqueta abierta para darle formato (como el color o el tamaño de fuente). No obstante, cada etiqueta <H1> debía disponer de la información si se deseaba un diseño consistente para una página y, además, una persona que lea esa página con un navegador pierde totalmente el control sobre la visualización del texto.

Cuando se utiliza CSS, la etiqueta <H1> no debería proporcionar información sobre como va a ser visualizado, solamente marca la estructura del documento. La información de estilo separada en una hoja de estilo, especifica cómo se ha de mostrar <H1>: color, fuente, alineación del texto, tamaño y otras características no visuales como definir el volumen de un sintetizador de voz (véase Sintetización del habla), por ejemplo.

La información de estilo puede ser adjuntada tanto como un documento separado o en el mismo documento HTML. En este último caso podrían definirse estilos generales en la cabecera del documento o en cada etiqueta particular mediante el atributo "style".

Hay varias versiones: CSS1 y CSS2, con CSS3 en desarrollo por el World Wide Web Consortium (W3C). Los navegadores modernos implementan CSS1 bastante bien, aunque existen pequeñas diferencias de implementación según marcas y versiones de los navegadores. CSS2, sin embargo, está solo parcialmente implementado en los más recientes.

Antes de que estuviera disponible CSS, la única forma de componer espacialmente una página era el uso de tablas. Aunque es una técnica cómoda y versátil, se está usando un elemento con una semántica particular, que es la de expresar información tabular, solamente por su efecto en la presentación.

La introducción de CSS ha permitido en muchos casos reemplazar el uso de tablas. Sin embargo CSS todavía no permite la versatilidad que ofrecían las tablas, lograr un diagramado de una página compleja suele ser una tarea difícil en CSS y las diferencias entre navegadores dificultan aún más la tarea. Se espera que futuros desarrollos en CSS3 resuelvan esta deficiencia y hagan de CSS un lenguaje más apto para describir la estructura espacial de una página.

Si se define una caja con el atributo width (ancho), se interpreta por el modelo de caja del W3C como la anchura del contenido. La anchura del relleno y del borde se añaden a la anchura total del elemento.

En el modelo no puede especificarse el margen, el relleno o el borde, en la misma etiqueta, que el ancho del contenido. Otra posibilidad es usar un hack (véase la sección de enlaces).

No obstante Internet Explorer 6.0 puede prepararse, a un modo acorde con el estándar, si se usa una declaración !DOCTYPE apropiada.

Al principio



CC/PP

Composite Capabilities/Preferences Profile (CAPACIDADES DE COMPOSICIÓN / PERFILES DE PREFERENCIAS) es un sistema desarrollado por el W3C, con el fin de que exista una Web única. Debido al cada vez más creciente número de dispositivos que acceden a Internet se presentan problemas de navegación y además los desarrolladores de portales no pueden entregar correctamente el contenido a todos los terminales, CC/PP hace parte de una solución a esta problemática.

CC/PP es una descripción de las capacidades de los dispositivos y las preferencias de los usuarios. Es usualmente utilizado para definir el contexto de entrega del dispositivo final y así realizar una adaptación de contenido correcta.

La aparición de los contextos de entrega se hizo necesaria debido al creciente número de dispositivo que ingresan a Internet. Anteriormente existían las cabeceras HTTP “alt=“ y “accept=” pero son muy limitadas.

CC/PP es basada en RDF, el cual es diseñado por la W3C como un lenguaje de metadatos de propósito general. RDF es un formato estándar para el intercambio de datos en la web. RDF puede ser serializado en un documento XML usando XML/RDF.

Un perfil CC/PP contiene a número de atributos CC/PP y valores asociados que son usados por un servidor web para determinar la manera más apropiada de entregar un recurso a un cliente. Un grupo de atributos, valores permitidos y significados asociados constituyen un vocabulario CC/PP.

Es posible que diferentes aplicaciones tengan diferentes vocabularios CC/PP, pero si todos ellos se basan en las especificaciones podrán interpretarse unos a otros para trabajar juntos.

CC/PP también se creó con la intensión de ser compatible con UAProf 2.0, especificación dada por la OMA.

Plataforma hardware sobre la cual la paltaforma software se esta ejecutando. Plataforma software sobre las cuales las aplicaciones son alojadas. Una aplicación individual como un browser.

Los atributos pueden ser uno o varios valores, por ejemplo en el caso del componente “plataforma hardware” podemos encontrar los atributos “displayWidth” y “displayHeight”, los cuales toman un único valor pero podemos tener atributos múltiples como el caso de un browser que soporta múltiples versiones de HTML.

Al principio



SOAP

SOAP (siglas de Simple Object Access Protocol) es un protocolo estándar que define cómo dos objetos en diferentes procesos pueden comunicarse por medio de intercambio de datos XML. Este protocolo deriva de un protocolo creado por David Winer en 1998, llamado XML-RPC. SOAP fue creado por Microsoft, IBM y otros y está actualmente bajo el auspicio de la W3C. Es uno de los protocolos utilizados en los servicios Web.

Los desarrolladores de aplicaciones hoy en día, pueden utilizar la infraestructura de correo electrónico de Internet para transmitir mensajes SOAP ya sean como mensajes de correo electrónico de texto o como adjuntos. Los ejemplos que se muestran a continuación muestran un modo de transmitir mensajes SOAP, y deben ser tomados como el modo estándar de hacerlo. Las especificaciones SOAP Versión 1.2 no especifican tal vínculo. Sin embargo, existe una Nota W3C no-normativa que describe un vínculo de SOAP con el correo electrónico, su propósito principal es comenzar a demostrar la aplicación de la Infraestructura general de Vínculos con el Protocolo SOAP.

El encabezado del Ejemplo tiene la forma estándar de para mensajes de correo electrónico.

Aunque el correo electrónico es un intercambio de mensajes en un solo sentido, y no se da ninguna garantía de entrega, infraestructuras como la de la especificación Simple Mail Transport Protocol (SMTP) ofrecen un mecanismo de notificación de entrega que, en el caso de SMTP, se denominan Delivery Status Notification (DSN) y Message Disposition Notification (MDN) . Estas notificaciones toman la forma de mensajes de correo electrónico enviados a la dirección de correo electrónico especificada en el encabezamiento del mensaje de correo. Las aplicaciones, así como los usuarios finales del correo, pueden utilizar estos mecanismos para proporcionar el estado de una transmisión de correo electrónico, pero estos, si se existiesen, serían notificaciones al nivel SMTP. El desarrollador de aplicaciones debe comprender completamente las capacidad y limitaciones de estas notificaciones de entrega o el riesgo de asumir que haya existido una entrega del mensaje con éxito cuando podría no haberse producido.

Los mensajes de estado de entrega SMTP son separados del procesamiento del mensaje en la capa SOAP. Las respuestas SOAP resultantes a los datos SOAP serán devueltas a través de un mensaje de correo electrónico nuevo que podría tener o no un enlace con el mensaje de la petición original al nivel SMTP. El uso del encabezado In-reply-to: según puede conseguir una correlación al nivel SMTP, pero no implica necesariamente una correlación al nivel SOAP.

HTTP fue elegido como protocolo de transporte por sus ventajas, para lidiar con cortafuegos, por ejemplo. Otros protocolos como GIOP/IIOP o DCOM suelen ser repelidos por estos cortafuegos.

Al principio



XHTML

XHTML, acrónimo inglés de eXtensible Hypertext Markup Language (lenguaje extensible de marcado de hipertexto), es el lenguaje de marcado pensado para sustituir a HTML como estándar para las páginas web. En su versión 1.0, XHTML es solamente la versión XML de HTML, por lo que tiene, básicamente, las mismas funcionalidades, pero cumple las especificaciones, más estrictas, de XML. Su objetivo es avanzar en el proyecto del World Wide Web Consortium de lograr una web semántica, donde la información, y la forma de presentarla estén claramente separadas. La versión 1.1 es similar, pero parte a la especificación en módulos. En sucesivas versiones la W3C planea romper con los tags clásicos traídos de HTML.

XHTML es una "reformulación de los tres tipos de documento definidos por HTML 4, pero como aplicaciones de XML". Al mismo tiempo el W3C continúa recomendando el uso de HTML 4 y al mismo tiempo avanza en la especificación de HTML 5 (y XHTML5).

Se sintió que era necesaria una versión más estricta de HTML principalmente porque el contenido de la World Wide Web ahora puede visualizarse desde numerosos dispositivos (como móviles) aparte de las computadoras de escritorio tradicionales, donde no se contaría con los recursos necesarios para afrontar la complejidad de la sintaxis del HTML. Sin embargo, en la práctica, fueron apareciendo navegadores para dispositivos móviles que pueden manejar documentos HTML comunes, antes que XHTML sea adoptado por los navegadores principales.

En octubre de 2005 aproximadamente el 10% de los internautas utilizaban un navegador compatible con el estándar XHTML. El Internet Explorer de Microsoft es incompatible con XHTML, a pesar de que esta empresa sea miembro de la W3C. Por tanto, gran parte de los autores de sitios web se ven forzados a elegir entre la escritura de documentos válidos, respetuosos con los estándares u ofrecer contenido que se visualice correctamente en la mayor parte de los navegadores, del mismo modo, la corroboración de los específicos es vital para las fluctuaciones pertinentes.

Las diferencias entre HTML y la primera generación de XHTML (es decir, XHTML 1.x) son menores ya que, principalmente, están destinados a conseguir la conformidad con XML. El cambio más importante es el requisito de que el documento esté bien formado y que todas las etiquetas estén explícitamente cerradas, como se requiere en XML. Como las etiquetas en XML distinguen entre mayúsculas y minúsculas (case-sensitive), la recomendación XHTML ha definido todos los nombres de etiqueta en minúsculas. Lo cual está en contraste directo con las tradiciones extendidas en el tiempo de HTML 2.0, cuando mucha gente prefería las mayúsculas para estos casos, normalmente para mostrar más fácilmente el contraste de éstas con el contenido. En XHTML, los valores de los atributos deben encerrarse entre comillas (siempre comillas "dobles"). Al contrario ocurría en SGML y por consecuencia en HTML, donde las comillas podían omitirse en algunos casos. Todos los elementos han de ser explícitamente cerrados, incluyendo elementos vacíos como pueden ser img o br. Esto puede hacerse añadiendo una barra a la etiqueta: <img … /> y <br />. La minimización de atributos (como <option selected>) está también prohibida; en lugar de eso, se usa <option selected="selected">. Hay más diferencias detalladas en la recomendación XHTML 1.0 de la W3C.

El estándar XHTML indica en un apéndice informativo una manera de escribir XHTML de modo tal que los navegadores actuales que sólo entienden HTML, lo procesen como si fuera éste. Para esto se deberá crear un documento con algunas restricciones y consideraciones, y servirlo con el "content-type" text/html, en vez del correcto para XHTML.

Para algunos autores, la inclusión de este apéndice en el estándar fue un error y consideran que es un error usar XHTML de esta manera.

Al principio



Xml encryption

A medida que la tecnología XML se extiende, cada vez más información se distribuye en este formato. Pero XML nació como formato de documentos y en sí mismo no contiene elementos relacionados con la seguridad. Esto hace necesario realizar un esfuerzo concreto en esta materia, en una búsqueda para encontrar un método para proteger esa información compartida.

XML Encryption es una Recomendación del Consorcio Web (W3C) que especifica un proceso para cifrar datos (no únicamente documentos XML) y representar esa información cifrada a su vez en XML para que viaje por los medios de transmisión. Este artículo pretende describir y ejemplificar someramente su funcionamiento, para información detallada acudir a la Especificación del Consorcio Web.

XML Encryption establece que para cifrar un elemento (o un contenido textual de un elemento), este va a ser sustituido por otro elemento establecido por la especificación que contendrá el dato cifrado y la información necesaria para el procesamiento, como puede ser la identificación del algoritmo utilizado o datos sobre la clave empleada. Este elemento es <EncryptedData>, de tal modo que podría aparecer como raíz del nuevo documento generado tras el proceso, o como hijo de otros elementos ya existentes previamente.

Por otro lado, la especificación establece XML Schema como esquema de modelo de datos. Dicho Schema puede ser consultado en la especificación de XML Encryption y es necesario para conocer la sintaxis a emplear.

Se trata de una información de pago que contiene datos sobre una tarjeta de crédito: un cliente llamado John Smith dispone de una tarjeta de crédito, cuyo número es 4019 2445 0277 5567, con un limite de 5000 USD y con fecha de expiración. Esta información es delicada y debería ser protegida.

Veamos unos ejemplos de diferentes niveles de cifrado para ese documento…

Al cifrar totalmente el elemento <CreditCard>, incluyendo sus etiquetas, la identidad del elemento permanece oculta. Esto ofrece una interesante posibilidad para la seguridad ya que en principio no se sabrá cuál es el medio de pago hasta que no se descifre el dato.

Podemos optar por no cifrar todo el elemento <CreditCard> sino algunos datos en concreto: el número, el banco y la fecha de expiración.

Ahora vemos que el elemento <CreditCard> permanece visible pero no los datos que queríamos ocultar.

Vemos que toda la información permanece intacta excepto el contenido textual del elemento <number> que contenía el dato a proteger.

Ahora, toda la información ha sido cifrada.

Dado que es posible cifrar cualquier tipo de información, nada nos impide cifrar datos que ya estaban cifrados. Esto se conoce como Super-cifrado y puede ser utilizado siempre que se respete la siguiente limitación: se debe cifrar el elemento <EncryptedData> al completo.

Cifrar el contenido textual o elementos hijos del mismo tendría como resultado un documento XML inválido frente al Schema que define XML Encryption, ya que según este esquema un elemento <EncryptedData> no puede ser padre o hijo de otro elemento <EncryptedData>. Será necesario pues tener en cuenta esa limitación a la hora de utilizar esta posibilidad de doble cifrado.

Normalmente el aspecto de un documento XML cifrado será bastante más complejo que el que hemos visto en los ejemplos anteriores. El Schema que modeliza toda esa sintaxis es relativamente extenso y da cobertura a multitud de aspectos relacionados con la criptografía, empleando para ello un conjunto de elementos y atributos especiales.

Por ejemplo para conocer el método de cifrado empleado se utiliza el elemento <EncryptionMethod>. Si este elemento no existe el destinatario del mensaje cifrado debe saber de antemano cuál fue el algoritmo utilizado.

Los datos cifrados propiamente dichos se engloban en elementos <CipherData>, representando el contenido en Base 64.

El manejo de las claves también tiene su propia estructura, pero también se emplean partes propias de XML Signature (otro trabajo del W3C). Por ejemplo se puede asociar una cadena de caracteres visible a una clave secreta que sólo conozcan el emisor y el receptor de antemano. Esta cadena se incrusta en el elemento <KeyName> y así el receptor sabrá que clave utilizar para descifrar la información (una interesante forma de evitar enviar las claves secretas por medios de comunicación inseguros).

Por otro lado, si optamos por enviar la clave junto con el documento, será recomendable que la cifremos a su vez; se utiliza para ello el elemento <EncryptedKey> para transportarla en el documento. Esto nos servirá para poder enviar la clave propiamente dicha junto con el documento de un modo seguro.

Existen más elementos y atributos específicos que aportan más información para el procesamiento de XML Encryption. Hay que tener en cuenta que, como se ha comentado antes, muchas de esos métodos pertenecen no a XML Encryption propiamente dicho sino a XML Signature.

Dado que XML Encryption involucra muchos aspectos sobre criptografía y seguridad en general, se ha hecho una clasificación de los algoritmos reconocidos y de cuál es su misión en el procesamiento.

Para el cifrado de los datos se admiten diversos algoritmos de criptografía entre los cuales figuran TripleDES, AES y RSA. Cada uno debe ser referido en el documento cifrado mediante un identificador destinado a ello y que está definido en la especificación.

El transporte de las claves (Key Transport) queda a cargo de los algoritmos RSA-v1.5 y RSA-OAEP obligatoriamente. Su función es un cifrado asimétrico (clave pública) diseñado específicamente para cifrar y descifrar claves.

Para la autenticación de los mensajes (Message Authentication) el grupo de trabajo recomienda utilizar XML Signature, otro trabajo del Consorcio Web.

La canonicalización (Canonicalization) del documento XML se describe en el Canonical XML, otro trabajo del Consorcio Web (W3C). Este proceso consiste en serializar un documento XML en un flujo de octetos, paso necesario para la cifrado.

Por último se establece que la codificación de los datos se haga obligatoriamente en Base64.

Existen más algoritmos y métodos reconocidos por XML Encryption que los aquí comentados… para conocerlos en detalle debemos acudir a la especificación.

Este artículo incorpora material de Planeta Silius, que mediante una autorización permitió agregar contenido publicarlos bajo licencia GFDL.

Al principio



XML

XML.svg

XML, sigla en inglés de Extensible Markup Language («lenguaje de marcas ampliable»), es un metalenguaje extensible de etiquetas desarrollado por el World Wide Web Consortium (W3C). Es una simplificación y adaptación del SGML y permite definir la gramática de lenguajes específicos (de la misma manera que HTML es a su vez un lenguaje definido por SGML). Por lo tanto XML no es realmente un lenguaje en particular, sino una manera de definir lenguajes para diferentes necesidades. Algunos de estos lenguajes que usan XML para su definición son XHTML, SVG, MathML.

XML no ha nacido sólo para su aplicación en Internet, sino que se propone como un estándar para el intercambio de información estructurada entre diferentes plataformas. Se puede usar en bases de datos, editores de texto, hojas de cálculo y casi cualquier cosa imaginable.

XML es una tecnología sencilla que tiene a su alrededor otras que la complementan y la hacen mucho más grande y con unas posibilidades mucho mayores. Tiene un papel muy importante en la actualidad ya que permite la compatibilidad entre sistemas para compartir la información de una manera segura, fiable y fácil.

XML proviene de un lenguaje inventado por IBM en los años setenta, llamado GML (Generalized Markup Language), que surgió por la necesidad que tenía la empresa de almacenar grandes cantidades de información. Este lenguaje gustó a la ISO, por lo que en 1986 trabajaron para normalizarlo, creando SGML (Standard Generalized Markup Language), capaz de adaptarse a un gran abanico de problemas. A partir de él se han creado otros sistemas para almacenar información.

En el año 1989 Tim Berners Lee creó la web, y junto con ella el lenguaje HTML. Este lenguaje se definió en el marco de SGML y fue de lejos la aplicación más conocida de este estándar. Los navegadores web sin embargo siempre han puesto pocas exigencias al código HTML que interpretan y así las páginas web son caóticas y no cumplen con la sintaxis. Estas páginas web dependen fuertemente de una forma específica de lidiar con los errores y las ambigüedades, lo que hace a las páginas más frágiles y a los navegadores más complejos.

Para hacer esto XML deja de lado muchas características de SGML que estaban pensadas para facilitar la escritura manual de documentos. XML en cambio está orientado a hacer las cosas más sencillas para los programas automáticos que necesiten interpretar el documento.

La tecnología XML busca dar solución al problema de expresar información estructurada de la manera más abstracta y reutilizable posible. Que la información sea estructurada quiere decir que se compone de partes bien definidas, y que esas partes se componen a su vez de otras partes. Entonces se tiene un árbol de pedazos de información. Ejemplos son un tema musical, que se compone de compases, que están formados a su vez por notas. Estas partes se llaman elementos, y se las señala mediante etiquetas.

Una etiqueta consiste en una marca hecha en el documento, que señala una porción de éste como un elemento. Un pedazo de información con un sentido claro y definido. Las etiquetas tienen la forma <nombre>, donde nombre es el nombre del elemento que se está señalando.

Los documentos denominados como "bien formados" (del inglés well formed) son aquellos que cumplen con todas las definiciones básicas de formato y pueden, por lo tanto, analizarse correctamente por cualquier analizador sintáctico (parser) que cumpla con la norma. Se separa esto del concepto de validez que se explica más adelante.

Un documento XML está formado por el prólogo y por el cuerpo del documento.

Aunque no es obligatorio, los documentos XML pueden empezar con unas líneas que describen la versión XML, el tipo de documento y otras cosas.

A diferencia del prólogo, el cuerpo no es opcional en un documento XML, el cuerpo debe contener un y solo un elemento raíz, característica indispensable también para que el documento esté bien formado.

Los elementos XML pueden tener contenido (más elementos, caracteres o ambos), o bien ser elementos vacíos.

Los elementos pueden tener atributos, que son una manera de incorporar características o propiedades a los elementos de un documento. Deben ir entre comillas.

Entidades para representar caracteres especiales para que, de esta forma, no sean interpretados como marcado en el procesador XML.

Comentarios a modo informativo para el programador que han de ser ignorados por el procesador.

Que un documento esté "bien formado" solamente se refiere a su estructura sintáctica básica, es decir, que se componga de elementos, atributos y comentarios como XML especifica que se escriban. Ahora bien, cada aplicación de XML, es decir, cada lenguaje definido con esta tecnología, necesitará especificar cuál es exactamente la relación que debe verificarse entre los distintos elementos presentes en el documento.

Esta relación entre elementos se especifica en un documento externo o definición (expresada como DTD (Document Type Definition = Definición de Tipo de Documento) o como XSchema). Crear una definición equivale a crear un nuevo lenguaje de marcado, para una aplicación específica.

La DTD define los tipos de elementos, atributos y entidades permitidas, y puede expresar algunas limitaciones para combinarlos. Los documentos XML que se ajustan a su DTD son denominados válidos.

Los elementos deben ajustarse a un tipo de documento declarado en una DTD para que el documento sea considerado como válido.

Un modelo de contenido es un patrón que establece los subelementos aceptados, y el orden en que se aceptan.

Los atributos se usan para añadir información adicional a los elementos de un documento.

Los espacios de nombres XML permiten separar semánticamente los elementos que forman un documento XML.

Un Schema es algo similar a un DTD. Define qué elementos puede contener un documento XML, cómo están organizados y qué atributos y de qué tipo pueden tener sus elementos.

De hecho cualquier procesador de texto, que sea capaz de producir archivos txt es capaz de generar XML, aunque en los entornos de desarrollo como Eclipse o Visual Studio, se facilita, ya que reconoce los formatos y ayuda a generar un XML bien formado.

EL Lenguaje de Hoja de Estilo Extensible (eXtensible Stylesheet Language, XSL) es una familia de lenguajes que permiten describir como los archivos codificados en xml serán formateados (para mostrarlos) o transformados. Hay tres lenguajes en esta familia: XSL Transformations (XSLT), XSL Formatting Objects (XSL-FO)y XML Path Language.

XLink es una aplicación XML que intenta superar las limitaciones que tienen los enlaces de hipertexto en HTML. Es una especificación que todavía está en desarrollo.

También hay por lo menos un lenguaje basado en XML en formato binario, llamado EBML.

Al principio



Source : Wikipedia