Faq/General/045/es
TDF LibreOffice en español Document Liberation Project Blogs comunitarios Weblate Nextcloud Redmine Preguntas y respuestas Donar
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:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE office:document-meta PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "office.dtd">
<office:meta>
<meta:generator>LibreOffice/3.3$Win32 LibreOffice_project/330m18$Build-4</meta:generator>
<meta:initial-creator>Sophie Gautier</meta:initial-creator>
<meta:creation-date>2011-01-12T19:07:36</meta:creation-date>
<meta:document-statistic meta:table-count="0" meta:image-count="31" meta:object-count="0" meta:page-count="17" meta:paragraph-count="213"
meta:word-count="2647" meta:character-count="16353"/>
</office:meta>
Puede ver etiquetas <> que enmarcan el contenido del documentos. una etiqueta abierta siempre debe cerrarse:
<office:meta>
se cerrará con
</office: meta>
Para agregar información al documento, le damos atributos, siempre seguidos de un valor meta:page-count="17"
. El atributo meta: page-count
tiene el valor "17"
(el documento tiene 17 páginas). También podemos poner comentarios como este:
¿Por qué XML?
Si observa el fragmento XML anterior, hay algunas cosas que sorprenden:
- XML es legible para usted, pero también para la máquina. Ésta es una de sus grandes ventajas.
- Es Unicode (Unicode: se define un número único para cada carácter, independientemente de la plataforma, idioma, programa).
Esto significa que se puede almacenar en diferentes codificaciones. ¿Cual es la diferencia? Probablemente sepa que los documentos estaban (todavía están) codificados en ASCII, pero solo se refiere a un alfabeto y un sistema de escritura. El fragmento de código muestra una codificación UTF-8, que es compatible con muchos alfabetos.
- El XML orientado a objetos: en lugar de descomponer los datos en tablas normalizadas vinculadas por relaciones, describe los objetos (concretos y abstractos) modelando sus propiedades tal como son, lo que hace que los documentos XML sean más intuitivos de entender.
- Finalmente, el XML distingue entre el contenido y el diseño,
el diseño de los datos es proporcionado por lenguajes de terceros como CSS, XSL ...
- El XML genera un bajo costo en términos de componentes de software, de ahí su exitosa integración en la industria de IT.
El XML en LibreOffice
¿Y cómo puede ver si LibreOffice es XML? LibreOffice tiene un formato de archivo nativo .xml comprimido. Esto significa que los archivos que componen su documento de LibreOffice están encapsulados en un archivo. Un ejemplo: tome su herramienta de descompresión favorita (consulte ¿Qué formato de archivo utiliza LibreOffice?) Y abra cualquier archivo de LibreOffice. Verá una colección de diferentes archivos, algunos de los cuales tienen la extensión .xml.
Qué módulos de LibreOffice usan XML?
Todos los módulos de LibreOffice utilizan XML como formato de archivo nativo. El módulo de matemáticas usa una estructura de paquete un poco diferente, pero parte del xml dentro del paquete: MathML es un estándar XML para fórmulas. Además, algunos archivos de configuración usan XML. La estructura de estos archivos siempre estará ahí:
meta.xml
contiene información sobre el documento (autor, fecha de la última copia de seguridad).styles.xml
contiene los estilos usados en el documentoContent.xml
contiene el contenido del documento principal (texto, imágenes, gráficos ...)Settings.xml
, generalmente específico de una aplicación, contiene algunos parámetros como la impresora seleccionada ...META-INF/manifest.xml
contiene información adicional sobre otros archivos (como el tipo MIME o el cifrado).
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!
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 ...)
¿Que es DTD, esquema XML, XSLT ...?
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.