Página precedente Indice Página siguiente


5. Detección de problemas


5.1 Conjuntos de caracteres

Una de las características más importantes del lenguaje de marcado XML es su portabilidad. En efecto, los documentos en XML pueden contener cualquier carácter Unicode, salvo algunos de los que se utilizan con fines de control. Desafortunadamente, muchas bases de datos ofrecen un apoyo limitado o ninguno para Unicode y necesitan una configuración especial para manejar caracteres que no sean ASCII. Si sus datos contienen caracteres que no sean ASCII, asegúrese de verificar en qué forma y si su base de datos y el programa para la transferencia de los datos manejan estos caracteres. De esta manera, se debe verificar cómo (o el sistema de donde se extraen los datos) maneja y manipula la codificación la base de datos.

Dado que los documentos en XML deben estar codificados en UTF-8 (de preferencia), otros esquemas de codificación, como el ISO-8859 también se permiten, siempre que se declare con claridad en el encabezado inicial en XML, a fin de que se reconozca y exponga correctamente en el depósito centralizado del AGRIS XML.

5.2 Referencias predefinidas de entidades

XML predefine las cinco referencias de entidades que se muestran enseguida. Estas referencias a entidades se utilizan en los documentos XML en lugar de caracteres específicos que de otra manera se interpretarían como parte del lenguaje de marcado.

Carácter

Referencias a entidades

&

&

<

&lt;

>

&gt;

&quot;

&apos;

5.3 Espacio en blanco

En los datos XML se tratan como espacio en blanco cuatro caracteres: el tabulador horizontal, el avance de línea, el salto de renglón y el carácter ASCII de espacio. Ninguno de éstos se debe representar en la misma etiqueta XML. El insumo se debería anotar como debe presentarse en la base de datos del AGRIS. Por lo tanto, es necesario evitar las siguientes dos situaciones:

5.4 Elementos repetibles

Los elementos repetibles o calificadores deben tener etiquetas múltiples.

Por ejemplo, la siguiente no es válida:

<ags:subjectClassification scheme="ags:ASC">E20 ; J12</ags:subjectClassification>

mientras que la siguiente codificación es correcta:

<ags:subjectClassification scheme="ags:ASC">E20</ags:subjectClassification>
<ags:subjectClassification scheme="ags:ASC">J12</ags:subjectClassification>

5.5 Tamaño de los documentos en XML

Evítese crear y enviar documentos grandes en XML. Si los archivos tienen más de 500 Kb, divídanse en dos o más archivos. Al dividir el archivo, es necesario asegurar que tengan el encabezado correcto (véase 4.1). Con todo, es más conveniente, en el manejo de documentos XML en grandes depósitos, dividir cada recurso XML de todos los documentos.

5.6 Esquema para xml:lang

El atributo xml:lang da a los autores una forma homogénea de identificar el idioma que contiene un determinado elemento. El AGRIS AP utiliza este atributo para los elementos en los que se considera necesario saber en qué idioma está el contenido. Esta extensibilidad también permite que haya múltiples valores del elemento especificado en distintos idiomas. Utilizar el esquema ISO639-2 (código de tres letras) para el atributo xml:lang.

5.7 Etiquetas para lo elementos vacíos

Tiene que haber etiquetas sin contenido para los no elementos, subelementos y atributos. Al mapear la estructura de la base de datos a un documento en XML hay que tener cuidado de mapear los tipos opcionales de elementos y atributos en columnas anulables (es decir, campos que admiten valores nulos) y viceversa. Si no se procede así se pueden producir documentos inválidos (al transferir datos de la base de datos) y crear elementos vacíos o calificadores sin intención.

5.8 Etiquetas obligatorias

A pesar de la flexibilidad del esquema DTD hay algunas reglas que es necesario respetar para obtener un documento XML válido. Algunos elementos obligatorios, calificadores y esquemas tienen que incluirse en las etiquetas pertinentes. Esto quiere decir que los documentos válidos en XML deberían contener por lo menos los siguientes cinco elementos centrales para cada ags:resource:

• <dc:title>
• <dc:date>
• <dc:subject>
• <dc:language>
• <agls:availability>

5.9 Incongruencia entre los metadatos locales con los elementos del AGRIS AP

Los sistemas locales a menudo contienen campos específicos que responden a requisitos locales y no tienen un elemento correspondiente en la estructura de metadatos del AGRIS AP. Durante el mapeo y el proceso de transformación estos datos no se tienen que tomar en cuenta. Esta versión de los metadatos del AGRIS AP es muy flexible y su objetivo es incorporar también diversos tipos de información y en futuras versiones será posible tener en cuenta la incorporación de calificadores o esquemas claves.

5.10 Anidamiento, simplificación y correspondencia con DC

El conjunto de metadatos de Dublin Core no es del todo adecuado para describir recursos y en algunos casos el elemento DC se ha calificado para los recursos del AGRIS.

La calificación de los elementos de Dublin Core se orienta por una regla denominada "principio de simplificación" (dumb-down). De acuerdo a esta regla un cliente debería poder no tomar en cuenta cualquier calificador y utilizar el valor como si no estuviera calificado. Si bien esto puede producir la pérdida de cierto grado de especificidad, el valor restante del término (menos el calificador) debe seguir siendo por lo general correcto y útil para la localización. Por lo tanto, la calificación sólo refina y no amplia el alcance semántico de los elementos.

Las refinaciones de los elementos (calificadores) comparten el significado del elemento sin calificar, pero con un ámbito más limitado. Cuando hace falta, estos calificadores se "simplifican" en elementos de Dublin Core anidándolos a fin de que correspondan a DC. El siguiente ejemplo simplifica ags:publisherPlace y ags:publisherName al elemento DC dc:publisher. Esta práctica se traduce en que la refinación del elemento no se tome en cuenta y el valor se use como contenido del elemento sin calificar de DC dc:publisher.

Con calificadores

simplificado

<dc:publisher>
<ags:publisherPlace>Rome (Italy)</ags:publisherPlace>
<ags:publisherName>FAO</ags:publisherName>
</dc:publisher>

<dc:publisher>FAO Rome (Italy)</dc:publisher>


Página precedente Inicìo de página Página siguiente