XML Flashcards

(35 cards)

1
Q

Que es XML. Siglas. Características de XML

A

(Extensible Markup Lenguage)
- Es un metalenguaje que permite definir lenguajes de marcas (Conjunto de reglas para construir lenguajes)
- Es un estandar de las W3C
- Deriva de SGML

  1. Características:
    - Añade restricciones a SGML para simplificarlo
    - Todas las etiquetas tienen que llevar cierre (Incluidas los empty elements)
    - Los atributos deben ir entre dobles comillas
    - Case-Sensitive (Mayúsculas)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Características de SGML

A
  • Introduce el concepto de documento válido segun una gramatica DTD
  • NO case sentitive
  • NO obliga a cerrar etiquetas
  • en algunos casos, Se puede OMITIR comillas en los atributos
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Concepto de DTD? Concepto de XSD? Diferencias y similitudes

A

(Document Type Definition)
1. Sirve para validar la gramatica de un XML
- Sintáxis propia
- Antiguo y poco flexible en cuanto a definición de datos, restricciones…
- NO soportan espacios de nombre

(Schema Definition)
2. Sirve para validar la gramatica de un XML
- Construidos en lenguaje XML (sintaxis)
- Moderno
- Muy flexible

-> Con los 2 modemos definir nuestras etiquetas particulares

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

Cual es la declaración de un DTD? Como va el resto del DTD?

A
  1. Siempre se empieza por <!DOCTYPE nombre> -> ‘‘nombre’’ es como se va a llamar el elemento Raíz.
  2. Entre corchetes <!DOCTYPE nombre […..]>
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Como se pone un elemento (etiqueta) en un DTD? características especiales

A

con la declaración <!ELEMENT nombre()> (Varios valores con or(|)…)
- puede tener cardinalidad con “*” para cero o muchos; “+” para uno o muchos; o ‘’?’’ para 0 o 1;
- si dentro de un element esta (#PCDATA) -> solo texto (NO etiquetas!!)
- Si esta ANY puedes poner cualquier tipo
- Si esta EMPTY esta vacío

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

Como se indica que un Element tiene atributos? formas de ponerlas?

A

Con la declaración <!ATTLIST … >
- con CDATA -> Solo texto
- Con #IMPLIED y #REQUIRED si es o no obligatorio
- Tenemos forma de que funcione como un ID o como un IDREF (parecido a claves primaria/agena)

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

Como relacionamos nuestro XML de datos con nuestra gramática (.xsd) y por que se hace esto?

A
  1. Creando un espacio de nombres xsi (aunque es modificable)
  2. Para evitar las posibles ambiguedades que se puedan dar
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

De que forma se puede indicar que un elemento puede tener hijos? y de que forma se ponen los hijos en un XSD?

A
  1. Con complexType
  2. con element
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Que es un Simple element en un XSD? que tipos de datos pueden tener? Que tipo de declaración pueden tener?

A
  1. Simple Element:
    - Solamente pueden contener texto
    - No pueden contener a otro u otros elementos hijo
    - Ni tampoco pueden tener atributos
  2. Primitivos (String, boolean, decimal…)/derivados (integer, ID, IDREF)
  3. Declaracion:
    - Fixed -> valor es fijo
    - Default -> especificas un valor por defecto
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Como se define un Atributo? tipos de declaración de atributos:

A

< pref:attribute name=”nombre” type=”tipo”/>

  1. Tipos de declaración:
    - Fixed -> el valor del atributo es fijo
    - Default -> valor por defecto
    - optional/required -> Indica si es o no obligatorio
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

A que se conoce como restricción(facetas) en XSD? cuales conoces?

A
  1. Permiten definir restricciones sobre los posibles valores de atributos o elementos
  2. debemos saber:
    - xs:length -> Especifica una longitud fija
    - xs:minLength -> Especifica una longitud mínima
    - xs:maxLength -> Especifica una longitud Máxima
    - xs:pattern -> Especifica un patrón de caracteres admitidos (El valor tiene que ser una expresión regular)
    - xs:enumeration -> Especidica una lista de valores admitidos
    - xs:whiteSpace -> Especifica como debe tratar los posibles espacios en blanco, las tabulaciones, los saltos de línea y los retornos de carro
    - xs:maxInclusive -> Especifica que el valor debe ser menor o igual que el indicado
    - xs:maxExclusive -> Especifica que el valor debe ser menor que el indicado
    - xs:minInclusive -> Especifica que el valor debe ser MAYOR o igual que el indicado
    - xs:minExclusive -> Especifica que el valor debe ser MAYOR que el indicado
    - xs:totalDigits -> Especifica el n°máx de digitos que puede tener un Número
    - xs:fractionDigits -> Especifica el n°máx de decimales que puede tener un Número
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

A que conocemos por Elementos Complejos? tipos de elementos complejos. Como se pone más de un mismo hijo (Indicadores de ocurrencia)

A
  1. Un complexType es cuando contiene uno o más elementos y/o atributos
  2. los ComplexType pueden ser:
    - Elemento complejo vacío:
    –> no contiene ni elementos ni texto.
    –> Aunque sí debe tener al menos 1 atributo
    - Elemento con contenido mixto (mixed=true):
    –> Puede contener uno o más elementos
    –> Además de texto
    –> Podría tener o no atributos
  3. Para poner más de un hijo del mismo tipo se puede poner:
    - directamente con -> MaxOccurs=”unbouded” o MaxOccurs=*
    - Con un intervalo -> minOccurs=”1” MaxOccurs=”5”
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Concepto de extensión en XSD? se puede en atributos simples?

A

Permite definir restricciones a elementos que solo contienen datos
- Se pueden extender los tipos simples
–> Y los Complejos: se hace utilizando la etiqueta <xs:extension> dentro de <xs:complexContent></xs:complexContent></xs:extension>

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

Que tipos de Indicadores de Orden conoces en XSD?

A
  • Sequence: Orden obligatorio
  • All: Cualquier Orden
  • Choice: puedes elegir cualquiera de los 2
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Como es la declaración de un XML? es opcional? Que significa standalone?

A

-> <?xml version=”x.x” encoding=”xxxx” Standalone=”no”?>
- version –> OBLIGATORIO
- encoding –> forma en la que va codificado ej. UTF-8 –> OPCIONAL (importante porque XML es texto)
- standalone –> Indica si el DTD esta en un fichero externo o no

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

Como se escriben comentarios en XML

A

<!-- (apertura)
-->

(cierre)

17
Q

Concepto de Element(elemento) en XML?

A

Es a como se llaman en XML a las “etiquetas”

18
Q

Concepto de entidad en XML? lista de los que debemos conocer

A

Hay caracteres que a xml no le “gusta” poner como contenido de una etiqueta. para eso existen las entidades:
- conjunto de caracteres que cuando el parser lo lea lo “traduzca” a uno de esos caracteres
- hay muchos predefinidos

  1. Lista:
    & –> “&”
    > –> “>”
    < –> “<”
19
Q

Para que sirve la construccion de “<! [DATA[…]]” en XML ?

A

Es un bloque donde el parser no analice ese texto (puedes poner cualquier cosas) (sirve para alguna cosas más pero no lo da)

20
Q

Qué reglas debe cumplir un XML para que sea un XML bien formado?

A
  • Sólo existe un único elemento RAIZ
  • Todos los elementos se encuentran anidados
    –> y completamente cerrados
  • Los valores de atributos deben ir entre comillas simples o dobles (+ usado)
  • Los elementos vacíos (empty elements) deben terminar con “ / “ (autocierre) o añadiendo una etiqueta fin
    -!!> Los nombres de las etiquetas PUEDEN ser alfanuméricos, pero siempre COMENZANDO por una letra, con “ : “ o “_” (Estandar Oficial)
21
Q

Como sabemos si es un XML válido? con que podemos saber si un XML es válido? Productos:

A
  • Debemos saber la gramatica (para poder saberlo).
    –> Tiene que cumplir con las reglas de la Gramática especificadas en el DTD/XSD
  1. Con un parser, debes aplicar también la gramática
    - Libreria Xerces -> parser XML
22
Q

Concepto de Espacio de Nombres en XML? Como se construyen?

A
  • Es un prefijo que se le pone a una etiqueta (En verdad es un Element) para indicar un cierta temática
  • Con esto eliminamos la posible ambiguedad que se puede dar si tenemos 2 etiquetas con el mismo nombre
  • Los DTD NO soportan espacios de nombre
  1. <root> --> para dar de alta el prefijo 'h' usamos el xmlns y necesitamos una uri (Puede ser no válida) solo a efectos de identificar
    </root>
23
Q

Que transformaciones XSL conoces. para que sirven? De quién es el estandar? Que pegas tienen estos modelos?

A
  • Con XSL - T(rasnfotmation) + un XML a traves de un Proccesor (Apache Xalan) podemos obtener otro documentos de marcas
  • Con XSL - FO (Formatting Object) + un XML a través de un print formatter(Apache FOP (librería java) o Passive Text) obtendríamos un PDF, Imagen, etc…
  1. de la W3C
  2. La pega es que consumen mucha memoria
24
Q

Que API’s de tipo JAXP (analizadores) conoces? hay algún paquete común para alguno de estos?

A

(Java API for XML Processing) –> conjunto de ellas
- XSLT (también dej programar) (javax.xml.transform)
- DOM
- SAX } particulares de Java
- StAX }

  1. Sí, una común para los SAX y para DOM parsers esta javax.xml.parsers
25
API de programación DOM. Qué es? Qué podemos hacer? Desventajas. Concepto de "Node". Especializaciones de Node. Nombre del Paquete?
1. Especificación de W3C (Java lo incorpora) 2. Uso: - El parser (Apache Xerces) genera del documento XML un Árbol de objetos en memoria --> Podemos ir añadiendo, eliminando o modificando nodos --> Tenemos libertad absoluta para recorrer dicho árbol 3. Puede llegar a ocupar mucha memoria si el árbol es grande 4. Node -> es el tipo/inteface padre de todos los nodos 5. Especializaciones: (heredan de Node) - Element - Attr (atributos) - Text - Document (Instrumental ->Búsqueda/creación de nodos) 6. org.w3c.dom
26
API SAX. Uso? Tipos de eventos? Ventajas/Desventajas de este método? Nombre del Paquete?
1. Particular de Java 2. Uso: - El Parser (Apache Xerces) comienza a leer el documento y le envía a una clase en la que se han definido previamente los distintos eventos que detecta (Genera un flujo de eventos hacia una clase Java tuya (listener)) 3. Eventos: - Inicio del documento - Inicio de etiqueta - lectura de Texto - Cierra la etiqueta 4. Funciona Fordward-Only, no tenemos posibilidad de ningún recorrido, pero es el más rápido de todos 5. org.xml.sax
27
API JAXB. Uso? Diferencia con DOM? concepto de xjc. Principal desventaja. En que consiste la variante con StAX*? Nombre del Paquete*?
1. Trata con XML a alto Nivel. Esta fuera del JAXP 2. Uso: - El parser genera del documento XML un arbol de objetos en memoria de tus clases del modelo (unmarshal) y al reves, del arbol crear el XML (marshal) 3. Diferencia del DOM -> estos objetos serán de clases de tu modelo de dominio (Ej. factura, Empleado, etc...) 4. Con el compilador XJC (herramieta de linea de comando) de la JDK somos capaces de generar esas clases automáticamente de un XSD (Schema) 5. Desventaja -> Igual que el DOM. Posibles arboles en memoria muy grandes 6. StAX + JAXB -> Nos permite leer zonas concretas del XML y levantar un numero razonable de objetos/nodos 7. StAX --> javax.xml.stream
28
Que es XPath? y XQuery?
1. Otro estandar de la W3C para seleccionar nodos de un XML (Equivalente a los CSS selectors) te obliga a tener el arbol DOM? 2. Su equivalente a SQL (del ejemplo del vídeo) //foo:singer --> localiza nodos en cualquier nivel de profundidad del árbol //foo:singer/@id --> localiza los atributos
29
Que son markdown y restructureText? Cuáles son sus extensiones? Principal uso actual
1. Lenguaje de marcado ligeros 2. Extensiones: - Markdown -> .md - restructureText -> .rst 3. Principalmente para documentación en github
30
De JSON. Qué es y para que sirve? Estructura. Estandar. Que es JSON Schema?
1. Lenguaje Schema-less (sin gramática). Nativo para Javascript 2. Muy usado para intercambio de datos 3.Estructura de Atributo:valor (separas atributos por comas Ej. Atributo:valor, Atributo:valor) 4. ECMA 404 y (ISO 21778) 5. Iniciativa para darle sintaxís al JSON
31
Que tipos de datos existen en un JSON?
- Objects (subdocumentos) (Entre {llaves}) - Array (entre corchetes) (Pueden ser de diferentes tipos) - Number (NO van entre dobles comillas) - String - True/False (NO van entre dobles comillas) } "Tokens booleanos" - Null (Tampoco) }
32
Que librerias de JSON conoces para java?
- Jackson - GSON (Google)
33
Que API's de JSON tenemos para java? Curiosidad
- JSON-B (Alto nivel, convierte un json en una clase) - JSON-P (Bajo nivel, mas tedioso XD) 2. se crearon antes las librerias que las API's
34
Cual es el uso más importante en el ambito de la seguridad del JSON
Para autenticación web (JWT)
35
Sobre YAML
- (YAML Ain't Markup Language) (YAML no es un lenguaje de marcado) - Formato de serialización legible por humanos - Muy usado como fichero de configuración Ej. Swagger/openAPI para documentar una API's REST (Definir servicios REST)/ un Ansible Playbook/ Contenedores Docker