B3-T8-XML Flashcards

1
Q

¿Que significa el atributo standalone=”yes” en el prólogo de un documento xml?

A

Que dentro del documento está embebido también el DTD.

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

¿Con que API de JAXP se crea un árbol de objetos en memoria de los tipos Node, Elment, Attr, Entidad, PCDATA y CDATA?

A

DOM

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

¿Cuál es el estándar que le corresponde a JSON?

A

ECMA 404

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

¿Qué tipos de datos soporta JSON?

A
  • boolean
  • string
  • numbers
  • object (para subdocumentos por ej.)
  • array
  • null

NOTA: NULL, BOOLEA Y NUMBER (cuando NO va encadenado), no van entrecomillados.

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

¿Con que API conseguimos transformar el documento XML en un árbol de negocio de objetos Java?

A

JAXB (Java Architecture for XML Binding = arquitectura Java para enlaces XML) También transforma el documento XML en un árbol, pero en este caso lo forman los OBJETOS de negocio, no NODOS como en el API DOM (Element,, Atribute, Text, Document) => este proceso de generar las clases Java lo realiza el compilador BINDING COMPILER (compilador vinculante).

NOTA: binding = vinculante.
El árbol de objetos se llama: CONTENT OBJECTS.

Proporciona 2 funcionalidades:
1. MARSHAL: la capacidad de serializar o transformar las referencias de objetos Java a XML: OBJETOS (Java)-> XML

2.UNMARSHAL: la inversa, deserializar XML en objetos Java: XML-> OBJETOS (Java)

En resumen, con programación Java te crea un código fuente XML (etiquetas), a través de las anotaciones que hacemos en el programa:

@XmlElement (name=”edad_cliente”)
String name;
Con este ejemplo, estamos diciendo que queremos que el atributo “name” se corresponda con la etiqueta “edad_cliente”.
, @XmlAttribute, Etcheverry

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

¿Con que lenguaje XML podemos llegar a generar PDF’s a partir de un XML de datos?

A

*XSL FO: (XSL Formatting Objects): a través del software “Processor” funde un documento XML con el documento XSL FO generando un documento de otro formato: PDF, SVG, PNG, PS, …, es decir, da formato a los datos del documento XML para presentarlos por pantalla o papel.

NOTA: hay 2 implementaciones en Java que implementan XSL-FO:

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

¿Qué es Xerces?

A

Es una colección de bibliotecas para análisis sintáctico, validación, serialización y manipulación de documentos XML.

Apache XERCES es un proyecto de Apache que implementa las API’s de JAXP (DOM, SAX y StaX).

*JAXP (Java Api for XML Processing)
Proporciona la capacidad de validar y analizar documentos XML.

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

Si analizamos con DOM un documento en XML, ¿en que se convierten los textos que hay entre una etiqueta de inicio y su correspondiente de fin?

A

En un nodo de tipo Text (paquete org.w3c.dom).

*Y los comentarios XML, se convierten en nodos de tipo Comment (paquete org.w3c.dom).

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

¿Quién se encarga del estándar SGML?

A

ISO

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

¿Qué representa en un documento XML cuando escribimos & ?

A

Es una entidad que el parser va a sustituir por el carácter especial &

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

¿Qué significa que un documento XML esté BIEN FORMADO?

A

Que está escrito de acuerdo a las siguientes reglas de XML:

  • Toda etiqueta tiene que tener un cierre, incluso las vacías ( <empty/ >)
  • Los valores de los atributos deben de ir entrecomillados
  • Las etiquetas tienen que estar correctamente anidadas (no se permiten cruces entre etiquetas cerrando etiquetas dentro de otras => cuando termina el contenido de una etiqueta se cierra y empieza la otra)
  • Todo documento debe contener una y solo una raíz (una para gobernarlos a todos)
  • xml es sensible a mayúsculas (CASE SENSITIVE)
  • xml no trunca múltiples espacios en blanco
  • Los nombres de las etiquetas pueden ser alfanuméricos, PERO SIEMPRE COMENZANDO POR: una letra, “-“ o “:”.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

¿Qué significa que un documento XML sea válido?

A

Que está perfectamente escrito conforme a su gramática (bien sea DTD o XSD).

NOTA: otra cosa sería que estuviera bien FORMADO (escrito de acuerdo a las siguientes reglas de XML)

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

¿Qué solucionan principalmente los Namespaces en XML?

A

La posible duplicidad en los nombre de las etiquetas cuando se trabaja con varias fuentes.

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

¿Cuáles son los tipos mime de XML y JSON?

A
  • Para xml tenemos: application/xml y text/xml
  • Para json tenemos: application/json
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Nombre dos librerías para manipular documentos JSON:

A
  • Jackson
  • GSON de Google
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

En la declaración DOCTYPE para asociar un DTD a un XML, ¿qué significa la palabra SYSTEM?

A

Que es un DTD que solo tiene sentido en un ámbito privado.

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

¿Qué tres elementos fundamentales podemos definir dentro de un DTD?

A
  • ELEMENT
  • ATTLIST
  • ENTITY
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Dentro de un JSON, ¿las PROPIEDADES tienen alguna sintaxis especial?

A

Si, todas van entre dobles comillas.

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

Nombre 8 tipos de datos que están disponibles en los XSD:

A
  • string
  • decimal
  • integer
  • byte
  • boolean
  • date
  • time
  • dateTime
  • duration
  • base64Binary (interesante para embeber un archivo binario en el xml)
  • positiveInteger
  • ID
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Cuando se define un XSD, ¿qué URI se utiliza para definir su espacio de nombres?

A

http://www.w3.org/2001/XMLSchema-instance

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

¿Cuál sería la expresión XPath para “seleccionar” todos los atributos PRECIO que están asociados con la etiqueta PRODUCTO?

A

//producto/@precio

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

En un DTD, a nivel de definición de atributos, ¿qué otras opciones tenemos a parte de #REQUIRED para especificar que son obligatorios?

A
  • # IMPLIED para definir que es opcional
  • # FIXED para dar una valor fijo
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

¿Las expresión FLWOR con que lenguaje XML tienen que ver?

A

Lenguaje XQuery

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

Si tenemos que realizar una lectura de un XML del cual nos dan su XSD, ¿qué pasos iniciales habría que dar para su procesamiento con JAXB y que herramienta hay que usar?

A

Habría que realizar un primer paso de generacion de las clases Java a patir del xsd para que el proceso de unmarshal se realice correctamente.
La herramienta está en la JDK y se llama xjc.

*XJC es una herramienta de linea de comandos del compilador de esquemas de JAXB que se puede utilizar para convertir un esquema XML (entre otro tipo de archivos como DTD o WSDL) a representaciones de clase.
Las clases se generaran junto a anotaciones del espacio de nombres javax. xml. bind.

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

En el contexto de JAXB, ¿a qué le llamamos realizar un marshal?

A

A generar un XML a partir de un conjunto de objetos java.

*En cambio, UN MARSHAL, es lo contrario = generar objetos Java deserializando el XML.

26
Q

Enumere las 3 API’s relacionadas con JAXP 1.4:

A

(Java API for XML Processing) es el API “estándar” para validar y analizar documentos XML.

Tiene tres interfaces de análisis básicas:

*La interfaz de análisis del modelo de objetos del documento o la interfaz DOM.

*La API simple para la interfaz de análisis de XML o la interfaz SAX.

*La interfaz Streaming API para XML o StAX.

27
Q

¿Qué funcionalidad nos ofrece el lenguaje xsl-t?

A

Mediante un xml de datos, una hoja xsl-t y un procesador xsl podemos generar otros documentos como por ej html

*XALAN
*SAXON

28
Q

Los procesadores XSLT de hojas de estilo se pueden usar como librerías de clases, o desde otros lenguajes, ¿conoces algún procesador o librería en Java especializada en el API XSL-T?

A
  • Xalan
  • Saxon

NOTA: En definitiva, la funcionalidad de los procesadores es la de convertir la información contenida en un archivo u objeto XML y uno XSL y transformarla en una aplicación HTML o un documento XML de almacenamiento de datos o un documento plano.

29
Q

¿Cómo comienza un documento XML?

A

<?xml version = “1.0” encoding = “UTF-8” standalone = “yes” ?>

*Donde “encoding” es el tipo de caracteres.

*Y “Standalone=yes, quiere decir que el documento XML es independiente, lo podemos manejar como un único fichero, YA QUE EN EL MISMO DOCUMENTO LLEVA LOS DATOS+GRAMÁTICA DE VALIDACIÓN (DTD o XSD)=>embebido.

Aunque, también pueden ir por separado y en este caso habría que referenciarlo:
<!DOCTYPE empleados SYSTEM empleados.dtd>

30
Q

¿En qué se diferencian un documento BIEN FORMADO (sintaxis XML) de otro VÁLIDO (según DTD y XSD)?

A

El documento “Bien Formado” es el que cumple las reglas de sintaxis XML (que las etiquetas se abran y cierren, que haya una etiqueta raíz, que los valores vayan entre comillas dobles, que es Case Sensitive, …)

En cambio, el “Válido”, es un documento de acuerdo a las reglas de construcción de una de las gramáticas: XSD o DTD.

31
Q

En XML, ¿para qué son los “Espacios de Nombres o NameSpace” y cómo se usan?

A

Es un sistema para evitar los nombres duplicados, por medio de prefijos.

1º Se declaran los prefijos, en este caso: h y f
<root xmlns: h= “http:// … “
xmlns: f= “http://…”
NOTA: xmlns => xml+name space

2º Se aplican:

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

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

32
Q

Dentro de un documento XML, ¿cómo podemos hacer que el parser no analiza cierta parte?

A

<! [DATA [ lo que vaya aquí DENTRO el parser no lo analiza ] ]

*Lo introducido dentro de un doble corchete.

NOTA: todos los navegadores tienen un “parse” incorporados, que analiza y convierte el documento XML, que hemos creado con DOM, en un “Objeto DOM XML”, que si se podrá cargar en dicho navegador.

33
Q

¿Todas las etiquetas han de cerrarse en XML?

A

No, con SGML y con HTML los elementos vacíos no tienen porque cerrarse:

role/>

Pero la “/” se pondría al final de la etiqueta.

NOTA: con XML se han de cerra todas, INCLUIDO LAS VACÍAS.

NOTA2: HTML4 estaba alineado con SGML, pero HTML5 lo abandona.

34
Q

¿Qué función tiene XSLT (Lenguaje Extensible de Hojas de Estilo para TRANSFORMACIONES)??

A

Transforma un texto XML en:

*HTML
*Texto plano
*Otro XML

35
Q

Diferencia entre SGML (lenguaje de marcado estándar generalizado)y XML:

A
  1. SGML: XML deriva de SGML y es un estándar para definir lenguaje de marcado generalizado:

*Introduce la Validación DTD (obsoleto)
*NO obligación de cerrar etiquetas
*En algunos casos, se pueden omitir las comillas en los atributos
*NO es Case Sensitive

  1. XML: añade restricciones a SGML:

*Introduce la Validación XSD
*TODAS las etiquetas tiene que llevar CIERRE (incluidos las vacías => <vacía></vacía>)
*TODOS los atributos entre comillas.
*SI es Case Sensitive.

36
Q

¿Cómo indicamos si el documento de Validación esta o no embebido?

A

1.EMBEBIDO (datos+validación en un mismo documento):
<?xml version = “1.0” encoding = “UTF-8” standalone = “yes” ?>

  1. Documentos independientes (XML/VALIDACIÓN), habría que referenciarlo:
    <!DOCTYPE empleados SYSTEM empleados.dtd>

NOTA: SYSTEM indica que el documento DTD es PRIVADO, es decir, que no sale a internet (local).
En cambio, si ponemos PUBLIC, va a ser un DTD de uso público.

37
Q

¿Por cuáles 2 partes esta formado un documento XML?

A

Los documentos XML estan formados por 2 ficheros: FICHERO DE DATOS (código fuentes con sus etiquetas) más FICHERO DE DEFINICIÓN DE GRAMÁTICA O ESTRUCTURA (para poder validar ese fichero de datos).

*Con la pregunta STANDALONE resolvemos si ambos documentos van juntos (embebidos) o separados (StandAlone: NO).

38
Q

¿En qué se diferencian los documentos de definición de gramática: DTD y XSD?

A

*Los XSD (XML Schema Definition) o esquemas XML se escriben en XML, mientras que los DTD derivan de SGML.

*XSD define tipos de datos para elementos y atributos, en cambio, DTD (Document Type Definition file) NO admite tipos de datos.

NOTA: DTD esta en desuso.

39
Q

¿Qué formato de archivo anuncia la cabecera MIME: image/webp?

A

WebP es un formato de archivo de imagen de Google que proporciona compresión con pérdida de información (como JPEG) y transparencia (como PNG), pero puede ofrecer mejor compresión que estos otros dos formatos.

Los archivos WebP liberan espacio de almacenamiento para las compañías, ya que comprimen las imágenes de sus sitios web a un tamaño mucho más manejable.

40
Q

¿Qué es JSON (Notación de Objetos JS?

A

Es un archivo estándar en formato de texto plano (llaves, corchetes, “:” y comas), usado por casi todos los lenguajes de programación para transmitir información entre sistemas (cliente/servidor).

*ECMA-404
*MIME: application/json
*[Los Arrays van entre corchetes] y {los Arrays de OBJETOS entre llaves}
*Librerías: Jackson y GSON.
*Tipos de datos: String, Array, Object, BOOLEAN, NULL y NUMBER => los 3 últimos (MAYÚSCULAS) van SIN comillas.
*ESTRUCTURA JSON: vamos declarando propiedades (entre comillas) con su valor (que, según el tipo ira o no entrecomillado) => “PROPIEDAD”:CONTENIDO o “CLAVE:VALOR

“firstName”:”Luis”,
“isAlive”:true, => boolean
“age”:27, => number
“phone”:”637-45-12-39” => estos números si van entrecomillas, porque representan una cadena.

41
Q

Pon un ejemplo de la estructura de un documento JSON:

A

*ESTRUCTURA JSON: vamos declarando propiedades (entre comillas) con su valor (que, según el tipo ira o no entrecomillado) => “PROPIEDAD”:CONTENIDO o “CLAVE:VALOR

“firstName”:”Luis”,

“isAlive”:true, => boolean

“age”:42, => number

“phone”:”637-45-12-39” => estos números si van entrecomillas, porque representan una cadena.

“CONTACTS”:NULL,

NOTA: [Los Arrays van entre corchetes] y {los Arrays de OBJETOS entre llaves}

42
Q

¿Cómo se representan los ARRAYs en JSON?

A

[Los Arrays van entre corchetes] y {los Arrays de OBJETOS entre llaves}

1.ARRAY:
“teléfono”:[
{
“type”:”home”,
“number”:”637-45-12-39”
},
]

2.ARRAY de OBJETO:
“address”:{
“street”:”Gaviota”,
“number”:12,
“isBuilt”:false
},

43
Q

¿Con qué APIs de Java se procesa el formato JSON?

A

*JSON-B
*JSON-P

44
Q

¿Qué estándar basado en JSON en el ámbito de la seguridad es usado para la autentificación web?

A

JWT (JSON Web TOKEN): crea un token que sirve par enviar datos entre aplicaciones.
El token esta codificado en “Base64” y, cuando se decodifica, se divide en: cabecera+cuerpo+firma.

*Base64: codificación de binario a texto, que representa los datos binarios mediante una cadena ASCII, traduciéndolos en una representación RADIX-64.

45
Q

¿Qué sistema de seguridad es muy utilizado para autenticar a un usuario de una API REST?

A

JWT (JSON Web TOKEN)

*API REST: (Transformación de estado Representativa): para desarrollar API a través del protocolo HTTP => se suele utilizar para proporcionar datos al usuario de una aplicación o sitio web DESDE EL SERVIDOR.
Una vez que reciben la solicitud, las API diseñadas para REST (conocidas como API o servicios web de RESTful) pueden devolver mensajes en distintos formatos: HTML, XML, texto sin formato y JSON.

46
Q

¿Cuál sería un fichero JSON válido?

a){“nombre”:”juana”, “apellido”:”Ruiz”}

b){‘nombre’:’juana’, ‘apellido’:’Ruiz’}

c){nombre:”juana”, apellido:”Ruiz”}

A

a) porque todos los atributos van entre comillas y las valores también, excepto: boolean, null y number (a no ser que vayan en cadena: 637-45-12-39)

47
Q

Diferencia entre la Estructura de un DTD y un XSD:

A

FIXED => para un valor fijo.

DTD:
1. Se van declarando elementos (etiquetas).
<!ELEMENT empleado (nombre, apellidos, edad)>
<!ENTITY compañía “IBM Global Services”> => ahora cuando pongas en el documento XML: &compañía => lo sustituirá por: IBM Global Services.

  1. El “*” indica “0” o “muchos”.
  2. La “#” define texto.
    (#TEXTO QUE INTRODUZCAMOS) => en DTD se define con textos, no se definen tipos de datos concretos.

NOTA:
ID #REQUIRED => define que es probatorio rellenar el campo ID (la ID sólo se pone una vez)

=============

XSD:

<xsd:schema>

<xsd: element name= "empleado">
.
.
.
</xsd:schema>

48
Q

¿Cómo nos referimos al documento XSD desde el documento XML?

A

con “-instance”

<xmls:xsi = “http:// www.w3c.org/XMLSchema-instance” xsi: schmaLocation = “http://www.tai.es/empleados.xsd>

*Donde la URL de nuestro XSD es:
http://www.tai.es/empleados.xsd

49
Q

¿Qué es un documento XSD (estructura con esquema)?

A

Documento XML para definir todas las etiquetas. Aquí si se definen tipos complejos y simples, a diferencia del obsoleto DTD.
:complextype>

En el esquema XSD tenemos unos tipos de datos o entidades a través de los cuales chequeamos si el documento XML es VÁLIDO.

También podemos hacer AMPLIACIONES y RESTRICCIONES.
1. AMPLIACIONES: ampliar una entidad o tipo COMPLEJO dotándolo con algunas etiquetas más, como una “herencia”.
2. RESTRICCIONES: definir un tipo SIMPLE a través de un elemento estándar como “string”. Digamos que restringiríamos un tipo base con String en uno más simple creado por nosotros.

50
Q

Además de con DTD y XSD, ¿de qué otra manera podemos definir/parsear la gramática de un documento JSON?

A

Pues, como la principal característica de JSON es: “SCHEMA-LESS” (sin esquemas), tendríamos que recurrir a: JSON SCHEMA (parser JSON).

“PROPIEDAD”:”Tipo de Dato” => string, array, object, BOOLEAN, NULL y NUMBER => los 3 últimos van sin comillas, excepto “number”, si no esta encadenado)

51
Q

¿En qué se diferencian los lenguajes de TRANSFORMACIÓN : XSLT y XSL FO?

A

*XSLT (eXtensible Stylesheet Languaje Transformations): a través del procesador XSLT (XSLT Processor) funde un documento XML con el documento XSLT generando otro documento de etiquetas: HTML, TXT u otro XML.

*XSL FO: (XSL Formatting Objects): a través del software “Processor” funde un documento XML con el documento XSL FO generando un documento de otro formato: PDF, SVG, PNG, PS, …, es decir, da formato a los datos del documento XML para presentarlos por pantalla o papel.

52
Q

¿Qué es una sentencia XPath y pon algún ejemplo?

A

1º Para ejecutar una sentencia XPATH, primero hay que construir el árbol DOM, pués trabaja bajo un árbol DOM.

Funciona como los “selectores” CSS => usa sintaxis de RUTA (de ahí el nombre) para seleccionar nodos o conjuntos de nodos dentro de un documento XML y a través del árbol DOM.

Estas sintaxis se pueden usar en muchos lenguajes.

EJEMPLOS:
//div (div en CSS) => elemento de localización de un tipo particular (div) en todo el documento y en cualquier nivel de anidamiento.

/html (html en CSS) => selecciona la página Web completa.

Id(‘username’) => selecciona elementos con una ID específica.

//div//a => dentro de todo los “div”, a cualquier nivel de anidamiento, selecciona los “a”. Con //div/a, seleccionaría los DIRECTOS.

53
Q

¿Qué es el lenguaje de consulta XQuery (extracción de información) y qué 2 sintaxis usa?

A

Es un lenguaje de consulta de documentos XML (estandarizado por la W3C), que proporciona los medios para EXTRAER y MANIPULAR información de dichos documentos.

Usa las sintaxis:
1. XPATH: (usa sintaxis de RUTA (de ahí el nombre) para seleccionar nodos o conjuntos de nodos dentro de un documento XML y, a través del árbol DOM.

  1. FLWOR: la CLAUSULA “FOR” usa XPATH y la variable en la clausula “FOR” varía los valores en el conjunto devuelto por XPATH.

FLWOR es un ACRÓNIMO de las palabras clave utilizadas para introducir cada clausula:
For
Let
Where
Order
Return

*Devuelve texto XML a menos que estén encerrados {} => en cuyo caso se evalúan.

54
Q

¿Qué es un PARSER?

A

Es un programa que analiza una secuencia de símbolos a fin de determinar la estructura gramatical definida.

Función FORWARD-ONLY (sólo adelante): no tenemos posibilidad de ningún recorrido, pero es el más rápido de todos los métodos.

55
Q

¿Qué es API SAX (Simple API for XML)?

A

Este API de Java es un PARSER basado en eventos para analizar documentos XML.

Este API no genera nada en memoria => El SAX parser lee el documento unidireccionalmente y va informando a la clase Java (Content Handler), previamente creada, de todo lo que va viendo en su lectura (inicio del documento, inicio de la etiqueta, caracteres que ve entre etiquetas, apertura/cierre de etiquetas, fin del documento, …) => EVENTOS.

Por ello, lo llaman “modelo streaming => SIMPLE api for XML (SAX).

NOTA: el otro API parser se llama API DOM (lee y valida el documento XML y lo carga en memoria en forma de árbol).

56
Q

Define el API DOM:

A

El parser, tras LEER y VALIDAR el documento XML, genera un árbol de objetos en memoria, que podremos MODIFICAR añadiendo nuevos nodos, eliminando o modificandolos => NO ES UN PARSER DE SOLO LECTURA, PUES GENERA UN ÁRBOL QUE PODEMOS MODIFICAR.

Todos los nodos son de tipo NODE, pero también tenemos unas especializaciones de NODE: Element, Atribute, Text y Document.

También tendremos libertad absoluta para recorrer dicho árbol => BROWSING.

Tiene la desventaja de que puede ocupar mucha memoria si el XML fuera grande.

NOTA: el API DOM se define ne el paquete: “org.w3c.dom”.

57
Q

¿Qué es SELECTOR API?

A

Es como una extensión de DOM o un añadido, pero NO ES un API DOM.

JQUERY lo usa con la instrucción: .querySelector y hay 2 posibilidades:

*ELEMENT: .querySelector => selecciona en base a etiquetas.

*NODE LIST: .querySelectorAll => en base a NODOS.

58
Q

¿Qué tecnologías están dentro o forman parte de API DE JAVA: JAXB (Java Architecture for XML Binding)?

A

*SAX: (Modelo Streaming) va informando a la clase Java de los EVENTOS que va detectando.

*DOM: (W3C => NO es de Java) genera del documento XML un árbol de nodos.

*XSLT: funde un documento XML con el documento XSLT generando otro documento de etiquetas: HTML, TXT u otro XML.

*STAX: no levanta el árbol completo en memoria, sino lo que tú quieres (PULL), a diferencia de SAX (PUSH).

NOTA: JAXB funciona de 2 maneras: MARSHAL (teniendo el árbol, genera el XML) y UNMARSHAL (XML->OBJETO).

59
Q

¿Existe alguna herramienta de JAXB para levantar el árbol de los objetos de tu negocio de manera automática?

A

xjc

Esta herramienta de la JDK es capaz de generar esos objetos automáticamente a partir de un XSD.

xjc compila un esquema XML (XSD) y genera clases JAva (es una función del JDK, ej: Eclipse) => estas clases (de infraestructura) son las que usaremos en el proceso de UNMARSHAL / MARSHAL, es decir, son necesarias para hacer la transformación entre el mundo XML y el Java.

60
Q

¿En qué se diferencian los parsers STAX y SAX?

A

STAX, al igual que SAX, también funciona por STREAMING, pero la lectura la gobierna la aplicación (nosotros), NO el parser como en SAX.

SAX -> Streaming- PUSH (es el parser quien te avisa de los eventos que va detectando)

STAX -> Streaming - PULL (nostros manejamos por eventos la lectura del XML)

Es decir, STAX no levanta el árbol completo en memoria, sólo lo que tú quieras.

PD: estas APIs o parsers, tienen la función de leer o manipular un documento XML transformándolo en un árbol de objetos Java.

61
Q

¿Qué es TRAX (Api de TRANSFORMACIÓN para XML)?

A

TRAX es un Api de Java para transformar documentos XML utilizando hojas de estilo XSLT.

A diferencia de otros parsers de Java, que parten del Api JAXB para generar un árbol de objetos del documento XML (SAX y STAX).

62
Q

¿Cuál es el conjunto de etiquetas que constituyen todo el documento XML?

A

Elements, Attributes, Entities, PCDATA y CDATA.

MNEMOTECNIA: EA Esport PC