¿Por qué son necesarios los formatos de texto?

Los formatos de texto son convenientes para almacenar información porque pueden ser creados y procesados ​​tanto por programas como por humanos.

Los archivos de texto (archivos en formato de texto) se pueden abrir, leer y editar en una amplia variedad de editores de texto.

Muchos programas usan archivos de configuración basados ​​en texto, incluso si el formato contiene números y valores binarios (sí/no).

Esto hace que los programas sean algo más complicados debido a la necesidad de convertir de texto a un formato interno y viceversa, pero permite editar la configuración manualmente sin utilizar una herramienta de configuración en el propio programa.

¿Dónde se usa XML ahora?

XML se utiliza en varias áreas de TI. Pueden ser archivos de configuración (con ajustes del programa) o archivos utilizados para transferir datos entre programas. En Java, uno de los casos de uso más comunes es configurar Maven, una herramienta de automatización de compilación.

Estructura de un documento XML

Las estructuras físicas y lógicas de un documento XML se mantienen separadas. En cuanto a la estructura física, el documento consta de entidades que pueden hacer referencia a otras entidades.

El único elemento raíz es la entidad documento. Una entidad es la parte más pequeña de un documento. Todas las entidades tienen un nombre y contienen caracteres.

A su vez, los caracteres pertenecen a una de dos categorías: datos de carácter o marcado.

El marcado incluye:

  • etiquetas, que denotan los límites de los elementos;
  • declaraciones e instrucciones de procesamiento, incluidos sus atributos;
  • referencias de entidades;
  • comentarios;
  • secuencias de caracteres que envuelven secciones CDATA.

Lógicamente, el documento consta de elementos, comentarios, declaraciones, referencias a entidades e instrucciones de procesamiento. El marcado se utiliza para crear toda esta estructura en un documento.

Todas las partes constituyentes de un documento se dividen en un prólogo y un elemento raíz. El elemento raíz es la parte obligatoria y esencial de un documento XML, mientras que el prólogo puede no existir en absoluto. El elemento raíz puede constar de elementos anidados, datos de caracteres y comentarios. Los elementos de un documento deben anidarse correctamente: cualquier elemento que comience dentro de otro elemento también debe terminar dentro de ese elemento.

Símbolos de marcado

El marcado siempre comienza con < y termina con > .

Los símbolos < y > (corchetes angulares) y & (ampersand) juegan un papel especial. Los corchetes angulares indican los límites de los elementos, las instrucciones de procesamiento y algunas otras secuencias. Y el ampersand nos ayuda a reemplazar texto con entidades.

declaración XML

Una declaración XML especifica la versión del lenguaje utilizado para escribir el documento. La especificación XML dice que se inicie un documento con una declaración XML porque la interpretación adecuada del contenido del documento depende de la versión del lenguaje.

En la primera versión del lenguaje (1.0), esta declaración era opcional, pero es obligatoria en versiones posteriores. Se supone que una declaración faltante significa la versión 1.0. La declaración también puede contener información sobre la codificación del documento.

Ejemplo:

<?Versión XML="1.1" codificación="UTF-8" ?>

Etiquetas

Una etiqueta es una construcción de marcado que contiene el nombre de un elemento. Hay etiquetas de inicio y etiquetas de fin. También hay etiquetas de elementos vacíos que combinan elementos de inicio y finalización.

Ejemplos:

  • Etiqueta de inicio: <etiqueta1>

  • Etiqueta final: </tag1>

  • Etiqueta de elemento vacío: <empty_tag1 />

Atributos

Otra parte de los elementos XML son los atributos. Un elemento puede tener múltiples atributos únicos. Los atributos nos permiten especificar más información sobre un elemento. O más exactamente, los atributos definen las propiedades de los elementos.

Un atributo es siempre un par nombre-valor:

nombre = "valor"

Ejemplo de un atributo en una etiqueta:

<etiqueta1 nombre = "valor">elemento</etiqueta1>

El valor de un atributo debe estar entre comillas dobles ( " ) o comillas simples ( ' ). Los atributos solo se usan en las etiquetas de inicio y las etiquetas de elementos vacíos.

Escape de cinco caracteres especiales (<, >, ', ”, &)

Obviamente, los símbolos < , > y & no se pueden usar como tales en datos de caracteres y valores de atributos. Necesita secuencias de escape especiales para representarlas. También se utilizan secuencias especiales cuando se escriben apóstrofes y comillas dentro de valores de atributo:

Símbolo Reemplazo
< <
> >
& &erio;
' '
" "

Además, para escribir el carácter \ , debe usar \\ .

Sección CDATA

Una sección CDATA no es una unidad lógica de texto. Este tipo de sección puede ocurrir donde la sintaxis XML nos permite colocar datos de caracteres en el documento.

La sección comienza con <![CDATA[ y termina con ]]> . Los datos de caracteres se colocan entre estos bits de marcado, y los símbolos < , > y & se pueden usar en su forma directa.

Comentarios

Los comentarios no se consideran datos de carácter. Un comentario comienza con <!-- y termina con --> . La secuencia de caracteres no se puede utilizar dentro de un comentario. Además, dentro de un comentario, el carácter ampersand no denota marcado.

Ejemplo:

<!-- esto es un comentario -->

nombres

En XML, todos los nombres pueden contener solo letras en la tabla de caracteres Unicode, números arábigos, puntos, dos puntos, guiones y guiones bajos. Los nombres pueden comenzar con una letra, dos puntos o un guión bajo. Tenga en cuenta que un nombre no puede comenzar con la cadena XML .

Ejemplo

Veamos una clase de Java y un objeto de esa clase. Luego intentaremos serializar el objeto en formato XML. Código de clase:

public class Book {
   private String title;
   private String author;
   private Integer pageCount;
   private List<String> chapters;

   public Book(String title, String author, Integer pageCount, List<String> chapters) {
       this.title = title;
       this.author = author;
       this.pageCount = pageCount;
       this.chapters = chapters;
   }
// Getters/setters
}

y creación de objetos:

Book book = new Book("My Favorite Book", "Amigo", 999, Arrays.asList("Chapter 1", "Chapter 2", "Chapter 3", "Chapter 4", "Chapter 5", "Chapter 6"));

Este es un ejemplo de una representación XML válida de un objeto Java que contiene 4 campos, uno de los cuales es una colección (consulte el código Java anterior):

<Libro>
  <title>Mi libro favorito</title>
  <author>Amigo</author>
  <pageCount>999</pageCount>
 <chapters>
    <chapters>Capítulo 1</chapters>
    <chapters>Capítulo 2</chapters>
    <capítulos>Capítulo 3</capítulos>
    <capítulos>Capítulo 4</capítulos>
    <capítulos>Capítulo 5</capítulos>
    <capítulos>Capítulo 6</capítulos> < /capítulos >
 </Libro>

esquema XML

Un esquema XML es una descripción de la estructura de un documento XML. La especificación correspondiente (definición de esquema XML o XSD) es una recomendación del W3C.

XSD fue diseñado para expresar las reglas que debe seguir un documento XML. Pero lo más interesante para nosotros es que XSD fue diseñado para ser utilizado en el desarrollo de software que procesa documentos XML. Nos permite verificar la corrección de un documento XML mediante programación.

Los archivos que contienen un esquema XML tienen la extensión .xsd. El diseño de un esquema XML está más allá del alcance de esta lección, así que por ahora tenga en cuenta que existe la posibilidad.