B3-T8 - XML Flashcards

1
Q

Principios de XML

A

1 - Todas las etiquetas tienen cierre
2 - Los atributos deben ir entre comillas simples o dobles
3 - Es case Sensitive

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

Reglas de un XML bien formado

A

1 - Solo existe un elemento raid
2 - Todos los elementos se encuentran anidados y correctamente cerrados.
3 - Los valores de atributos deben ir entre comillas simples o dobles.
4 - Los elementos vacíos deben terminar con ‘/’ (autocierre) o añadiendo una etiqueta de fin. Empty element.
5 - Los nombres de las etiquetas pueden ser alfanuméricos, pero siempre comenzando con una letra
6 - Comentarios: <!–- La declaración es opcional –>

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

¿Qué representa esta etiqueta? <role></role>

A

Un Empty Element

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

El nombre de la etiqueta <1Tania> ¿Es correcto?

A

No, son alfanuméricos pero siempre empieza por una letra.

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

¿Cuándo decimos que un XML es válido?

A

Atiende a la gramática, cumple con ella.
Las reglas se definen en un DTD/XSD ANTIGUO/MODERNO

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

¿Un documento XML que cumple con la gramática es válido o está bien formado?

A

Es válido

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

Se han detectado varios errores en la exportación XML de los diferentes listados de notas y le solicitan su ayuda. Sin tener en cuenta si la información está bien resprestnada, ¿Cuál de los siguientes XML está bien formado?

A

La opción buena es la C)
Está jugando con meter datos en un Empty Element, pero realmente solo pregunta si está bien formado.

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

¿Estaría bien formado este documento? <Nota></nota></Nota>

A

La etiqueta está mal porque xml es casesensitive.

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

Busca errores
<!xml versión=“1.0” encoding=“utf-8” standalone=“no” !>
<?DOCTYPE empleados SYSTEM “empleados.dtd”>

A

<?xml ?>
<!DOCTYPE

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

¿Que significa standalone=“no”?

A

Que la gramática está independiente. Por lo que se necesita un documento de gramática para validar
<!DOCTYPE empleados SYSTEM “empleados.dtd”>

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

¿Que significa standalone=“yes”?

A

El documento contiene dentro la gramática, no es necesario un documento extra .dtd

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

¿Que es un entity?

A

Un texto que va a sustituir una vez leído por ejemplo & que se sustituye por el texto que representa, en este caso ampersan.

El ampersan es un carácter reservado, si la ponemos con el Entity no se confunden.

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

¿Que hace <![CDATA[texto que el parser no analiza]]>?

A

El texto que va dentro de CDATA no se interpreta, se escribe como tal.

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

Está bien escrita esta etiqueta < [CDATA[texto que el parser no analiza]>

A

No.
Falta <![CDATA
FALTA un corchete de cierre al final
<![CDATA[texto que el parser no analiza]]>

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

¿Qué es un NAMESPACE/XMLNS?

A

Para poder utilizar etiquetas con el mismo nombre de diferentes grupos.
<root xmlns:h=“http://uri-a” xmlns:f=“http://uri-b”>

<h:tag1> ... </h:tag1>

<f:tag1> ... </f:tag1>

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

¿Que representa el asterisco en esta etiqueta DTD?<!ELEMENT deportistas (futbol | f1 | tenis)*>

A

Cardinalidad. 0 o muchos.
Una etiqueta deportistas puede tener dentro una de las etiquetas definidas, 0 o muchas.

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

¿Que representa el + en esta etiqueta DTD?<!ELEMENT deportistas (futbol | f1 | tenis)+>

A

Uno o muchos (1-n)

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

¿Que identifica (#PCDATA)?

A

Determina que esa etiqueta llevará dentro texto.

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

Si tengo el siguiente DTD estaría bien formado el xml de f1
<?xml version=”1.0” encoding=”UTF-8” standalone=“yes”?>
<!DOCTYPE deportistas [
<!ELEMENT deportistas (futbol | f1 | tenis)*>
<!ELEMENT futbol (#PCDATA)>
<!ELEMENT f1 (#PCDATA)>
<!ATTLIST f1 pais CDATA “España”>
<!ATTLIST f1 fecha_de_nacimiento CDATA #IMPLIED>
<!ATTLIST f1 equipo CDATA #REQUIRED>
<!ELEMENT tenis (#PCDATA)>
]>
<deportistas>
<f1 pais="Alemania" fecha_de_nacimiento="03/07/1987” ></f1>
</deportistas>

A

No. Faltaría:
El atributo equipo que es obligatorio
<f1 pais=”Alemania” fecha_de_nacimiento=”03/07/1987” equipo=”Ferrari”></f1>

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

¿Qué quiere decir ANY en la siguiente etiqueta?
<!ELEMENT tenis (#ANY)>

A

Que al definirlo puede llevar texto o número dentro

<deportistas>
<tenis>Rafael Nadal</tenis>
<tenis>25</tenis>
<deportistas>
</deportistas></deportistas>

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

En el tipo-de-contenido se especifica el contenido permitido en el elemento, pudiendo ser:

A
  • Texto, (#PCDATA).
  • Otros elementos (hijos).
  • Estar vacío, EMPTY.
  • Mixto (texto y otros elementos), ANY.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Es correcto:
<!DOCTYPE elemento-raíz declaraciones >

A

No, sería
<!DOCTYPE elemento-raíz [ declaraciones ]>

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

¿Es correcta la declaración de tipo de documento?
<!DOCTYPE elemento-raíz PUBLIC “identificador-público” “URI”>
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Strict//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd”>

A

Si

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

Los elementos (hijos) de un elemento (padre), deben escribirse en _________ en el que han sido declarados en la DTD.

A

el mismo orden

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

¿Puede un elemento vacío tener atributos?

A

Si

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

¿Cuáles son los operadores de carnalidad del xml?

A
  • ? (interrogación): 0-1
    • (asterisco): 0-n
    • (signo más): 1-n
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
27
Q

Para que se utiliza el operador de elección represando por la barra vertical |

A

Declarar elementos que contengan elementos opcionales.
<!ELEMENT deportistas (futbol | f1 | tenis)*>

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

Al utilizar el operador de elección (|) en una DTD, si una de las opciones es #PCDATA…..

A

esta debe escribirse en primer lugar.

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

¿Para que sirve ATTLIST en XML?

A

Para declarar atributos
<!ATTLIST nombre-del-elemento nombre-del-atributo tipo-de-atributo valor-del-atributo>

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

Corrige la siguiente declaración de atributo xml

<ATTLIST>
</ATTLIST>

A

<!ATTLIST f1 fecha_de_nacimiento CDATA #IMPLIED>

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

IMPLIED quiere decir…

A

atributo opcional

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

Los atributos ID y IDREF se asemejan a

A

clave primaria y ajena.
Usados con el GetElementebyid()

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

¿Qué es MARKDOWN?

A

Lenguaje de marcas para documentación. archivos (.MD)

34
Q

¿Competidor de MARKDOWN?

A

RESTRUCTUREDTEXT (.RST)

35
Q

¿Casos de uso de YAML?

A
  • Swagger/OpenAPI para documentar una API’s rest
  • Un Ansible playbook
  • Sirve para definir los contenedores de Docker Compose
36
Q

¿Que significa schema-less para JSON?

A

Schema-less(no tiene gramática, pero si bien formado

37
Q

Si queremos añadir gramática a JSON usamos…

A

JSON schema

38
Q

¿Cuál es el estándar de JSON?

A

ECMA 404

39
Q

Si nos encontramos con un elemento de este tipo en un documento JSON decimos que es un:
“company”: “mycompany”{}

A

Un Objeto, si está entre llaves.
También puede ser array si hay llaves y corchetes { [

40
Q

¿Cuándo se usan las dobles comillas en JSON?

A

Todo lo que va a la izquierda de los : lleva comillas

41
Q

¿En que tipos de datos no usamos “””?

A

Number, true/false, null

42
Q

¿Qué valores puede tomar un atributo en JSON?

A

OBJECT
ARRAY
NUMBER
STRING
TRUE
FALSE
NULL

43
Q

¿Cómo se representan los decimales con comas o puntos?

A

con puntos siempre.

44
Q

¿Que API´s de programación JSON conoces?

A

JSON-P y JSON-B

45
Q

¿Qué librerías de JSON conoces?

A

Jackson
GSON(google)

46
Q

Caso de uso de JSON para seguridad

A

TOKEN (JWT) (el cliente lo envía al backend en cada petición usando esta cabecera –> Authorization: Bearer eyJhbGci…)

47
Q

Revisa si este enlace del fichero XML con el fichero de gramática XSD y dime si es correcto

<aeropuerto>
</aeropuerto>

A

El tipo de espacio de nombres debe ser XSI de XMLSchema-instance

<aeropuerto>
</aeropuerto>

48
Q

¿Que significan las etiquetas <xs:all> <xs:sequence>?</xs:sequence></xs:all>

A

Con all puedo poner los elementos en el orden que quiera.
Con Sequence tengo que seguir el orden indicado en al

49
Q

¿Qué son minOccurs=”0” maxOccurs=”unbounded” en un XSD?

A

Operadores de carnalidad. Número de ocurrencias que pueden aparecer.

50
Q

Según la declaración

<marcadores>

El atributo noNameSchemaLocation permite referenciar a un archivo con la definición de un esquema que no tiene ningún...
</marcadores>

A

espacio de nombres asociado. En este caso, dicho archivo es “marcadores.xsd”.

51
Q

Que define la siguiente sentencia:
xmlns:mar=”http://www.abrirllave.com/marcadores”:

A

Un espacio de nombres

52
Q

Que valores puede tomar la propiedad elementFormDefault usada para definir espacios de nombres

A

qualifie <marcadores>
unqualifie(por defecto) <mar:marcadores....></mar:marcadores....></marcadores>

53
Q

Tipos de declaración de elementos simples

A

(fixed, default)

54
Q

Define el Xsd para <hora>18:29:45</hora>

A

<xs:element></xs:element>

55
Q

Define el XSD para el siguiente elemento y atributo

<curso>2</curso>

A

<xs:element></xs:element>

<xs:attribute></xs:attribute>

56
Q

Tipos de declaración de atributos

A

fixed, default, optional(por defecto), required

57
Q

Define un atributo requerido y otro fidex

A

<xs:attribute></xs:attribute>

<xs:attribute></xs:attribute>

58
Q

¿Para que sirven las Restricciones o facetas?

A

permiten definir restricciones sobre los posibles valores de atributos o elementos
EJEM: XS:LENGHT – Especifica una longitud fija

59
Q

¿Para qué sirve xs:whiteSpace?

A

Especifica cómo se debe tratar a los posibles espacios en blanco, las tabulaciones, los saltos de línea y los retornos de carro que puedan aparecer.

60
Q

¿Para qué sirve maxInclusive y maxExclusive?

A

Valor debe ser menor o igual que el indicado.
Especifica que el valor debe ser menor que el indicado.

61
Q

Define una faceta o restricción para un elemento llamado “mes” con la restricción de que el valor que tome no pueda ser menor que 1 ni mayor que 12:

A

<xs:element>
<xs:simpleType>
<xs:restriction>
<xs:minInclusive></xs:minInclusive>
<xs:maxInclusive></xs:maxInclusive>
</xs:restriction>
</xs:simpleType>
</xs:element>

62
Q

¿Que ventaja tiene definir un tipo con este formato?

<xs:element></xs:element>

<xs:simpleType>
<xs:restriction>
<xs:minInclusive></xs:minInclusive>
<xs:maxInclusive></xs:maxInclusive>
</xs:restriction>
</xs:simpleType>

A

El tipo numeroMes definido, podría ser utilizado por otros elementos, ya que, no está contenido en el elemento “mes”.
Por ejemplo para otras cosas que fuesen 12… apóstoles por ejemplo

63
Q

Nombra los indicadores de orden y para que se utilizan

A
  • xs:sequence sirve para especificar el orden en el que obligatoriamente deben aparecer los elementos hijo de un elemento,
  • xs:all sirve para indicar que dichos elementos pueden aparecer en cualquier orden.
  • xs:choice sirve para especificar que solamente se permite escribir uno de los elementos hijo.
64
Q

Nombra los indicadores de ocurrencia y para que se utilizan

A
  • maxOccurs y minOccurs permiten establecer, respectivamente, el número máximo y mínimo de veces que puede aparecer un determinado elemento. El valor por defecto para maxOccurs y minOccurs es 1.
65
Q

Nombra los indicadores de Grupo y para que sirven

A
  • xs:group sirve para agrupar un conjunto de declaraciones de elementos relacionados.
  • AttributeGroup sirve para definir un grupo de atributos. Por ejemplo.
66
Q

¿Que es un Processor?

A

API que fusiona XML Y XSLT para convertirlo en XHTML.
El resultado es otro documento de marcas.

67
Q

¿Para que sirveAPACHE xalan?

A

Es un Processor(xml+xslt–>XHTML)

68
Q

¿Para que sirve XSLFO?

A

Fusiona XML Y XSL para conseguir un documento pdf, imagen…
Ejemplo APACHEFO

69
Q

¿Qué es APACHE XERCES2?

A

Xerces2 es una librería de Apache que nos permite el parseo de documentos XML mediante la implementación de los estándares de parseo SAX y DOM

70
Q

Cual es la característica principal del API DOM

A

El Parser genera del documento XML un árbol de objetos en memoria que podremos modificar añadiendo nuevos nodos, eliminando o modificando.

71
Q

¿Cómo se llaman los elementos del arbol?¿Qué tipos de nodos hay?

A

Se llaman nodo y Todos son de tipo interface
Estos heredan de NODE
Element
Attr
Text
Document(Nodo instrumental)

72
Q

¿Cual es el nodo especial de la API dom?

A

El nodo Document, es un nodo instrumental, guarda toda la información del documento.

73
Q

¿Cómo se llama el API que nos ayuda a convertir los cambios en memoria del DOM a cambios reales que puedo imprimir por pantalla o enviar a un archivo?

A

API TRAX

74
Q

¿A que se llama UNMARSHAL cuando utilizamos el API JAXB?

A

Convertir el arbol de elementos xml en objetos de negocio y lo cargo en memoria.

75
Q

¿Cómo trabaja JAXB?

A

El 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).

76
Q

¿A que se llama MARSHAL cuando utilizamos el API JAXB?

A

Convertir el arbol de objetos de negocio en objetos XML

77
Q

¿Cuál es la herramienta de JAVA que crea las clases de negocio a partir del un XSD?

A

XJC
Con la utilidad XJC de la JDK somos capaces de generar esas clases automáticamente a partir de un XSD(la gramática)
Ejemplo xsd– de la factura electrónica.

78
Q

¿Qué hace la variante StAX de JAXB?

A

En lugar de levantar todo el árbol de objetos lo puede controlar el programador e ir leyendo por “trozos” esto sirve para cuando los archivos XML son muy grandes, evitar que el programa se demore

Por ejemplo de una factura leo solo las líneas de factura y levanto en memoria solo las partes que quiero.

79
Q

¿Para que sirve XPATH?

A

para “seleccionar” nodos de un XML llamado XPath (equivalente a los CSS Selectors)

80
Q

¿Dónde busca el selector //div de XPATH?

A

En cualquier nivel del arbol

81
Q

¿Que devuelve //actor[@id]?

A

Todos los elementos que tienen un atributo id.