Especificación XML 1.0

eXtensible Markup Language

 

NOTA: Este documento se creó en un primer momento (1998) como una traducción no oficial (y no literal) al castellano de la recomendación XML 1.0 (Feb. 1998) del WWC. El documento original de la recomendación puede ser consultado en:

http://www.w3.org/TR/1998/REC-xml-19980210.html

La versión actual del presente documento se aleja ligeramente de dicha especificación para intentar conseguir un texto más práctico, con ejemplos y anotaciones. También se han revisado algunos términos que en la traducción original quedaban un poco oscuros.

 

Introducción a XML
(a partir de la especificación)

 

Un documento HTML está formado por marcas (tags). Algunas describen cómo debe ser representado el texto por el visualizador (navegador, browser). Otras se utilizan para identificar elementos especiales (por ejemplo, el título del documento). Y, por supuesto, también hay marcas que permiten trabajar con imágenes, con enlaces y con otros elementos externos.

 

HTML es un lenguaje de marcas fijas y bien definidas. Sólo se deben utilizar las marcas establecidas en las especificación, y cualquier otra marca es ignorada.

 

XML, sin embargo, permite al diseñador crear sus propias marcas, especificando su sintaxis y funcionalidad de tal forma que las nuevas marcas puedan ser reconocidas e interpretadas por los visualizadores.

 

Esto es muy útil puesto que las propias marcas pueden ser utilizadas para identificar contenidos, no sólo para determinar la forma de presentación al usuario como hace HTML.

 

XML sirve fundamentalmente para almacenar la información de una forma estructurada, con estructuras que siguen ciertas reglas y que son accesibles de forma manual o automatizada (XML no dice cómo ha de presentarse el contenido de un documento, ni siquiera qué puede o no puede hacerse con él, de hecho, el tratamiento de la información corresponde a las aplicaciones).

 

Introducción a XML
(otro punto de vista)

 

En primer lugar hay que tener en cuenta que XML no hace nada por sí mismo. Es un metalenguaje que permite definir lenguajes específicos para cada aplicación (para cada uso).

XML simplemente proporciona un mecanismo que permite almacenar e intercambiar la información de una forma estructurada y en un formato comprensible por aplicaciones situadas en sistemas heterogéneos (y comprensible también para los humanos).

El concepto de documento XML es ligeramente distinto del concepto tradicional de documento (texto básicamente). Un documento XML puede contener cualquier tipo de información y estructurada de muy diversas formas, siguiendo siempre las reglas impuestas para cada dialecto/lenguaje XML. Es decir un documento XML puede ser una base de datos con información sobre clientes, otro documento XML puede ser una ecuación matemática, otro puede ser un libro, etc...

Las reglas que marcan las posibles estructuras de los documentos XML (a partir de la especificación XML) son un compromiso entre flexibilidad (permite construir estructuras muy complejas si así se desea) y sencillez de procesamiento (lo que permite desarrollar software rápido y barato para validar, analizar y extraer información de los documentos XML).

 

Notación

 

La gramática de XML que aparece en la especificación está construida siguiendo una notación EBNF (Extended Backus-Naur Form). Cada regla de la gramática define un símbolo:

símbolo :: = expresión

Los símbolos se escriben con mayúscula inicial si son definidos a través de una expresión regular. Las cadenas de caracteres literales se escriben entre comillas.

Dentro de la expresión del lado derecho de una regla, se utiliza la siguientes expresiones para hacer coincidir cadenas de uno o más caracteres:

 

#xN Donde N es un entero hexadecimal. La expresión coincide con el carácter en ISO/IEC 10646 cuyo código canónico (UCS-4) tiene el valor indicado cuando es interpretado como un número binario sin signo.
[a-zA-z],[#xN-#xN] Cualquier carácter en el rango indicado.
[^a-z],[^#xN-#xN] Cualquier carácter cuyo valor no está entre los caracteres indicados
"string" Cadena de caracteres literal (entre comillas dobles)
‘string’ Cadena de caracteres literal (entre comillas simples)

Estos símbolos pueden ser combinados para formar patrones más complejos. Si A y B son expresiones simples:

A?  Significa A o nada

A B    

Significa A seguido de B

A | B   

Significa A o B, pero no ambos
A - B Significa cualquier cadena que coincide con A, pero no con B
A+  Una o más apariciones de A

A*

Cero o más apariciones de A

 

/* … */

Comentario

[wfc: …]

Well-Formedness Constraint - Condición para que sea un elemento bien-formado

[vc: … ]

Valididy cosntraint - Condición de validez