<?xml version="1.0" encoding="utf-8" standalone="no"?>
<clase asignatura="FOL" curso="2025">
<alumnos>
<!-- ALUMNO 1 -->
<alumno genero="hombre">
<nombre>PEPITO <apellido>GRILLO</apellido></nombre>
<nota examen="1">9.8</nota>
<nota examen="2">7.2</nota>
<actividades hechas="si" dia="18" mes="10"/>
</alumno>
<!-- ALUMNO 2 -->
<alumno genero="mujer">
<nombre>PEPA <apellido>POMBO</apellido></nombre>
<nota examen="1">4.2</nota>
<nota examen="2">5.5</nota>
<actividades hechas="no" dia="0" mes="0"/>
</alumno>
</alumnos>
</clase>
Hay 2 partes en el documento:
DOCUMENT PROLOG: Siempre va en la parte superior del documento, antes del elemento raíz. Contiene las declaraciones de XML y tipos de documentos.
DOCUMENT ELEMENTS: Empieza en el elemento raíz.
Para poner cometarios en el código se puede usar:
<!-- MENSAJE -->
Para validar tu documento XML puedes usar:
Es recomendable empezar siempre con una "DECLARACIÓN" en la primera línea del documento:
Siempre debe estar en el siguiente orden aunque también se puede definir solo version.
<?xml version="1.0" encoding="utf-8" standalone="no"?>
version: La versión a trabajar con XML.
encoding: Decodificación de carácteres a usar en el documento.
standalone: Indica si el documento depende de información en una fuente externa. Los valores son yes o no.
Se puede poner instrucciones para aplicaciones que procese el documento como por ejemplo un navegador. Formato:
<?target instrucción?>
Ejemplo de instrucción para navegador:
<?xml-stylesheet href="./estilos.css" type="text/css"?>
xml-stylesheet: Es el target/objetivo.
href y type: Son las instrucciones.
Siempre se empieza con un único tag raíz, donde se engloban los diferentes tags. Puede estar anidado por varios tags (uno dentro de otro).
TAGs: Van entre los símbolos <tag> y necesitan un cierre </tag> ("tag" puede ser un nombre personalizado. Es sensible a mayúsculas).
Entre los 2 tags va en CONTENIDO.
Si un tag no va a tener contenido se puede poner simplemente <tag/>.
Dentro de un <tag (AQUÍ)> los espacios son insignificantes (excepto antes de crear/cerrar una etiqueta como: < tag o </ tag). En el contenido del tag no importa.
Además se permite empezar el nombre de un tag con _ o una letra. El nombre del tag puede contener: _, -, . y números.
Cada tag puede tener varios atributos con un valor siempre entre comillas. Formato:
<tag Atributo1="Valor" Atributo2="Valor">
Siempre debe estar dentro de la parte del tag que abre el contenido <tag (AQUÍ)><tag>. Es sensible a mayúsculas.
Dentro del contenido se pueden usar referencias que sirve para poner texto adicional en el contenido de un tag.
Siempre empiezan con & y acaba con ;.
Si, por ejemplo, hace falta colocar un símbolo en el contenido, XML lo puede malinterpretar así que se tendría que definir como decimal con este formato: "00;", donde 00 es el número Unicode que identifica al símbolo que queramos poner.
También se puede hacer en con un identificador hexadecimal como: 00;.
O también se puede usar referencias predefinidas (todo junto):
SÍMBOLO | < | > | & | ' | " |
---|---|---|---|---|---|
REFERENCIA | < | > | & | ' | " |
Lo caracteres (<, >, &) que se encuentran entre ellos se ignora por el XML. No se puede anidar. NO se puede poner ]]> dentro del texto por mal interpretación. Es una forma mejor de definir contenido sin referencias.
Formato:
<![CDATA[
TEXTO
]]>
Documento que sirve para verificar la validez de la estructura con unas reglas.
Se puede poner en el mismo archivo XML o en uno nuevo archivo local con SYSTEM:
<!DOCTYPE elemento_raiz SYSTEM "file.dtd">
O podemos coger un DTD de internet con PUBLIC. Ejemplo:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
La primera parte en comillas es el identificador único público para saber que versión usar.
La segunda parte es la URL al archivo.
Si se usa en el propio XML, se empieza con:
<!DOCTYPE elemento_raiz [
declaración1
declaración2
...
]>
Las declaraciones de elementos se hacen así:
<!ELEMENT elemento (...)>
Las declaraciones de atributos se hacen así:
<!ATTLIST elemento atributo tipo valor>
Atributo: Nombre del atributo a especificar.
Tipo: Tipo de valor que debe ser (CDATA: Cuaquier texto, ID: Único...)
Valor: Valor por defecto o vacío con "".
DECLARACIÓN DE ELEMENTOS:
Que un tag <alumno> deba tener anidados si o si unos tags anidados:
<!ELEMENT alumno (nombre, nota, nota, actividades)>
Ejemplo donde el contenido de un tag <nombre> debe ser de tipo PCDATA (Datos de texto que serán interpretados):
<!ELEMENT nombre (#PCDATA)>
DECLARACIÓN DE ATRIBUTOS:
Que un elemento <actividades> deba tener si o si un atributo "hechas" CDATA (Solo se define en atributos):
<!ATTLIST actividades hechas CDATA "">
Que cada elemento <alumno> tenga que tener un atributo "id" especifico CDATA con un valor predefinido:
<!ATTLIST alumno id CDATA "0000">
Y más definiciones de atributos y elementos en: