## Apuntes XML #### Definición Es una especificación de W3C, que significa eXtensible Markup Language, y es derivado de SGML. Permite definir la gramática de lenguajes específicos para estructurar documentos grandes. #### Ventajas - Es extensible: Después de diseñado y puesto en producción, es posible extender XML con la adición de nuevas etiquetas. - El analizador es un componente estándar, no es necesario crear un analizador específico para cada versión de lenguaje XML. - Es sencillo entender su estructura y procesarla, tanto por humanos como por maquinas #### Estructura y elementos: ```xml contenido contenido contenido ``` - Se compone de un prologo (opcional) y un cuerpo - El prologo contiene: - Declaración xml - Declaración del tipo de documento - Enlace al documento DTD asociado, o el propio DTD insertado - Comentarios e instrucciones de procesamiento - En el cuerpo solo puede existir un elemento - Los elementos pueden anidarse, pero hay que cerrar siempre los inferiores primero #### Secciones CDATA Es una construcción XML se pueden introducir elementos que no se analicen como código XML, siendo útil para textos con caracteres especiales. Ejemplo: ```xml ]]> ``` Dentro de una sección CDATA no se puede escribir la cadena "]]>". En consecuencia, no se pueden anidar secciones CDATA. #### Caracteres reservados y unicode | Carácter | Código | | ------------------ | -------- | | < (menor que) | `<` | | > (mayor que) | `>` | | " (comilla doble) | `"` | | ' (comilla simple) | `'` | | & (ampersand) | `&` | Para unicode se introduce el código decimal o hexadecimal mediante los caracteres reservados `&# DEC_HEX_CODE ;`. Para hexadecimal es necesario anteponer una x al código. Listado unicode: https://en.wikipedia.org/wiki/List_of_Unicode_characters Playlist: https://www.youtube.com/playlist?list=PLqu7Q-jp3eAPhrfYbS-RcTNZn7L2LMzpp XMLCopyEditor: https://xml-copy-editor.sourceforge.io/ Tutorial XML (Abrirllave.com): https://www.abrirllave.com/xml/