XML (eXtensible Markup Language) es un lenguaje de marcado que sirve para definir otros lenguajes de marcado. XML define los datos de una forma más eficiente que HTML y maneja de forma independiente el contenido del documento de su presentación. Los documentos XML deben seguir una estructura jerárquica de etiquetas anidadas y bien formadas.
2. XML (eXtensibleMarkupLanguage) Aunque su nombre lo indica, XML no es un lenguaje de marcado, sino que sirve para definir lenguajes de marcado.
3. Estructura de XML Aunque XML es muy parecido a HTML no es igual, teniendo su principal diferencia en que XML define de una forma más eficiente los datos. Además, XML maneja de manera independiente el contenido del documento de su presentación.
4. Ejemplo de la estructura de XML <?xmlversion="1.0"?> <!DOCTYPE MENSAJE SYSTEM "mensaje.dtd"> <mensaje> <remite> <nombre>Alfredo Reino</nombre> <email>alf@ibium.com</email> </remite> <destinatario> <nombre>Bill Clinton</nombre> <email>president@whitehouse.gov</email> </destinatario> <asunto>Hola Bill</asunto> <texto> <parrafo>¿Hola qué tal? Hace <enfasis> mucho </enfasis> que no escribes. A ver si llamas y quedamos para tomar algo. </parrafo> </texto> </mensaje>
5. Documentos XML bien formados Los documentos XML deben seguir una estructura jerárquica en cuanto a las etiquetas, deberá mostrarse con diferentes tabulaciones que etiquetas pertenecen a otras etiquetas, teniendo siempre un solo elemento raíz. Cada etiqueta deberá ser siempre cerrada, para lo que se usa una “ / ”. <email>alf@ibium.com</email>
6. Valores de atributos Los elementos pueden tener atributos que siempre van dentro de comillas simples (‘ ’) o dobles (“ ”). <A HREF="http://www.developer.com/">
7. Tipo de letra y espacios en blanco XML hace diferencia entre mayúsculas y minúsculas siendo diferente “Ejemplo” de “ejemplo” por lo cual se deberá tener especial cuidado con las definiciones. XML ignora los espacios en blanco, puesto que son usados para hacer más legible el texto.
8. Nombrando cosas Como es obvio cada elemento deberá ser nombrado pudiendo utilizar letras, números y símbolos. Sin embargo, existe una excepción, ningún nombre deberá empezar con la cadena “xml” puesto que es palabra reservada.
9. Marcas En XML, los elementos son llamados marcas y siempre deben estar dentro de los símbolos “< >”. <destinatario>
10. Inicio de documentos El inicio de cada documento XML puede ser la descripción de la versión de XML, existiendo hasta ahora sólo la 1.0. También se puede incluir el tipo de mensaje. <?xml version="1.0" encoding="UTF-7" standalone="yes"?> <!DOCTYPEMENSAJE SYSTEM "mensaje.dtd">
11. Contenido Los elementos pueden tener contenido: <nombre>FulanoMengánez</nombre> O no, pero cerrada con una “ / “: <identificadorDNI="23123244"/>
12. Entidades predefinidas Existen 5 entidades sirven para poder utilizar ciertos caracteres dentro del contenido del documento, sin que XML les trate como reservados. <ejemplo> <HTML> <HEAD><TITLE>Rock & Roll</TITLE></HEAD> </ejemplo>
13. Secciones CDATA Para solucionar la incomodidad de tener que utilizar las entidades antes mencionados se construyó CDATA, que sirve para poder utilizar cualquier símbolo sin recibir un trato especial por parte de XML. <ejemplo> <![CDATA[ <HTML> <HEAD><TITLE>Rock & Roll</TITLE></HEAD> ]]> </ejemplo>
14. Comentarios Para agregar comentarios al documento sin que le afecte se escriben empezando siempre con “<!—” y terminando con “-->”. <?xmlversion="1.0"?> <!--Aquí va el tipo de documento --> <!DOCTYPE EJEMPLO [ <!--Esto es un comentario -->
15. DOCUMENT TYPE DEFINITIONS (DTDs) La definición del tipo de documento nos da la libertad de crear nuestro propio lenguaje de marcado definiendo elementos, atributos y entidades. La DTD puede residir en un fichero externo, y quizá compartido por varios (puede que miles) de documentos. O bien, puede estar contenida en el propio documento XML, como parte de su declaración de tipo de documento.
16. <!DOCTYPEetiqueta[ <!ELEMENT etiqueta (nombre, calle, ciudad, pais, codigo)> <!ELEMENT nombre (#PCDATA)> <!ELEMENT calle (#PCDATA)> <!ELEMENT ciudad (#PCDATA)> <!ELEMENT pais (#PCDATA)> <!ELEMENT codigo (#PCDATA)> ]> <etiqueta> <nombre>FulanoMengánez</nombre> <calle>c/ Mayor, 27</calle> <ciudad>Valderredible</ciudad> <pais>España</pais> <codigo>39343</codigo> </etiqueta> DOCUMENT TYPE DEFINITIONS (DTDs)
17. Declaraciones tipo elemento Los elementos deben de basarse en una DTD. Los elementos empiezan con “<!ELEMENT”, enseguida su nombre o identificador. <!ELEMENT receta (titulo, ingredientes, procedimiento)>
18. Declaraciones tipo elemento En cuanto al contenido, puede ser de 4 tipos: EMPTY: sin contenido <!ELEMENT salto-de-pagina EMPTY>
19. Declaraciones tipo elemento ANY: cualquier tipo de contenido. <!ELEMENT batiburrillo ANY> MIXED: mexcla de elementos y caracteres. <!ELEMENT enfasis (#PCDATA)> <!ELEMENT parrafo (#PCDATA|enfasis)*>
21. Modelos de contenido Se especifica los sub-elementos que contiene un elemento y orden que deben seguir. La coma representa que el párrafo debe tener un título y enseguida el párrafo. <!ELEMENT aviso (titulo, parrafo)>
22. Modelos de contenido La barra representa que el párrafo puede tener un párrafo o un gráfico. <!ELEMENT aviso(parrafo| grafico)> En el siguiente caso, el párrafo debe tener un título y en seguida un párrafo o un gráfico. <!ELEMENT aviso (titulo, (parrafo | grafico))>
24. Modelos de contenido El párrafo puede o no tener 1 título. Debe tener mínimo un párrafo. Puede o no tener 1 o más gráficos. <!ELEMENT aviso (titulo?, (parrafo+, grafico)*)>
25. Declaraciones de lista de atributos Un atributo sirve para darle al elemento información, características. <mensaje prioridad="urgente"> <de>Alfredo Reino</de> <a>Hans van Parijs</a> <texto idioma="holandés"> Hallo Hans, hoegaathet? ... </texto> </mensaje>