Lenguaje de marcado para guardar información. Distingue de mayúsculas de minúsculas.
Comentarios
<!-- Este es un comentario -->
Etiquetas
como es un lenguaje de marcado se utilizan etiquetas (una de apertura y otra de cierre) para ordenar la información. Se escribe así:
1<etiqueta></etiqueta>
Podemos darle el nombre que queramos a la etiqueta.
Lo que se sitúa en su interior se llama contenido, y es la información que queremos guardar. Se puede incluir en su interior otras etiquetas para ordenar mejor el contenido.
El espacio del contenido es significativo, pero no el que está dentro de un elemento.
Una etiqueta vacía, sin contenido, se puede simplificar así:
1<etiqueta/>
Podemos usar la etiqueta CDATA
para tomar todo el texto directo de su interior,
por lo que no se permite etiquetas en su interior (excepto ]]>
):
1<![CDATA[ ... ]]>
Document Prolog - Declaración
Es opcional, pero es recomendable y debe ser el primer elemento del documento. Los argumentos deben seguir este orden:
version
indica con qué versión de XML se trabaja (1.0
).encoding
espedifica el tipo de codificación para los caracteres. Por medio de este, los convertimos en una representación binaria de los mismos.standalone
indica si el documento depende de información que esté en una fuente externa.
1<?xml version="1.0" encoding="utf-8"?>
Atributos
Especifica una propiedad que tiene un elemento, añadiendo información. Se pueden tener varios, pero todos deben de ser distintos. Tambiénn se usan para distinguir elementos con el mismo nombre.
- Cadenas de texto
- Tokenized (ya predefinidos)
ID
→ Identifica al elementoIDREF
→ Referencia a un IDIDREFS
→ Referencia a todos los ID de unos elementosENTITY
→ Representa una entidad externaENTITIES
→ Representa entidades externasNMTOKEN
→ Tiene restricciones sobre que dato puede ser parte del atributoNMTOKENS
→ Similar al anterior, varios datos
- Enumerados
NotationType
→ Elemento referenciado a una NOTACIÓN declaradaEnumeración
→ Lista de valores que el atributo puede tener
1<etiqueta atributo1= "valor1" atributo2= "valor2">Contenido</etiqueta>
Referencias
Predefinidas
<
→<
>
→>
&
→&
'
→'
"
→"
Tiene un #
seguido de un número, que es el código Unicode para el caracter.
Si lo queremos usar en hexadecimal se añade un x delante del número
<
→<
<
>
→?
>
&
→&
&
'
→'
'
"
→"
"
Instrucciones de procesado
Transmiten información a la aplicación que usará el XML, pero no forman parte de los datos del documento.
1<?target instruction?>
target
→ identifica la aplicacióninstruction
→ información que esta procesa
1<?xml-stylesheet href = "estilo.css" type = "text/css"?>
Validación
Proceso en el cual se verifica su un XML es válido: si tus contenidos estás de acuerdo con los elementos, atribtos definidos en el DTD (Document Type Declaration).
Well-Formed XML Document
→ Documento bien formadoValid XML Document
→ Documento válido
DTD - Document Type Declaration
Verifica el vocabulario y la validez de la estructura con las reglas de un leguaje XML en particular. Puede especificarse en otro documento/s
Se inicia con:
1<!DOCTYPE element DTD identifier [declaraciones]>
element
→ A partir de qué elemento es la raízidentidier
→ Dirección hacia un archivo
1<! ELEMENT nombreElemento (interior: elementos/CDATA)>
2<! ATTLIST nombreAtributo CDATA "" <-(default)>
XSD - XML Schema Definition
Se usan para validar y describir los XML. Se define usanso su nombre y el tipo:
1< xs:element name = "x" type = "y" />
name
→ nombre del elementotype
→ xs:integer xs:string xs:date o tipos complejos
Estos tipos se declaran detro de esta etiqueta, con una etiqueta
<xs:complexType>
y otra de <xs:sequence>
:
1<xs:element name = "nombre">
2 <xs:complexType>
3 <xs:sequence>
4 <xs:element name = "atributo1" type = "xs:string">
5 </xs:sequence>
6 <xs:complexType>
7</xs:element>
DOM - Documento Object Model
Por medio de DOM
describimos los elementos y sus relaciones. Está basado en un
árbol. También nos ofrece una API
que nos permite trabajar con los nodos para
añadir, editar o borrarlos.
NameSpace
XML nos permite tener namespaces, podemos agrupar lógicamente elementos.
El namespace tiene un URI
(Uniform Resource Identifier)
Se declara por medio del atributo xmlns
:
1<elemento xmlns:nombre = "URI">