Office Open XML

De Wikipedia, la enciclopedia libre

No confundir con OpenDocument (otro formato de documento basado en XML), OpenOffice.org XML (formato obsoleto usado por versiones anteriores de OpenOffice.org), o los formatos Microsoft Office XML (formatos de archivo antiguos usados por versiones anteriores de Microsoft Office).
Documento Office Open XML
Archivo:X-office-document.svg
Extensión de archivo .docx, .docm
Tipo de MIME application/vnd.
openxmlformats-officedocument.
wordprocessingml.
document[1]
Desarrollado por Microsoft, Ecma, ISO/IEC
Tipo de formato Documento de texto
Extendido de XML, DOC, WordProcessingML
Estándar(es) ECMA-376, ISO/IEC 29500
Sitio web ECMA-376,
ISO/IEC 29500:2008
Presentación Office Open XML
Archivo:X-office-presentation.svg
Extensión de archivo .pptx
Tipo de MIME application/vnd.
openxmlformats-officedocument.
presentationml.
presentation[1]
Desarrollado por Microsoft, Ecma, ISO/IEC
Tipo de formato Presentación
Extendido de XML, PPT
Estándar(es) ECMA-376, ISO/IEC 29500
Sitio web ECMA-376,
ISO/IEC 29500:2008
Libro Office Open XML
Archivo:X-office-spreadsheet.svg
Extensión de archivo .xlsx
Tipo de MIME application/vnd.
oasis.opendocument.
spreadsheet
Desarrollado por Microsoft, Ecma, ISO/IEC
Tipo de formato Hoja de cálculo
Extendido de XML, XLS, SpreadsheetML
Estándar(es) ECMA-376, ISO/IEC 29500
Sitio web ECMA-376,
ISO/IEC 29500:2008

Office Open XML (también llamado OOXML u Open XML) es un formato de archivo usado para representar hojas de cálculo, diagramas, presentaciones y documentos de texto. Un archivo Office Open XML contiene principalmente datos basados en XML comprimidos en un contenedor zip.

En el 2006, la especificación de Office Open XML se convierte en formato abierto y estándar Ecma International.[2] [3] [4] [5] [6] [7] [8] En noviembre de 2008, luego de incorporar algunos de los cambios propuestos por miembros de las organizaciones ISO/IEC durante su proceso de estandarización, se publicó una versión corregida de la especificación como estándar internacional ISO/IEC 29500:2008, Information technology – Office Open XML formats,[9] y como ECMA-376 Office Open XML File Formats - 2a edición (diciembre de 2008). La normatividad ISO/IEC 29500:2008 consta de 4 partes que puede ser descargada para su consulta.[10]

La especificación fue desarrollada originalmente por Microsoft para reemplazar sus formatos binarios, además de los formatos de archivo basados en XML de Office 2003. Dicha especificación fue luego entregada a Ecma International para ser desarrollada como el estándar ECMA-376 bajo la supervisión del Comité Técnico TC45 de Ecma International.[11]

Comenzando desde Microsoft Office 2007, los formatos de archivo Office Open XML (ECMA-376) son el formato predeterminado para guardar documentos de Microsoft Office, actualmente la suite ofimática más usada del mercado.[12] [13] Microsoft Office 2010 será la primera versión en implementar el formato de archivo Office Open XML compatible con las especificaciones ISO/IEC IS 29500.[14] [15] [16]

Contenido

[editar] Antecedentes y proceso de estandarización

Antes de la versión 2007, las aplicaciones principales de la suite de programas Microsoft Office (primariamente Word, Excel y PowerPoint) almacenaban sus datos de manera predeterminada en archivos binarios. Históricamente, era difícil para otras aplicaciones interoperar con éstos, debido a la carencia de información disponible públicamente. Para el año 2007, Microsoft ofreció las especificaciones para estos formatos binarios bajo una licencia libre de derechos y desde ese año, la documentación de uso de estos formatos es descargable desde su sitio web bajo un acuerdo de licencia Microsoft Open Specification Promise.[17] [18] Debido a que Microsoft mantenía en secreto los formatos de archivo mencionados anteriormente, otros productores de programas ofimáticos tenían grandes dificultades en alcanzar una total interoperabilidad. Microsoft fue producto de presiones para adoptar un formato de archivo abierto, ya que muchas naciones en particular adoptaron reglamentos que exigían que sus documentos oficiales debían encontrarse disponibles en formatos abiertos.

En el año 2000, Microsoft publicó una versión inicial de un formato basado en XML para Microsoft Excel y que luego fue incorporado a Office XP. En el 2002 le siguió un formato similar para Microsoft Word.[19] Estos formatos de Word y Excel – conocidos como formatos Microsoft Office XML – serían incluidos en la versión 2003 de Microsoft Office.

Para mayo de 2004, algunos gobiernos además de la Unión Europea, hicieron la recomendación a Microsoft para que publicara y estandarizara sus formatos XML de Office a través de una organización especial en esos procesos.[19] [20] Microsoft anunció en noviembre de 2005 que iba a hacerlo con una nueva versión de sus formatos basados en XML mediante la intervención de Ecma International y que serían anunciados como "Ecma Office Open XML".[21] El estándar fue publicado como ECMA-376 y lanzado en diciembre de 2006.[22] La documentación puede ser descargada para su consulta desde el sitio web de Ecma International.[23]

Una versión corregida del formato recibió los votos necesarios para aprobarse como estándar ISO/IEC luego de un proceso de estandarización rápido realizado por el JTC 1 y que concluyó en abril de 2008.[24]

[editar] Características técnicas del formato

Componentes principales de Office Open XML

El formato Office Open XML utiliza un contenedor basado en Open Packaging Convention. Este formato utiliza mecanismos heredados del formato de compresión ZIP y contiene los archivos individuales que forman la base del documento. Además de lenguaje de marcado, el contenedor también puede integrar otros archivos como imágenes, vídeos u otros documentos.

[editar] Lenguajes de marcado

Un archivo Office Open XML puede contener muchos documentos codificados en lenguajes de marcado especializados, correspondientes a diversas aplicaciones dentro de la línea de productos de Microsoft Office. El formato Office Open XML define vocabularios múltiples utilizando para ello módulos de 27 espacios de nombres y 89 lenguajes de esquema.

Los lenguajes de marcado principales son:

  • WordprocessingML para documentos de texto
  • SpreadsheetML para hojas de cálculo
  • PresentationML para presentaciones

Algunos materiales compartidos con los lenguajes de marcado incluyen:

  • Lenguaje de marcación Office Math (OMML)
  • DrawingML, utilizado para dibujar vectores, gráficos, y text art (además, aunque no aprobado, VML se soporta como lenguaje de dibujo)
  • Propiedades extendidas
  • Propiedades personalizadas
  • Tipos variables
  • Propiedades de datos XML personalizadas
  • Bibliografía

Además de los lenguajes de marcado mencionados, se pueden usar esquemas XML personalizados para extender aún más Office Open XML.

El esquema XML de Office Open XML enfatiza el reducir el tiempo de carga y mejorar la velocidad de análisis sintáctico. Para mejorar el rendimiento, Office Open XML utiliza nombres de elementos muy cortos para aquellos elementos comunes y las hojas de cálculo guardan datos como números de índice (comenzando la numeración desde 1899 o desde 1904). Para lograr ser sistemático y genérico, Office Open XML usa típicamente elementos derivados separados para datos y metadatos (nombres de elementos que terminan en Pr para propiedades) en lugar de usar atributos múltiples que permitan propiedades estructuradas. Office Open XML no utiliza contenido mixto, pero utiliza algunos elementos para colocar series de text runs (nombre de elemento, r) en párrafos (nombre de elemento, p). En contraste, el resultado es conciso y altamente jerarquizado al compararse, por ejemplo con HTML que es bastante plano, ya que fue diseñado para escribir en editores de texto siendo a la vez más agradable de leer.

[editar] Office MathML (OMML)

El lenguaje de marcado Office Math es un lenguaje de marcado matemático el cual puede integrarse dentro de WordprocessingML, y que incluye soporte intrínseco para otros lenguajes de marcado de procesamiento de palabras como marcas de revisión,[25] notas al pie, comentarios, imágenes y otros estilos de contenido.[26] El formato OMML es distinto a la recomendación del World Wide Web Consortium (W3C), MathML, el cual, aunque no soporta esas características ofimáticas es parcialmente compatible[27] a través de transformaciones XSL relativamente simples.

El siguiente ejemplo de Office MathML define la fracción: \frac{\pi}{2}

<m:oMathPara>
  <m:oMath>
    <m:f>
      <m:num><m:r>
        <m:t>π</m:t>
      </m:r></m:num>
      <m:den><m:r>
        <m:t>2</m:t>
      </m:r></m:den>
    </m:f>
  </m:oMath>
</m:oMathPara>

[editar] DrawingML
Ejemplo de gráfico realizado mediante DrawingML

DrawingML es el lenguaje de marcado para gráficos vectoriales utilizado en documentos Office Open XML. Sus papel principal es renderizar los gráficos de elementos de texto, formas gráficas basadas en vectores, tablas y diagramas.

DrawingML es el tercer modelo de tablas en Office Open XML (luego de los modelos de tablas en WordprocessingML y SpreadsheetML) y está optimizado para efectos gráficos como sombras y reflejos que pueden ser utilizadas en diferentes elementos gráficos. Fue creado para un uso principal por parte del lenguaje PresentationML. Es posible crear efectos 3d en DrawingML para por ejemplo, mostrar diversos elementos gráficos mediante un ángulo de visión flexible. También es posible crear temas de diseño separados mediante DrawingML en un contenedor Office Open XML. Estos temas pueden ser aplicados a elementos gráficos a través de todo el contenido dentro del contenedor Office Open XML.[28]

El lenguaje DrawingML no está relacionado a otros formatos de gráficos vectoriales como SVG, aunque pueden ser convertidos a DrawingML para incluirse nativamente en un documento Office Open XML. Esta es una aproximación distinta a la del formato OpenDocument, el cual utiliza un subconjunto de SVG e incluye los gráficos vectoriales en archivos separados.

Las dimensiones de un gráfico DrawingML están especificadas en Unidades Métricas Inglesas (del inglés English Metric Unit o EMUs). Esta unidad se define como la 1/360.000 parte de un centímetro y por ende, hay 914.400 EMUs en una pulgada y 12.700 EMUs por punto. Se escogió esta unidad con aras de que se pudiesen utilizar números enteros para representar con precisión la mayoría de dimensiones encontradas en un documento. Las operaciones de coma flotante no pueden representar adecuadamente una fracción que no sea resultado de la suma de las potencias de dos y ese error se amplifica cuando las fracciones se suman juntas varias veces resultando en un desajuste. Ya que una pulgada equivale a 2.54 centímetros o 127/50, la pulgada debe ser dividida en 127 para que los valores de pulgada y centímetro se conviertan en enteros. Para representar de manera precisa un decimal en dos dígitos, se necesita un divisor de 100. Para representar un punto, es necesario un divisor de 72, lo cual permite también a divisiones de 2, 3, 4, 6, 8, 9, 12, 18, 24, y 36 ser exactas. Al multiplicar estos valores da como resultado 127×72×100 = 914.400 unidades por pulgada (el mínimo común múltiplo daría valores de 228.600 por pulgada y 90.000 por centímetro). De acuerdo con Rick Jelliffe, programador y activista de estándares (ISO, W3C, IETF), las EMUs son una solución racional para un conjunto de criterios de diseño.[29]

[editar] Estructura del contenedor

Artículo principal: Open Packaging Convention
Estructura del contenedor según la Parte 2 del estándar Ecma Office Open XML, ECMA-376

Los documentos Office Open XML son almacenados en contenedores Open Packaging Convention (OPC), los cuales son archivos ZIP que guardan XML y otros archivos de datos, junto con las especificaciones de relación entre ellos.[30] Dependiendo del tipo de documento, los contenedores difieren en sus estructuras y nombres de directorios. Una aplicación usará los archivos de relación para localizar secciones individuales (en archivos), cada una con metadatos adjuntos, en particular metadatos MIME.

Un contenedor básico incluye en su raíz un archivo XML denominado [Content_Types].xml, junto con tres directorios: _rels, docProps, y uno específico para el tipo de documento (por ejemplo, en un paquete de texto .docx, habrá un directorio llamado word). El directorio word contendrá un archivo document.xml el cual incluye el texto base del documento.

[Content_Types].xml 
Este archivo describe los contenidos globales. También contiene estructuras de mapeo para extensiones de archivos y reemplazos para URIs específicas.
_rels 
Estos directorios contienen las relaciones de los archivos dentro del contenedor. Contendrá los mismos nombres de archivo que indican relaciones pero con una extensión .rels añadida. Por ejemplo, si el archivo content types tuviese alguna relación, existirá una archivo de nombre [Content_Types].xml.rels dentro del directorio _rels.
_rels/.rel 
En este archivo se localizan las relaciones del contenedor. Las aplicaciones miran aquí primero. En un documento de contenido mínimo que sólo incluya el archivo básico document.xml, las relaciones detalladas son metadatos y document.xml.
docProps/core.xml 
Este archivo contiene las propiedades base de cualquier documento Office Open XML.

[editar] Relaciones

[editar] Archivos de relación en Office Open XML

A continuación, un ejemplo de archivo de relación (word/_rels/document.xml.rels):

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<Relationships
  xmlns="http://schemas.microsoft.com/package/2005/06/relationships">
  <Relationship Id="rId1"
    Type="http://schemas.microsoft.com/office/2006/relationships/image"
    Target="http://en.wikipedia.org/images/wiki-en.png"
    TargetMode="External" />
  <Relationship Id="rId2"
    Type="http://schemas.microsoft.com/office/2006/relationships/hyperlink"
    Target="http://www.wikipedia.org"
    TargetMode="External" />
</Relationships>

Con ello, las imágenes referenciadas en el documento pueden encontrarse en el archivo de relaciones si se busca por las relaciones que son de tipo http://schemas.microsoft.com/office/2006/relationships/image. Para cambiar la imagen usada, es necesario editar la relación.

[editar] Relaciones de hipervínculos

El siguiente código muestra un ejemplo de marcación entre líneas para un hipervínculo:

<w:hyperlink r:id="rId2" w:history="1"
  xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" 
  xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">

En este ejemplo, el Localizador Uniforme de Recursos (URL) está representado por "rId2". La URL realmente se encuentra en el archivo de relaciones que le acompaña, localizado por su elemento "rId2" correspondiente. Las imágenes, plantillas y otros elementos vinculables son referenciados de la misma manera.

[editar] Relaciones para archivos de medios integrados o vinculados

Las imágenes pueden ser incorporadas o vinculadas usando una etiqueta:

<v:imagedata w:rel="rId1" o:title="ejemplo" />

Esta es la referencia al archivo de imagen. Todas las referencias son administradas mediante relaciones. Por ejemplo, el archivo document.xml se relaciona con la imagen. Hay un directorio _rels en el mismo directorio que document.xml; dentro de _rels hay un archivo llamado document.xml.rels. En ese archivo hay definiciones de relación que contiene tipo, ID y ubicación. La ID es la utilizada como referencia en el documento XML. El tipo será un esquema de definición para los tipos de medios y la ubicación será definida como la localización interna dentro del contenedor ZIP o externa, definida con una URL.

[editar] Propiedades del documento

Office Open XML utiliza el conjunto de elementos de metadatos Dublin Core y definiciones de metadatos DCMI para almacenar las propiedades del documento. Dublin Core es un estándar para descripción de recursos entre dominios y como tal, está definido en ISO 15836:2003.

[editar] Metadatos

El siguiente es un ejemplo del archivo de propiedades (docProps/core.xml) que utiliza metadatos Dublin Core:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<cp:coreProperties xmlns:cp="http://schemas.openxmlformats.org/package/2006/metadata/core-properties"
  xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/"
  xmlns:dcmitype="http://purl.org/dc/dcmitype/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <dc:title>Office Open XML</dc:title>
  <dc:subject>Formato y estructura de archivo</dc:subject>
  <dc:creator>Wikipedia</dc:creator>
  <cp:keywords>Office Open XML, Metadatos, Dublin Core</cp:keywords>
  <dc:description>Office Open XML usa ISO 15836:2003</dc:description>
  <cp:lastModifiedBy>Wikipedia</cp:lastModifiedBy>
  <cp:revision>1</cp:revision>
  <dcterms:created xsi:type="dcterms:W3CDTF">2008-06-19T20:00:00Z</dcterms:created>
  <dcterms:modified xsi:type="dcterms:W3CDTF">2008-06-19T20:42:00Z</dcterms:modified>
  <cp:category>Documentos sobre formatos de archivo</cp:category>
  <cp:contentStatus>Final</cp:contentStatus>
</cp:coreProperties>

[editar] Estructura del estándar

En aras de mejorar la comprensión del lector, la especificación Office Open XML contiene en conjunto material normativo y material informativo.

[editar] ISO/IEC 29500:2008

El estándar ISO/IEC está estructurado en cuatro partes, siendo cada una de ellas estándares independientes.[31] [cita requerida]

Parte 1. Fundamentos y referencia del lenguaje de marcado (5560 páginas)
Contiene definiciones de conformación
Contiene el material de referencia para WordprocessingML, SpreadsheetML, PresentationML, DrawingML, otros ML compartidos y esquemas XML personalizados, definiendo cada elemento y atributo e incluyendo la jerarquía del elemento (relaciones de parentesco)
Esquemas XML para los lenguajes de marcado, declarados como XSD y (no incluido en la normativa) utilizando RELAX NG
Define la institución de almacenamiento para los datos XML personalizados
Se incluyen los esquemas XML en el texto
Parte 2. Open Packaging Convention (129 páginas)
Define el formato Open Packaging Convention (modelo del paquete, empaquetado físico)
Define las propiedades principales, miniaturas y firmas digitales
Los esquemas XML para OPC son declarados como XML Schema Definitions (XSD) y (no incluido en la normativa) utilizando RELAX NG (ISO/IEC 19757-2)
Parte 3. Compatibilidad de marcado y extensibilidad (40 páginas)
Describe la institución de extensión de los documentos OpenXML y especifica los elementos o atributos por medio de los cuales, las aplicaciones con extensiones distintas pueden interoperar
Las reglas de extensibilidad son expresadas utilizando NVDL (ISO/IEC 19757-4)
Parte 4. Características de migración transicionales (1464 páginas)
Contiene material de referencia de interés transicional
Contiene material controversial como la configuración de compatibilidad y el lenguaje de marcado gráfico VML
Contiene una lista de diferencias entre ECMA-376 e ISO/IEC 29500:2008

El estándar especifica seis niveles de conformancia del documento o aplicación, strict (estricto) y transitional (transicional) para cada lenguaje (WordprocessingML, PresentationML y SpreadsheetML). El estándar también especifica las descripciones de aplicaciones tales como base y full (completo).

[editar] ECMA-376 1a edición (2006)

El estándar ECMA está estructurado en cinco partes para lograr los requerimientos de distintas audiencias.[23]

Parte 1. Fundamentos
Vocabulario, convenciones de notación y abreviaciones
Resumen de los lenguajes de marcado principales y de soporte
Condiciones de conformancia y guías de interoperabilidad
Restricciones para Open Packaging Convention que aplican a cada tipo de documento
Parte 2. Open Packaging Convention
Define el formato Open Packaging Convention (modelo del paquete, empaquetado físico)
Define las propiedades principales, miniaturas y firmas digitales
Los esquemas XML para OPC son declarados como XML Schema Definitions (XSD) y (no incluido en la normativa) utilizando RELAX NG (ISO/IEC 19757-2)
Parte 3. Cartilla
Introducción informativa (no normativa) a WordprocessingML, SpreadsheetML, PresentationML, DrawingML, VML y otros ML compartidos, proporcionando un contexto e ilustrando elementos a través de ejemplos y diagramas
Describe la institución de almacenamiento para los datos XML personalizados dentro de un contenedor, para soportar la integración con datos de negocios
Parte 4. Referencia del lenguaje de marcado
Contiene el material de referencia para WordprocessingML, SpreadsheetML, PresentationML, DrawingML, otros ML compartidos y esquemas XML personalizados, definiendo cada elemento y atributo e incluyendo la jerarquía del elemento (relaciones de parentesco)
Esquemas XML para los lenguajes de marcado, declarados como XSD y (no incluido en la normativa) utilizando RELAX NG
Define la institución de almacenamiento para los datos XML personalizados
Parte 5. Compatibilidad de marcado y extensibilidad
Describe la institución de extensión de los documentos OpenXML y especifica los elementos o atributos por medio de los cuales, las aplicaciones con extensiones distintas pueden interoperar
Las reglas de extensibilidad son expresadas utilizando NVDL (ISO/IEC 19757-4)

[editar] Véase también

Commons

[editar] Referencias

  1. a b Microsoft. «Register file extensions on third party servers». microsoft.com. Consultado el 2008-04-09.
  2. http://www.ecma-international.org/activities/General/presentingecma.ppt
  3. Ecma formal publications
  4. Microsoft PowerPoint - BSI OOXML v1b.ppt
  5. http://www.mass.gov/Aitd/docs/policies_standards/etrmv4dot0/etrmv4dot0information.rtf
  6. http://www.itscj.ipsj.or.jp/sc34/open/1026.pdf
  7. (2008). «Office Open XML wird als weltweiter ISO/IEC-Standard anerkannt». ntz Fachzeitschrift für Informations- und Kommunikationstechnik (3-4): 10. Berlin: VDE-Verlag. ISSN 0948-728X.
  8. Techtree.com India > News > Software > ISO puts Microsoft's OOXML Standard on Hold
  9. ISO/IEC (2008-11-18). «Publication of ISO/IEC 29500:2008, Information technology - Office Open XML formats». ISO. Consultado el 2008-11-19.
  10. «Freely Available Standards». ITTF (ISO) (2008-11-18).
  11. «Microsoft Co-Sponsors Submission of Office Open XML Document Formats to Ecma International for Standardization». Microsoft (2005-11-21).
  12. «Microsoft's future lies somewhere beyond the Vista by Evansville Courier & Press».
  13. «Rivals Set Their Sights on Microsoft Office: Can They Topple the Giant? - Knowledge@Wharton».
  14. Microsoft Expands List of Formats Supported in Microsoft Office
  15. «FAQ: Office 14 and Microsoft's support for ODF».
  16. «Microsoft Office 2007 to Support ODF - and not OOXML - ConsortiumInfo.org».
  17. «How to extract information from Office files by using Office file formats and schemas». Microsoft (2007-03-27). Consultado el 2007-07-10.
  18. «Microsoft Office Binary (doc, xls, ppt) File Formats». Microsoft (2008-02-15). Consultado el 2008-04-05.
  19. a b Brian Jones (2007-01-25). «History of office XML formats (1998–2006)». MSDN blogs.
  20. Telematics between Administrations Committee based on IDA expert group on open document formats (2004-05-25). «TAC approval on conclusions and recommendations on open document formats». IDABC - European eGovernment Services. Consultado el 2007-07-30.
  21. «Microsoft Co-Sponsors Submission of Office Open XML Document Formats to Ecma International for Standardization». Microsoft (2005-11-21).
  22. Ecma International (7 de diciembre de 2006). "Ecma International approves Office Open XML standard". Comunicado de prensa. Accedido el 2006-12-08.
  23. a b Standard ECMA-376
  24. «ISO/IEC DIS 29500 receives necessary votes for approval as an International Standard». ISO (2008-04-02).
  25. Jesper Lund Stocholm (2008-01-29). «Do your math - OOXML and OMML». A Mooh Point blog. Consultado el 2008-02-12.
  26. Murray Sargent (2007-06-05). «Science and Nature have difficulties with Word 2007 mathematics». MSDN blogs. Consultado el 2007-07-31.
  27. David Carlisle (2007-05-09). «XHTML and MathML from Office 2007». David Carlisle. Consultado el 2007-09-20.
  28. Wouter Van Vugt (2008-11-01). «Open XML Explained e-book». Openxmldeveloper.org. Consultado el 2007-09-14.
  29. «Why EMUs? - O'Reilly XML Blog».
  30. Tom Ngo (11 de diciembre de 2006). «Office Open XML Overview» (PDF) págs. 6. Ecma International. Consultado el 2007-01-23.
  31. Rex Jaeshke - project editor (2008-09-26). «N1080 Final Text for ISO/IEC 29500-1, Information technology -- Document description and processing languages -- Office Open XML File Formats -- Part 1: Fundamentals and Markup Language Reference». ISO/IEC JTC1 SC34.

[editar] Enlaces externos

Herramientas personales
Crear un libro