b3t8 - XML Flashcards
XML es un lenguaje case sensitive?
Sí
Qué significa que un XML esté bien formado?
XML Bien Formado:
* Sólo existe un único elemento raíz.
* Todos los elementos se encuentran anidados y correctamente cerrados.
* Los valores de atributos deben ir entre comillas simples o dobles.
* Los elementos vacíos deben terminar con ‘/’ (autocierre) o añadiendo una etiqueta
de fin.
* Los nombres de las etiquetas pueden ser alfanuméricos, pero siempre
comenzando con una letra o guion bajo
* XML es case sensitive en los nombres de las etiquetas, por tanto la apertura y cierre han de ser iguales al respecto
* Un nodo puede tener dentro varios elementos que pueden ser textos u otros nodos (ver imagen, que sería correcta)
Qué significa que un XML sea válido?
Cumple las reglas de la gramática especificadas en el DTD / XSD
Cómo se tiene que declarar un XML? (etiqueta de inicio del XML)
< ?xml versión=“1.0” encoding=“utf-8” standalone=“no”?>
Fijarse que empieza y termina por interrogación
La versión es obligatoria, pero el encoding no
Standalone no significa que la gramática está en otro fichero, por tanto no es independiente
Cómo se enlaza por ejemplo un DTD en un XML para validar su gramática¿?
< !DOCTYPE empleados SYSTEM “empleados.dtd”>
Qué es el & amp; de la imagen. O podría ser un & lt;
Son entities o macros, que sirven para no confundir al analizador XML
Se sustituye al analizar el XML por su caracter, para “escapar”
Cómo se hace en XML para poner un texto que no se interprete por el parser de XML?
< ![CDATA[texto que el parser no analiza]]>
Qué son los espacios de nombre en XML y cómo se definen?
Tenemos la posibilidad de incluir en las etiquetas unos prefijos que nos permitan
eliminar la posible ambigüedad que pudiera darse con dos etiquetas con el mismo
nombre
* Los DTD no dan soporte a los espacios de nombres
Fijarse que se pone en la etiqueta root
Cómo se hace un DTD para definir la gramática de un DTD?
Cómo empieza el documento y dónde se pone el elemento raíz
Cómo indicar que un elemento tiene determinados hijos ( pudiendo usar and o or, indicando el número de elementos…
Cómo indicar que un elemento tendrá texto
Cómo indicar los atributos que tendrá un elemento, tanto de forma obligatoria como opcional
- Otros tipos de contenido para un ELEMENT serían ANY (mixto) o EMPTY, o FIXED para un valor fijo
- Otros tipos de atributos son ID e IDREF (similar al concepto de clave primaria y ajena)
- REQUIRED para obligatorio y IMPLIED para opcional
Dos lenguajes de marcas ligeros
Se basan en una sintaxis menos compleja que XML y suelen utilizarse para generar documentación. Ejemplos: Markdown (.md) y RestructuredText (.rst)
Casos de uso de YAML
- Definir api rest en formato openApi
- Definir un playbook de Ansible
- Docker Compose
Qué significa que JSON sea schemaless?
Que no requiere de validación con un esquema con la gramática, como XML
Cuál es el estándar de JSON? y el mimetipe?
ECMA 404
application/json
Qué tipo de datos tiene JSON?
Object , Array, Number, String, true, false y null
Entrecomillado ->
Cómo son las comillas cuando se ponen?
Cómo van el nombre de los atributos del par atributo:valor?
En qué tipos de datos se entrecomilla su valor y cuáles no?
Cómo se separan los decimales en un number?
Comillas dobles
atributo Siempre entre dobles comillas
Se entrecomilla el valor de: Strings
No se entrecomilla el valor de: Number, Booleanos y null
Los numéricos decimales se separan con punto, no coma
Qué dos librerías se usan para procesar JSON?
Jackson y GSON
Dos APIs de programación de JSON
JSON-P y JSON-B (como json-p, pero de más alto nivel)
Refrescar cómo son los JWT, típico caso de uso de JSON
Cómo se enlaza un XSD en un XML?
< aeropuerto xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”
xsi:noNamespaceSchemaLocation=”aeropuerto.xsd”>
Fijarse en que hay que dar de alta ese espacio de nombres
Luego en el otro xsi se pone el xsd a importar
Cómo empieza un XSD?
< ?xml version=”1.0” encoding=”UTF-8”?>
< xs:schema xmlns:xs=”http://www.w3.org/2001/XMLSchema”>
Fijarse en que al ser un XML también, se inicia como un xml, con la “?”, la versión, etc
Analizar un ejemplo de XSD
Y leer los apuntes de XSD en pdf que está en el laboratorio, pasando de la parte de qualified. Importante las restricciones
Fijarse en el uso de complexType y de simpleType -> Simple solo puede tener un dato, fijarse que se usa para crear una restricción.
Fijarse en que se pone all, para indicar que no tienen un orden específico, se podría poner sequence para obligar al orden. Choice sería para indicar que sólo se puede poner uno de los hijos.
Se usa minOcurrs y maxOcurrs para indicar nº, en lugar de asterisco, + , ? como en DTD
Se puede usar tipo time para validar fechas
Como en DTD se puede especificar que un atributo es ID
El uso de restriction y pattern para hacer que un atributo cumpla una expresión regular
Restricciones o facetas XSD
Ejemplo de usar extensiones en XSD
Fijarse en la sintaxis, que es con extension
Fijarse que además de heredar atributos con la extensión, se está añadiendo otro
Qué es XSLT?
Lenguaje que vale para transformar un XML a otro XML, a un HTML o a texto plano
la extensión es .xsl
no es valido). Tipo MIME = application/xhtml+xml