Faq/General/045/es

LibreOffice y XML
Sin duda, ha oído hablar a menudo de XML, ha oído que el formato de archivo de LibreOffice era XML, pero ¿qué es exactamente y, especialmente, qué significa, al final, qué es XML?

¿Qué es XML?
Es el acrónimo de eXtensible Markup Language.

XML es parte de los metalenguajes de clase, en realidad es un subconjunto de SGML. Bien, entonces, ¿qué es el SGML (Standard Generalized Markup Language)? Es un lenguaje que te permite crear documentos estructurados y modulares. Concretamente, esto significa que puede crear un documento a partir de datos tan diversos como sonido, datos de una base de datos o texto e imágenes. SGML se ha definido para una amplia gama de aplicaciones y debe mantenerse a muy largo plazo. Este lenguaje es bastante extenso y complejo, el XML fue creado para simplificar SGML.

Lo que puede resultar confuso al principio es que el HTML es muy similar al XML. Es un lenguaje con etiquetas que se abren y se cierran. Sin embargo, la gran diferencia es que HTML se definió con etiquetas que describen la presentación, mientras que las etiquetas XML se ocupan del contenido. Pero sí, HTML es un subconjunto de SGML, pero solo para procesar datos en la Web.

En resumen, el XML es una forma clara (y no un lenguaje de programación o un nuevo HTML) para estructurar, describir e intercambiar datos. El contenido y el diseño están separados para permitir el intercambio. El contenido se puede reutilizar en otras formas u otros medios. Los datos pueden ser de todo tipo: fórmulas químicas, datos financieros, datos musicales, texto ...

Un ejemplo el contenido xml de un documento LibreOffice:

Puede ver etiquetas <> que enmarcan el contenido del documentos. una etiqueta abierta siempre debe cerrarse:  se cerrará con  Para agregar información al documento, le damos atributos, siempre seguidos de un valor. El atributo  tiene el   (el documento tiene 17 páginas). También podemos poner comentarios como este: contiene información sobre el documento (autor, fecha de la última copia de seguridad). Las imágenes se guardan en el formato nativo dentro del zip. ¡Ahora comprende por qué los archivos de LibreOffice ocupan tan poco espacio en su disco duro!
 * contiene los estilos usados ​​en el documento
 * contiene el contenido del documento principal (texto, imágenes, gráficos ...)
 * , generalmente específico de una aplicación, contiene algunos parámetros como la impresora seleccionada ...
 * contiene información adicional sobre otros archivos (como el tipo MIME o el cifrado).

Para obtener más información sobre los formatos de archivo de LibreOffice, consulte el sitio web https://www.openoffice.org/xml.

Tenga en cuenta que un documento XML no se puede mostrar como está, necesita un lenguaje de transformación (XSLT) y un lenguaje de formato para objetos (XSL-FO) para poder mostrar toda la información correctamente (por ejemplo, necesita saber: si su documento está hecho de varias partes organizadas por separado o si contiene una tabla con formato ...)

Definición del tipo de documento DTD
DTD especificará qué elementos y atributos se utilizarán en el documento XML y describirá su estructura y contenido. La DTD puede ser interna al documento (incluye las definiciones en el propio documento) o externa (se encuentra en un archivo local o accesible por URL). El estándar XML no exige la DTD, y hablamos de documento XML si tiene un DTD válido o documento XML bien formado si no incluye (pero respeta el estándar XML)

Ejemplo de contenido DTD de LibreOffice

Enumera los escritores iniciales en esta forma (with initial="true"). Initial Writers es un término de la licencia PDL. Si uno de estos autores asignó los derechos de autor a otra persona, p. Ej. la empresa para la que trabajan, utiliza el atributo copyright="..." y nombra al titular de los derechos de autor. -->     <!ELEMENT authors ( author+ ) > <!ELEMENT author (#PCDATA)> <!ATTLIST author id     ID    #REQUIRED initial CDATA #IMPLIED email  CDATA #REQUIRED> <!--

Esquema XML
Un esquema también define la estructura de un documento XML, sin embargo, es más flexible que un DTD para definir tipos de elementos. Utiliza el DTD adquirido para definir los modelos. Los esquemas están sujetos a una especificación W3C.

XSLT : eXtensible Style Language Transformation
Es un lenguaje de programación para transformar documentos XML a otros formatos, como RTF, HTML o PDF, etc. Este lenguaje es declarativo y no procedimental (sin algoritmo), lo que facilita el acceso a los no desarrolladores. Escrito en XML, se puede reinterpretar. De hecho, XSLT transforma el árbol XML en reglas de modelos que describen una hoja de estilo. A menudo se compara con CSS porque, dado que CSS produce tales reglas, el orden de aparición de estas reglas no importa en el documento, también tiene prioridad cuando se pueden aplicar múltiples reglas. La diferencia es que si un CSS está vacío, no afectará al documento generado en html, simplemente se ignorará siendo solo un diseño, mientras que XSLT generará un documento vacío (en realidad, esto no es del todo cierto porque la especificación tiene reglas internas definidas todavía presentes, por lo que el documento nunca está realmente vacío. :)

XPATH
Es el lenguaje declarativo asociado a XSLT que permite definir la ubicación de las rutas dentro del árbol XML.

XSL-FO: eXtensible Style Language for Formating Object
Lenguaje para definir la presentación de objetos genéricos (como listas, tablas ...) de uso frecuente para la salida PDF. Viene después de una transformación XSLT y permite una interpretación visual de los objetos procesados.

OASIS
Oasis (Organisation for the Advancement of Structured Information Standard) es un consorcio global que impulsa el desarrollo, la convergencia y la adopción de estándares para el comercio electrónico. Por tanto, define el estándar XML. Esta definición se basa en que los formatos de archivo de LibreOffice, son abiertos y coherentes con una DTD publicada. Puede encontrar más información aquí: http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=office

El formato de archivo de LibreOffice es el mismo que el de OpenOffice.org y también es utilizado por Calligra, Google Docs y Zoho.