Tema_8_XML Flashcards

1
Q

Datos sobre JSON:

A
  • Lenguaje Schema-Less, nativo para JavaScript y muy utilizado para intercambio de datos. Basado en atributo-valor.
  • Estandar ECMA 404 e ISO 21778
  • Tipo MIME: application/json
  • Tipos de datos: Object, Array, Number, String, true, false y null, estos tres últimos no llevan comillas.
  • Todos los atributos, siempre van entre dobles comillas.
  • Librerías para procesar JSON: Jackson y GSON
    Librerías Jackson & Gson C.O.
  • API’s de programación: JSON-B y JSON-P
  • Un uso importante sería la seguridad, para autenticación web (JWT)
  • Si se abre un {, es un OBJETO
  • Si se abre un [ { es un ARRAY DE OBJETOS.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

¿Qué es el prólogo de un XML?

A

Es la primera línea del código.

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

¿Qué significa PUBLIC ó SYSTEM en el DTD?

A

PUBLIC. Son públicas. Se va a usar en red o internet.

SYSTEM. Son privadas. Se va a usar a nivel LOCAL

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

¿Donde se ponen comillas dobles en JSON?

A

En las properties, por ejemplo: “edad”:……
En las cadenas de caracteres, por ejemplo: “nombre” : “Pablo”

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

¿Que es un !ELEMENT en XML?

A
  • Lo vemos cuando se define la gramática en DTD.
  • Nos da el nombre de la etiqueta ROOT
  • Va enumerando las etiquetas que pueden aparecer en el XML que están validando.
  • Son EXTENSIBLES
  • Se declaran en el DTD
  • NO CONFUNDIR CON xs:element, que es lo mismo, pero en XSD.

Por ejemplo:

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

¿Donde NO se ponen dobles comillas?

A

En TRUE, FALSE y NULL.

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

¿Qué dos recomendaciones tenemos para transformar un XML en otra cosa?

A

XSLT y XSLFO

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

Espacios de nombres..

A

Para diferenciar etiquetas con el mismo nombre, pero con datos diferentes en su interior. Por ejemplo en la foto tenemos dos elementos “table”, pero su contenido es muy diferente.

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

¿Como es la sintaxis de JSON?

A
  • Los OBJETOS se abren con llaves, como {
  • Después ponemos nombres o atributos entre comillas SIEMPRE.
  • Si queremos anidar un objeto dentro de otro, se abren más llaves {
  • Los Arrays se abren con corchetes[

ejemplo:

var objetoJSON = {“usuario”:”user”,”password”:”123456”};

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

¿Qué es Marshalling?

A

También conocido como SERIALIZACIÓN.
Es el proceso de transformar un objeto o una serie de datos, en un formato que pueda ser almazenado en una ubicación secundaria o transmitido por la red. Como en la película TRON.

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

¿Qué es un XML válido?

A

Cumple las reglas de la GRAMÁTICA especificadas en el DTD o XSD
O la estructura que hemos validado.

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

¿Qué es un XML bien formado?

A
  • 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. Ejemplo: <etiqueta/> llamada Empty Element
  • Los nombres de las etiquetas pueden ser alfanuméricos, pero siempre comenzando con una letra.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

¿Qué es Unmarshalling?

A

Se realiza en la parte del receptor y es el proceso de reconstruir el mensaje que ha recibido en formato estandar, al lenguaje que necesita para trabajar. Es un proceso más complicado que Marshalling.

Pasar de XML a Clases java.

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

¿Que tipo MIME tiene XML?

A

Hay dos:

APLICATION/XML

TEXT/XML

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

¿Qué otra tecnología hay parecida a DTD y XSD, en JSON, para validar sus datos?

A

Los JSON SCHEMA

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

¿Qué es XML?

A

Es un METALENGUAJE

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

¿Qué es YAML?

A

Es una especie de evolución de JSON. Se usan los dos actualmente.

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

¿Como es el proceso de transformación con XSLT?

A

Se funde un XML con un XSLT para dar lugar a otro archivo de etiquetas, como HTML.
Permite separar CONTENIDO de PRESENTACIÓN.

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

¿Donde podemos encontrar los !ELEMENT en XML?

A
  • De forma externa en el DTD o el XSD y hay que añadir el enlace a ellos.
  • De forma interna, en el encabezado del XML.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

¿Como es el proceso de transformación con XSLFO?

A

Se funde un XML y un XSLFO, para dar lugar a otro archivo, por ejemplo PDF.
En el documento XSL-FO, figuran tanto los datos como el formato que se les va a aplicar.

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

Documentos de validación de un documento XML:

A
  • DTD
  • XSD
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

¿Qué es JAXB?

A
  • Un API de XML.
  • Se usa como SAX y DOM, para recorrer un XML y sacar su información.
  • Cuando transforma el XML a un árbol de objetos, para trabajar con el, esto se llama UNMARSHALL
  • Cuando transforma el árbol de objetos a un XML, esto se llama MARSHAL (Serializar)
  • JAXB, tiene la ventaja de que en el árbol que crea, las etiquetas tienen el nombre de las nuestras y no las genéricas de DOM.
  • Java Architecture for XML Binding (JAXB) permite a los desarrolladores Java asignar clases de Java a representaciones XML.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

¿Que es ECMA 404?

A

Es JSON. Un lenguaje ligero, para definir Data Interchange Formats.

Deriva de ECMAScript

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

¿Qué restricciones añade XML respecto de SGML?

A
  • Todas las etiquetas tienen que llevar cierre (inclusive las empty elements)
  • Los atributos deben ir entre comillas
  • Es CASE-SENSITIVE → COLOR no es lo mismo que color.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Q

¿Qué es XPath?
[https://www.freeformatter.com/xpath-tester.html]

A
  • Es similar a los SELECTORES CSS
  • Son para hacer SELECCIÓN
  • XPath, permite construir expresiones que recorren y procesan un documento XML, en el que busca y selecciona aquello que le hemos dicho.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
26
Q

¿Que significa en el prólogo de XML, la palabra STANDALONE?

A

Nos indica si la gramática, la podemos validar con el propio XML o tenemos que recurrir a un archivo externo.
Su sintaxis sería STANDALONE=”YES” o STANDALONE=”NO”
YES = Cuando la gramática está contenida dentro del XML.
NO = Cuando la gramática está en un documento externo, que puede ser un DTD O XSD

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

¿Cual es el Tipo/Mime de XHTML?

A

application/xhtml+xml

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

¿Qué es un EMPTY ELEMENT?

A
  • Es una etiqueta que se abre y se cierra en la misma línea.
  • Un EMPTY ELEMENT puede tener atributos.
  • ejemplo: <etiqueta/>
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
29
Q

Dí cuales son las reglas que tiene que seguir !ELEMENT para estar bien formado.

A
  • Element names are case-sensitive
  • Element names must start with a letter or underscore
  • Element names cannot start with the letters xml (or XML, or Xml, etc)
  • Element names can contain letters, digits, hyphens, underscores, and periods
  • Element names cannot contain spaces
30
Q

¿Se pueden añadir más etiquetas a un Element que ya está formado?

A

Si. Por eso es Extensible.

31
Q

¿Qué significa XSD?

A

XML Schema Definition

32
Q

¿Qué son SAX y DOM?

A
  • Son API’s de XML.
  • SAX, que significa “Simple API for XML”, API, para usar XML en JAVA.
  • Sirven para recorrer un XML, buscando información.
  • DOM, genera del XML, un árbol de objetos, que llamamos NODOS. También tiene especializaciones delos nodos, como, Element, Attr, Text y Document.
  • SAX, lee el XML, de principio a fin, sin pausas, pero va avisando de los eventos que encuentra
33
Q

¿Quién estandariza XML y de donde deriva?

A

Es un estandar de la W3C
Deriva de SGML

34
Q

¿Qué es un documento bien formado y válido?

A

Que cumpla con la sintaxis de XML, para estar bien formado
Es válido cuando cumple con DTD o XSD

35
Q

¿Como es la declaración del DTD dentro del XML?

A

Sería como en la captura, pero adaptándolo con los nombres y el número de ellos que necesitemos.
El primer “note”, es el elemento ROOT y TO, FROM etc, las etiquetas hijas del ROOT.

36
Q

¿Que es una ENTIDAD en XML?

A

Se representa con “&texto;” ó “%texto;” y significa que ahí se va a poner otra cosa.

37
Q

¿Qué lleva dobles comillas siempre en JSON?

A

Las cadenas de carcactéres.

38
Q

¿Como es el funcionamiento del API del DOM?

A

Genera un árbol con los datos.

39
Q

¿Qué es XQuery?

A

Lenguaje de programación, para extraer datos de un XML. Utiliza expresiones similares a SQL conocidas como FLWOR, que equivale a:

FOR

LET

WHERE

RETURN

XQuery dió lugar a un subconjunto que es XPath.
Con XQuery, se puede construir un nuevo XML con los datos adquiridos en la consulta.

40
Q

Di tipos de datos de JSON

A

String

Boolean

Array

Object

Null

Number

41
Q

¿Qué significa JSON?

A

JavaScript Object Notation

42
Q

¿Qué es JSON?

A

Es un formato de datos basado en texto que sigue la sintaxis de JavaScript. Se usa mayormente para intercambiar datos.

43
Q

JSON es una cadena de datos. Pero si lo tenemos que convertir a un objeto nativo de JavaScript, como se llama al proceso?

A

PARSING
Un PARSER, es un analizador sintáctico.

44
Q

Si tenemos que convertir un objeto nativo de JavaScript, a cadena de caracteres, se llama…

A

STRINGIFICATION
El comando de JavaScript concretamente es:
JSON.stringify

45
Q

¿Qué tipos de entidades hay en XML?

A
  • Entidad Interna, Macro o Constante de Texto. Empieza por &.

Ejemplo: !ENTITY nom “Juan Pérez López”. Así, si escribo &nom, me pone Juan Pérez. Existen 5 tipos de entidades internas predefinidas que están en un cuadro en otra pregunta.

  • Entidad de parámetros. Solo pueden aparecer en el DTD. Empieza por %
  • Entidad Externa

Ejemplo:

En el DTD:

!ENTITY escritor “Perico el de los Palotes”

En el XML:

autor &escritor /autor = Perico el de los Palotes

46
Q

¿Qué tipo de entidades podemos encontrar con &?

A
47
Q

¿Qué son JWT?

A

JSON web tokens

Estandar abierto basado en JSON propuesto por IETF para la creación de tokens de acceso que permiten la propagación de identidad y privilegios o “claims”.
Consta de HEAD, PAYLOAD Y SIGNATURE.
Se SERIALIZA, usando Base64.

48
Q

¿Como es la declaración externa del DTD ?

A

Hay que añadir una referencia al DTD externo:

49
Q

¿Para qué usamos ! [CDATA[Texto]] en xml?

A

Para decirle que el texto que sigue, NO lo tiene que interpretar, que lo tiene que leer tal cual.
Se escribe: <![CDATA[ Texto que no se analiza]]>

50
Q

¿Como podemos solventar un conflicto de etiquetas con el mismo nombre?

A
  • Se usa el ESPACIO DE NOMBRES, QUE NO ES MÁS QUE UN PREFIJO.
  • Se le pone un prefijo a la etiqueta y se declara como sigue:
  • <root xmlns:h="http://uri-a" xmlns:f="http://uri-b">
  • <h:tag1>......</h:tag1>
  • <f:tag1>.......>/f:tag1>
51
Q

¿Como funciona el Marshalling?

A

El mensaje del emisor, se convierte a un formato estandar y este, en la parte del receptor, este se encarga de convertirlo al formato que necesite.

52
Q

¿Que formatos estandar tenemos para hacer el Marshalling?

A
  • CORBA
  • SERIALIZACIÓN DE JAVA - Se genera una secuencia de bytes lista para su almacenamiento y transmisión.
  • XML
53
Q

¿Qué significa XML?

A

eXtensible Markup Language

54
Q

¿Para qué fué diseñado XML?

A
  • Para almacenar y transportar datos. Y para ello, es independiente del software y del hardware.
  • Es autodescriptivo.
  • Es una recomendación de la W3C.
55
Q

¿Cual es la estructura de un XML?

A

Se empieza por el prólogo:
<!-- Esto es un comentario -->
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE empleados SYSTEM "empleados.dtd">

Y lo siguiente es el elemento ROOT y por debajo están los hijos y subhijos.

El elemento ROOT, es el padre de todos los elementos.

<root>
<child>
<subchild>…..</subchild>
</child>
</root>

OJO***El prólogo no tiene / de cierre.

56
Q

¿Qué debemos usar obligatoriamente, cuando ponemos prefijos, para solventar conflictos de nombre?

A

Debemos DEFINIR ESPACIOS DE NOMBRES, para cada prefijo que pongamos.

El ESPACIO DE NOMBRES debe ser definido en un ATRIBUTO XMLNS, en la etiqueta de apertura del elemento. Y tiene la sintaxis: xmlns:prefijousado=”URI”

57
Q

¿Qué es XMLHttpRequest?

A

Es un objeto para recojer datos de un servidor.

Lo solemos encontrar integrado en los navegadores modernos.
Se usa en AJAX.

58
Q

¿Qué tiene que cumplir un XML, para poder hacer una búsqueda en él?

A

Tiene que estar cargado en el DOM

59
Q

¿Qué hace la siguiente expresión?

xmlDoc.getElementsByTagName(“title”)[0].childNodes[0].nodeValue;

A
  • xmlDoc - the XML DOM object created by the parser.
  • getElementsByTagName(“title”)[0] - get the first element
  • childNodes[0] - the first child of the element (the text node)
  • nodeValue - the value of the node (the text itself)
60
Q

¿Cuales son los métodos de XML DOM?

A
  • x.getElementsByTagName(name) - get all elements with a specified tag name
  • x.appendChild(node) - insert a child node to x
  • x.removeChild(node) - remove a child node from x
61
Q

¿Qué se utiliza para enlazar en XML?

A

Se usa DOCTYPE
Por ejemplo, para enlazar con el DTD, se pondría:
<!DOCTYPE empleados SYSTEM “empleados.dtd”>

62
Q

¿Qué es XHTML?

A

Básicamente es un HTML expresado como un XML.

63
Q

Comentar en XML

A
<!-- esto es un comentario -->
64
Q

¿Qué es #PCDATA?

A

Nos dice que dentro de la etiqueta/elemento, va a ir texto.

65
Q

Definición de gramática con DTD

A
  • Definimos el elemento ROOT, con <! DOCTYPE deportistas ]
  • Con #PCDATA, decimos que lo que va ahí es solo texto. NO ETIQUETAS.
  • Con ANY (mixto), si podemos mezclar TEXTO con ETIQUETAS/ELEMENTOS
  • Con EMPTY, va vacío.
66
Q

En XML, ¿Qué son ID e IDREF?

A

Son como Clave Primaria y Ajena.

67
Q

Otros Lenguajes de marcas ligeros:

A
  • MARKDOWN –> .md
  • RESTRUCTUREDTEXT –> .rst
  • YAML –> Que se usa, para, DEFINIR UN API REST, PARA HACER UN PLAYBOOK DE ANSIBLE Y PARA DOCKER COMPOSE. TAMBIÉN PARA SERIALIZAR.
68
Q

Definición de gramática con XSD y enlace al XSD:

A
  • Hay que poner xmlns:xsi, donde xsi es XMLSchema-instance
  • Ejemplo: <aeropuerto xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  • xsi:noNamespaceSchemaLocation="aeropuerto.xsd">
69
Q

Ejemplo de un archivo XSD:

A
  • Usamos un XSD, para construir la estructura y elementos de nuestro XML
  • Con xs:all, las etiquetas pueden ir en cualquier orden
  • Con xs:sequence, las etiquetas tienen que seguir un orden.
  • minOccurs=”0” es que puede tener valor cero, osea, no tener ningún valor
  • maxOccurs=”unbounded”, 0 o muchos.
70
Q

¿Qué es Apache Xerces?

A
  • Es un PARSER, para validar y manipular XML’s
  • Trabaja con SAX y DOM