B3-T8-XML Flashcards
¿Que significa el atributo standalone=”yes” en el prólogo de un documento xml?
Que dentro del documento está embebido también el DTD.
¿Con que API de JAXP se crea un árbol de objetos en memoria de los tipos Node, Elment, Attr, Entidad, PCDATA y CDATA?
DOM
¿Cuál es el estándar que le corresponde a JSON?
ECMA 404
¿Qué tipos de datos soporta JSON?
- boolean
- string
- numbers
- object (para subdocumentos por ej.)
- array
- null
NOTA: NULL, BOOLEA Y NUMBER (cuando NO va encadenado), no van entrecomillados.
¿Con que API conseguimos transformar el documento XML en un árbol de negocio de objetos Java?
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
¿Con que lenguaje XML podemos llegar a generar PDF’s a partir de un XML de datos?
*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
¿Qué es Xerces?
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.
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?
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).
¿Quién se encarga del estándar SGML?
ISO
¿Qué representa en un documento XML cuando escribimos & ?
Es una entidad que el parser va a sustituir por el carácter especial &
¿Qué significa que un documento XML esté BIEN FORMADO?
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 “:”.
¿Qué significa que un documento XML sea válido?
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)
¿Qué solucionan principalmente los Namespaces en XML?
La posible duplicidad en los nombre de las etiquetas cuando se trabaja con varias fuentes.
¿Cuáles son los tipos mime de XML y JSON?
- Para xml tenemos: application/xml y text/xml
- Para json tenemos: application/json
Nombre dos librerías para manipular documentos JSON:
- Jackson
- GSON de Google
En la declaración DOCTYPE para asociar un DTD a un XML, ¿qué significa la palabra SYSTEM?
Que es un DTD que solo tiene sentido en un ámbito privado.
¿Qué tres elementos fundamentales podemos definir dentro de un DTD?
- ELEMENT
- ATTLIST
- ENTITY
Dentro de un JSON, ¿las PROPIEDADES tienen alguna sintaxis especial?
Si, todas van entre dobles comillas.
Nombre 8 tipos de datos que están disponibles en los XSD:
- string
- decimal
- integer
- byte
- boolean
- date
- time
- dateTime
- duration
- base64Binary (interesante para embeber un archivo binario en el xml)
- positiveInteger
- ID
Cuando se define un XSD, ¿qué URI se utiliza para definir su espacio de nombres?
http://www.w3.org/2001/XMLSchema-instance
¿Cuál sería la expresión XPath para “seleccionar” todos los atributos PRECIO que están asociados con la etiqueta PRODUCTO?
//producto/@precio
En un DTD, a nivel de definición de atributos, ¿qué otras opciones tenemos a parte de #REQUIRED para especificar que son obligatorios?
- # IMPLIED para definir que es opcional
- # FIXED para dar una valor fijo
¿Las expresión FLWOR con que lenguaje XML tienen que ver?
Lenguaje XQuery
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?
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.