B3T8 XML Flashcards

(52 cards)

1
Q

¿Qué es un XML bien formado?

A

Un XML que cumpla con las reglas de construcción de XML

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

¿Qué es un XML válido?

A

Un XML que cumpla con las reglas de gramática especificadas en el DTD/XSD

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

¿Qué es XML?

A

Es un conjunto de reglas para definir lenguajes de etiquetas

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

¿Qué herramientas existen para definir nuestras etiquetas/gramática?

A
  • DTD: antiguo y poco flexible
  • XSD: moderno y muy flexible. Es lo que se llama Schema
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

¿Qué etiqueta especial al inicio de un documento XML (Lenguaje de Marcado Extensible), se trata de una declaración en la que se indica la versión y codificación del archivo para que máquinas y humanos entendan cómo interpretar los datos?
¿Es obligatorio indicarla?

A

<?xml>
No es necesaria indicarla, pero en el caso en que se indique, es obligatorio indicar la versión. El encoding no es obligatorio.

Ejemplo: <?xml version=”1.0” encoding=”UTF-8” standalone=”no”?>

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

¿Cómo se pone un comentario en XML?

A

<!– comentario –>

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

¿Cómo se denomina realmente en el mundo XML lo que llamamos “etiqueta”?

A

Elemento (element)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

¿Cómo se denomina una etiqueta o elemento cuando está representado en memoria?

A

Nodos

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

¿Cómo puede ser el inicio de una etiqueta en XML?

A

Con letras minúsculas, con letras mayúsculas, comenzando por “:” o comenzando por “_”

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

¿Cómo tiene que ir el valor de los atributos en XML?

A

Entre comilla simple o doble comilla
Ej: <_alumno curso=”primero”> ó <_alumno curso=’primero’>

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Qué va a resolver el parset cuando se defina & amp ;

A

Un ampersand

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Qué va a resolver el parset cuando se defina & gt ;

A

El signo “>”

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Qué va a resolver el parset cuando se defina & lt ;

A

El signo “<”

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Qué va a resolver el parset cuando se defina & quot ;

A

Doble comilla

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Qué va a resolver el parset cuando se defina & apos ;

A

Apóstrofe o comilla simple

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

¿Qué etiqueta existe en lenguajes de marcado como XML/HTML para indicar que el contenido que esté dentro de ella debe tratarse como datos de texto plano, sin interpretar etiquetas HTML/XML?

A

<![DATA[contenido que no analiza el parse]]>

![DATA es la abreviatura de CDATA (Character Data)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

¿Cómo se representa una etiqueta vacía (empty element)?

A

<etiqueta></etiqueta>
ó
<etiqueta/>
sin más

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

¿Cómo se elimina la posible ambigüedad que se puede dar por tener etiquetas iguales pero con distinto contexto?

A

Mediante el espacio de nombres, que consiste en dar de alta un prefijo mediante el atributo “xmlns”.
Ejemplo:
<capital xmlns:geo=”http://uri-a”> prefijo “geo” para indicar que está agrupado en un contexto geográfico
<capital xmlns:finan=”http://uri-b”> prefijo “finan” para indicar que está agrupado en un contexto financiero

y se asigna a una URI (Unified Resource Identifier) que sirve únicamente como un identificador único y universal para el espacio de nombres

En el código:
<geo:capital> … </geo:capital>
<finan:capital> … </finan:capital>

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

¿Los espacios de nombre (namespace), funcionan con los DTD?

A

No, los DTD no dan soporte al espacio de nombres

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

¿Qué familia de tecnologías consiste en transformar y formatear documentos XML, separando los datos de su presentación y permitiendo convertirlos a otros formatos como HTML, PDF o texto plano?

A

Tecnología XSL

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Mediante XSL ¿cómo se transforma un XML en otro lenguaje de marcas o etiquetas como html?

A

Mediante un procesador XSLT, es decir, partimos de un XML de base y junto a un documento XSL que define la transformación que deseamos hacer, ambos se introducen en el procesador XSLT (Apache XALAN, por ejemplo), que se encarga de transformarlo a otro documento de marcas (por ejemplo, html)

Documento XML (de base) + Documento XSL (.xsl o .xslt) (donde se define la transformación que queremos) > Procesador XSLT (APACHE XALAN) = Documento HTML

22
Q

Mediante XSL ¿cómo se transforma un XML en un PDF, en una imagen, etc?

A

Mediante un procesador XSLFO, es decir, partimos de un XML de base y junto a un documento XSL que define la transformación que deseamos hacer, ambos se introducen en el procesador XSLFO (Apache FOP, por ejemplo), que se encarga de transformarlo a otro documento PDF, imagen, etc

Documento XML (de base) + Documento XSL (.xsl o .xslt) (donde se define la transformación que queremos) > Procesador XSLFO (APACHE FOP) > Documento PDF

23
Q

¿Cómo se llama al conjunto o familia de API´s de parseo y transformación de XML?

A

JAXP (Java API for XML Procesing)
- SAX (parseo)
- DOM (parseo)
- XSLT (transformación)
- StAX (parseo)

24
Q

¿En qué consiste el API del DOM?

A

Cuando el XML de datos se pasa por un parser de tipo DOM, se genera un árbol de objetos JAVA en memoria, que tiene un interface base “padre” llamado Node y del que heredan Element, Attr y Text + document (nodo raíz del árbol DOM). El árbol lo podemos modificar añadiendo nuevos nodos, eliminando o modificando.

25
¿El API del DOM es de Java?
No es exclusivo de Java, si no de la W3C, pero Java lo incorpora
26
¿Qué es document dentro del API del DOM?
Es un objeto instrumental que da funcionalidades de búsqueda y creación de nodos. Es la interfaz raíz y el punto de entrada principal para acceder a cualquier elemento de una página web cargada en el navegador. Es como la puerta o puente para que JS interactúe con el árbol DOM.
27
¿Cuál es la pega del API del DOM?
Que puede ocupar mucho en memoria si nuestro XML es muy grande
28
¿Cuál es la ventaja del API del DOM?
Libertad absoluta a la hora de búscar y navegar
29
¿En qué consiste SAX?
Si el XML de datos lo pasamos por un parser de tipo SAX, genera un flujo de eventos hacia una clase definida previamente. Los distintos eventos son -startDocument -endDocument -startDocument -endDocument, etc avisa por todo evento
30
¿Cuál es la pega del API SAX?
Que al ser Forward-Only (sólo hacia adelante), no hay disponibilidad de recorrido o navegación
31
¿Cuál es la ventaja del API SAX?
Que es más rápido y para XML grandes es la mejor solución
32
¿Cuál es otra tecnología de Java, a parte de JAXP, que consiste en una API específica de Data Binding (enlace de datos), que se centra en mapear directamente clases Java a esquemas XML, facilitando la conversión de XML a objetos Java y viceversa, y a menudo se usa en conjunto con JAXP o APIs de servicios web como JAX-WS?
JAXB (B de Binding) Tratar con XML a alto nivel
33
¿En qué consiste el parser de tipo JAXB?
Este Parser genera del documento XML un árbol de objetos en memoria, pero al contrario que el DOM, estos objetos serán de clases de tu modelo de dominio (Ej. Factura, Empleado, etc) JAXB tiene la capacidad de serializar las referencias de objetos Java a XML y a la inversa, es decir, deserializar XML en objetos Java, con lo cual, realiza el marshalling (objeto a XML) y unmarshalling (XML a objeto). Serializar: Convierte objeto en bytes/string/archivo (para guardar o enviar) Deserializar: Convierte bytes/string/archivo en objeto (para usarlo). 
34
¿Cómo se llama el proceso del parser de generar el árbol de objetos, a partir de un XML ?
Unmarshall XML -> levantar los objetos JAVA en memoria
35
¿Cómo se llama el proceso del parser de generar el XML, a partir del árbol de objetos?
Marshall Objetos JAVA -> generar el XML
36
¿Con qué otro API de JAXP se puede usar JAXB para no levantar en memoria todo el árbol de objetos?
Con StAX, ya que StAX + JAXB, nos permiten leer zonas concretas del XML y levantar, por lo tanto, un número razonable de objetos/nodos.
37
¿Qué es XPath?
Es un lenguaje de consulta que permite navegar y seleccionar nodos específicos de documentos XML y HTML. XPath es equivalente a los CSS Selectors.
38
¿Qué sintaxis consisten en lenguajes de marcado ligeros para formatear texto plano y por tanto hacer páginas muy sencillas con pocas marcas?
- Markdown (.md) - RestructuredText (.rest) - MediaWiki - AsciiDoc Siendo Markdown más simple y popular para documentos rápidos y READMEs
39
Herramienta editor de Markdown
Typora
40
En cuanto a JSON: - Estándar de JSON - Tipo MIME de JSON - Tipos de datos
- Estándar ECMA 404 - Tipo MIME : application/json - Tipos de datos: Object, Array, Number, String, True, False, null Nota: lenguaje Schema-Less nativo para JS, es decir, no tiene gramática.
41
¿Qué sintaxis se usa en JSON para los tipos de datos true, number, string...?
- Para true, false, number o null, no hay dobles comillas - String (cadenas) y Atributos entre dobles comillas - Objetos (colecciones de pares clave-valor) entre llaves - Arrays (listas ordenadas) entre corchetes - Las claves (nombres de campos) deben ser cadenas entre comillas dobles, seguidas de dos puntos : y su valor, separando cada par con comas. ej: Objetos: { "clave1": "valor1", "clave2": 123, "clave3": true }. Arrays: [ "valorA", 456, { "clave": "valor" } ].
42
Librerías JSON
Jackson y GSON (de google este último)
43
APIs de programación JSON
JSON-B y JSON-P
44
¿Qué es JSON?
JSON (JavaScript Object Notation) es un formato de texto ligero, estructurado y fácil de leer, utilizado para almacenar e intercambiar datos entre sistemas, principalmente entre un servidor y aplicaciones web
45
Qué debemos saber de YAML
* Acrónimo recursivo: YAML Ain't Markup Language (YAML no es un lenguaje de marcado), diseñado para enfatizar que es un formato para estructurar datos y no documentos * Formato de serialización legible por humanos * Muy usado como fichero de configuración. Ejemplos: Swagger/OpenAPI para documentar una API’s rest o un Ansible playbook
46
Uso importante o destacado para JSON
Un uso muy importante sería en el ámbito de la seguridad, para autenticación web (JWT): el cliente lo envía al backend en cada petición usando la cabecera Authorization: Bearer eyJhbGci…
47
¿Qué lenguaje funcional, estandarizado por el W3C, está diseñado específicamente para consultar, manipular y transformar datos estructurados o semiestructurados en formato XML, y a menudo es descrito como el "SQL para XML"?
XQuery (similar a SQL)
48
Herramienta/utilidad de compilación de la JDK de JAVA que genera automáticamente clases Java a partir de un esquema XML (XSD).
XJC
49
¿Por qué YAML no se considera un lenguaje de marcado?
Porque su propósito principal es la serialización de datos (estructurar información), no la maquetación de documentos como HTML o XML
50
Estándar de alto nivel en Java para convertir automáticamente objetos Java a/desde JSON (serialización/deserialización)
JSON-B (Binding)
51
API de Java de bajo nivel para generar, analizar y manipular datos JSON directamente
JSON-P (Processing)
52
Diferencia entre JSON-B y JSON-P
**JSON-B** (Jakarta JSON Binding): facilita la conversión automática entre objetos Java (POJOs) y documentos JSON, ideal para trabajar con datos estructurados y tipados en Java. **JSON-P** (Jakarta JSON Processing): sirve para procesar, parsear y manipular documentos JSON sin necesidad de mapearlos a objetos Java, permitiendo un manejo más fino del documento.