CAPÍTULO 3: Importación de XML

 Existen varias formas de trabajar con las capacidades de importación de XML de Adobe. Comenzaremos con el proceso que ha sido documentado en un tutorial en video de Adobe.

Haciéndolo al modo de Adobe: El Enfoque del Marcador de Posición

Adobe espera que crees un modelo dentro de tu documento InDesign para tu contenido XML. Este modelo está compuesto por marcadores de posición, que son elementos XML que indican cómo será la estructura del XML entrante y cómo quieres que se vea. Este es un enfoque muy sensato cuando estás comenzando con XML y quieres tener una idea de cómo se formateará el XML importado en InDesign. Consulta la Figura 3-1.

Si importas XML sin mapas preexistentes para los estilos de párrafo, todo el contenido importado se verá como el estilo predeterminado que obtienes cuando haces un nuevo párrafo sin aplicar un estilo a él (el estilo de párrafo Básico).

Pasos del enfoque del marcador de posición, usando el contenido de descripción de cursos.

Figura 3-1. El diálogo de Opciones de Importación de XML con anotaciones.

A: Vincular al archivo XML fuente y actualizar el vínculo cuando cambie;
B: Usar XSLT para transformar el XML durante la importación; C: Usar texto de marcador de posición para autoformatear estructuras XML repetitivas; D: Suprimir elementos XML no deseados; E: Colocar contenido XML en tablas de InDesign; F: Eliminar tabulaciones, espacios y saltos de línea entre elementos XML; G: Eliminar elementos de diseño no deseados; H: Crear tabla de InDesign a partir de elementos de tabla XML CALS.


Modelando el XML que deseas

Integrando estructura en InDesign

La base de tu modelado será un conjunto de elementos XML de un DTD o archivo XML existente. Si tienes XML basado en un DTD, comienza importando el DTD a InDesign:

  1. En tu documento InDesign, selecciona `Ver→Estructura` o haz clic en el icono del panel de Estructura en la esquina inferior izquierda del documento.
  2. Selecciona `Estructura→Cargar DTD` y luego navega para seleccionar el DTD de tu contenido XML. Haz clic en OK y aparecerá una declaración DOCTYPE en la parte superior del panel de Estructura (Figura 3-2).
Figura 3-2. El panel de Estructura (arriba a la izquierda) mostrando el DTD (como una declaración DOCTYPE), y la ventana de Etiquetas (derecha) mostrando los nombres de los elementos del DTD. El DOCTYPE determina qué nombres de etiquetas se verán en la lista de Etiquetas. Root es la etiqueta predeterminada en cualquier archivo de InDesign, incluso cuando no se ha etiquetado texto en el archivo.

Ahora necesitamos trabajar con la ventana de Etiquetas; selecciona `Ventana→Etiquetas`. Como acabas de importar un DTD, la ventana de Etiquetas se pobló con los nombres de los elementos de tu DTD. Consulta la Figura 3-2. La ventana de Estructura (arriba a la izquierda) muestra el DTD (como una declaración DOCTYPE), y la ventana de Etiquetas (a la derecha) muestra los nombres de los elementos del DTD. El DOCTYPE determina qué nombres de etiquetas se verán en la lista de Etiquetas. Root es la etiqueta predeterminada en cualquier archivo InDesign, incluso cuando no se ha etiquetado texto en el archivo.

Si no tienes un DTD, puedes cargar la estructura directamente desde un archivo XML importando el archivo XML:

  1. Abre la paleta de Etiquetas desde el menú desplegable de Ventanas, luego haz clic en la pequeña flecha en la parte superior derecha de la ventana de Etiquetas para obtener el menú de Etiquetas.
  2. Selecciona `Cargar Etiquetas`, y luego navega hasta el archivo XML que usarás como fuente para tu importación de XML.
  3. Seléctalo y haz clic en OK. Los nombres de los elementos aparecerán en la ventana de Etiquetas.

Crear marcadores de posición para elementos XML

Obtén un marco de texto haciendo clic en el icono de la T y luego en tu documento vacío. Arrastra un marco de texto lo suficientemente grande como para trabajar en él. Ahora puedes comenzar a hacer tu texto de marcador de posición en el marco de texto.

Elige un elemento "contenedor" dentro del cual residirán todos los demás elementos. Si importaste un DTD, este será el elemento raíz de tu DTD, que en el caso de mi ejemplo simple es `<CourseDescriptions>`:

<?xml version="1.0" encoding="UTF-8"?>

<!ELEMENT CourseDescriptions (CourseDescription+)>

<!ELEMENT CourseDescription (CourseDescription_Major | CourseDescription_Name

| CourseDescription_Text | CourseDescription_Footnote)+>

<!ELEMENT CourseDescription_Footnote (#PCDATA)>

<!ATTLIST CourseDescription_Footnote

type CDATA #REQUIRED>

<!ELEMENT CourseDescription_Major (#PCDATA)>

<!ELEMENT CourseDescription_Name (#PCDATA)>

<!ELEMENT CourseDescription_Text (#PCDATA)>

Para iniciar tu XML con marcadores de posición, aplica la etiqueta del elemento raíz:

  1. Resalta el marco de texto y haz clic en el nombre de la etiqueta raíz correspondiente en la paleta de Etiquetas.
  2. Dentro del menú Ver, busca el ítem Estructura y despliégalo. Alterna a "Mostrar Marcos Etiquetados", si se muestra "Ocultar Marcos Etiquetados". Cambia a "Mostrar Marcadores de Etiquetas", si se muestra "Ocultar Marcadores de Etiquetas".** Este paso proporcionará fondos codificados por colores en los marcos de texto y corchetes alrededor de los elementos para ayudarte a ver las etiquetas cuando las apliques.
  3. Escribe el nombre de cada elemento de tu estructura XML en una línea individual, en el orden en que deberían aparecer en el documento.** Para el ejemplo, eso significa escribir los siguientes nombres de elementos:

  •    - `<CourseDescription_Major>`
  •    - `<CourseDescription_Name>`
  •    - `<CourseDescription_Text>`
  •    - `<CourseDescription_Footnote>`

  1. 4. Etiqueta cada línea de texto con la etiqueta XML correspondiente haciendo clic en el nombre correspondiente en la paleta de Etiquetas.** Debería parecerse a la Figura 3-3.
  2. 5. Guarda tu archivo.

Figura 3-3. El panel de Estructura (izquierda) refleja la organización de los elementos y atributos del XML. Los corchetes de colores alrededor de cada etiqueta en el marco de texto (centro) corresponden al color de la etiqueta en la paleta de Etiquetas (derecha).

Creando XML de prueba

Puedes trabajar más rápido si usas un archivo XML pequeño para las pruebas. Abre el XML que deseas importar en un editor XML o de texto y recórtalo hasta tener solo unos pocos conjuntos de contenido repetitivo. Para nuestro ejemplo, eso sería un `<CourseDescription_Major>` como Contabilidad y un par de conjuntos de elementos `<CourseDescription>`, cada uno conteniendo elementos `<CourseDescription_Name>`, `<CourseDescription_Text>` y `<CourseDescription_Footnote>` para asegurar que el contenido importado tenga suficiente variación para ser una buena prueba. Si tienes dudas sobre cómo editar el archivo XML, comienza guardando una copia, luego elimina elementos XML dentro del elemento raíz (no elimines el elemento raíz en sí) hasta que tengas solo unos pocos bloques de contenido que contengan la estructura de elementos que deseas probar. Guarda el archivo recortado y úsalo para tus pruebas con marcadores de posición.

(Cuanto más complejo sea tu XML y DTD, más grande será el conjunto de elementos de texto que necesitarás para cubrir todas las posibilidades de tu XML importado. Por supuesto, puedes intentar importar el archivo XML completo con el que planeas trabajar si te sientes valiente.)

Si tienes un DTD, pero no tienes el XML real que deseas importar, puedes crear un archivo XML desde el DTD usando una aplicación como XML Spy o Oxygen, pero tendrás que crear al menos la cantidad de contenido que describo (varios bloques de contenido repetitivos en cada nivel de estructura que esperas que se repita).

Esto es lo que importé en mis marcadores de posición para las pruebas: 

<?xml version="1.0" encoding="UTF-8" standalone="no"?>

<CourseDescriptions>

<CourseDescription>

<CourseDescription_Major>Accounting</CourseDescription_Major>

<CourseDescription_Name>ACC 101&#9;Accounting Principles I&#9;4 Credits

</CourseDescription_Name>

<CourseDescription_Text>Basic principles of financial accounting for

the business enterprise with emphasis on the valuation of business

assets, measurement of net income, and double-entry techniques for

recording transactions. Introduction to the cycle of accounting work,

preparation of financial statements, and adjusting and closing

procedures. Four class hours.

</CourseDescription_Text>

<CourseDescription_Footnote type="prereq">Prerequisite: MTH 098 or

MTH 130 or equivalent.</CourseDescription_Footnote>

</CourseDescription>

<CourseDescription>

<CourseDescription_Name>ACC 102 Accounting Principles II&#9;4 Credits

</CourseDescription_Name>

<CourseDescription_Text>A continuation of the basic principles of

financial accounting including a study of partnerships and corporation

accounts. The course deals with the development of accounting theory

with emphasis onmanagerial techniques for interpretation and use of

data in planning and controlling business activities.

Four class hours. </CourseDescription_Text>

<CourseDescription_Footnote type="prereq">Prerequisite: ACC 101 with a

grade of C or higher, or ACC 110 and ACC 111 with an average grade of C

or higher.

</CourseDescription_Footnote>

</CourseDescription>

...

</CourseDescriptions>

Para importar XML:

  1. Selecciona el marco de texto luego el menú **Archivo**, y selecciona **Importar XML** en el menú desplegable; aparecerá el cuadro de diálogo de **Importación de XML** (Figura 3-4).
  2. Navega hasta tu archivo XML de muestra y selecciónalo, luego marca las casillas junto a "Mostrar Opciones de Importación de XML" y "Importar en el Elemento Seleccionado" y el botón de opción junto a Fusionar Contenido. 

Figure 3-4. The Import XML dialog
Marca las casillas para "Crear enlace" y "Clonar elementos de texto repetidos" y luego haz clic en OK (Figura 3-5).
Figura 3-5. El diálogo de Opciones de Importación

Tu contenido XML ahora aparecerá en el panel de Estructura (Figura 3-6) a la izquierda de tu panel de documento de InDesign. El texto de la primera parte del XML debería llenar el marco de texto en tu página. Todo se verá como el estilo de Párrafo Básico del documento de InDesign en este momento.

3. Guarda tu archivo de InDesign para preservar su estado actual antes de añadir estilos.

Por defecto, el XML importado está colapsado en la vista del panel de Estructura. Puedes hacer clic en los triángulos junto a los elementos para expandirlos y ver qué otros elementos contienen. (Un punto negro en negrita y texto debajo de un elemento indica la presencia de un atributo, un poco de información adicional sobre el significado o uso del elemento).

Para mantener la cordura durante la edición, es posible que desees expandir solo una pequeña cantidad de XML a la vez en el panel de Estructura. InDesign "recuerda" todos los elementos XML que expandes durante una sesión, así que si colapsas un elemento y luego lo expandes, los elementos que estaban expandidos dentro de él seguirán expandidos.

Cuando tienes mucho XML en un archivo, puede ser muy confuso relacionar dónde estás en el panel de Estructura con dónde aparece el texto del elemento en el flujo de texto. Puedes resaltar un elemento en el panel de Estructura, luego usar el menú del panel de Estructura (esquina superior derecha) y seleccionar "Ir al Elemento" para resaltar la ubicación de un elemento XML en el flujo de texto.

Figura 3-6. El panel de Estructura mostrando el archivo XML importado (expandido) a la izquierda; la paleta de Etiquetas y la paleta de Enlaces (centro) y el documento con el marco de texto lleno con el contenido de los elementos XML (derecha).

Añadiendo estilo a los elementos XML

Ahora que has importado el XML, necesitas hacer que luzca como deseas, lo que significa que necesitas asignar el estilo de párrafo apropiado a cada tipo de contenido. Afortunadamente, Adobe ofrece una manera fácil de aplicar los estilos de párrafo. Primero, debes crearlos, y es una buena idea basarlos en los nombres de tus elementos XML:

  1. En la paleta de Párrafos, crea un nuevo estilo de párrafo para cada uno de los elementos excepto el elemento raíz, nombrando a cada uno exactamente como los elementos XML están nombrados.
  2. Dale a cada estilo fuentes distintas, peso, etc., para que puedas ver fácilmente las diferencias entre ellos cuando los apliques al texto en tu marco de texto. (Si necesitas información sobre cómo crear nuevos estilos de párrafo, consulta los archivos de ayuda de InDesign). Ahora puedes mapear estos nuevos estilos de párrafo a tus elementos XML.

Alternativamente, puedes importar estilos de un documento InDesign existente y renombrarlos si es necesario.

Mapeando estilos a etiquetas

Estás listo para mapear etiquetas a estilos. En el borde superior derecho del panel de Estructura hay un botón que se expande a un menú. Para mapear los estilos a las etiquetas:

1. En este menú, selecciona Mapear Etiquetas a Estilos y se abrirá un diálogo (Figura 3-7).

Figura 3-7.El diálogo Mapear Estilos a Etiquetas, antes del mapeo.

2. Revisa los nombres de los elementos y los nombres de tus estilos de párrafo. Si coinciden exactamente (¡la mayúscula importa!), haz clic en Mapear por Nombre. (Si no coinciden, cambia los nombres de los estilos de párrafo, no las etiquetas XML, y luego haz clic en Mapear por Nombre).

El diálogo ahora debería mostrar los nombres alineados como se muestra en la Figura 3-8.

Figura 3-8.El diálogo Mapear Estilos a Etiquetas, después del mapeo.

3. Haz clic en OK. Verás que el texto en el marco de texto ahora está estilizado con tus estilos de párrafo, como en la Figura 3-9. (Este es típicamente el momento en que involuntariamente celebras, ¡o posiblemente saltas de tu silla!) Guarda tu archivo.

Figura 3-9. XML importado, autoformateado al ser importado en InDesign.

Puedes mirar el XML importado y formateado en tu marco de texto y compararlo con tu XML original para asegurarte de que el mapeo ha aplicado estilos como pretendías (ver Figura 3-10).


Figura 3-10. El XML formateado en InDesign (izquierda) comparado con el XML sin formato (derecha).

Puedes ajustar tabulaciones, cambiar colores y fuentes, y hacer cualquier cambio que desees a un estilo de carácter o párrafo, y los cambios se aplicarán automáticamente a cada elemento (etiqueta) con un nombre que coincida con el estilo.

También puedes aplicar anulaciones locales al estilo de un trozo particular de texto etiquetado, y no afectará al resto de los elementos con el nombre de etiqueta que están mapeados al mismo estilo de párrafo.

Ahora puedes proceder con todo el archivo XML.

 Importando el archivo XML "real"

Ahora que tienes una buena muestra de trabajo, estás listo para probar el archivo XML completo:

  1. 1. Selecciona el nodo raíz de tu archivo XML de muestra en el panel de Estructura.
  2. 2. Elimina el archivo. Aparecerá un diálogo pidiendo confirmación para realizar esta acción; haz clic en Eliminar.
  3. 3. Importa XML como antes, pero selecciona el archivo XML real que deseas publicar, en lugar de tu archivo de muestra. Selecciona Fusionar para reemplazar el elemento raíz vacío con el nuevo XML.

Puedes ver el texto estilizado reaparecer en el marco de texto, y muchos más elementos XML aparecerán en el panel de Estructura.


will also see updates on the Links palette if the linked XML file has been modified outside of InDesign. This feature allows you to keep your InDesign document synchronized with the latest changes to the XML without having to re-import the whole file each time.


**Utilizing Merge and Append in XML Import**

- **Merge**: If you choose to Merge during the import, InDesign replaces the content within the selected root or text frame with the incoming XML content. This is useful when you want to refresh the entire content with updated XML.

- **Append**: Using Append adds the incoming XML content to the end of the existing content within the selected text frame or structure element. This method is useful for continuously adding to a document without disturbing the existing content.


**External Link Management**

- **Link Management**: InDesign treats linked XML files like other linked resources (e.g., images). Managing these links through the Links palette lets you update the InDesign file as the source XML changes, ensuring that your layout contains the most current data.


**Handling Complex XML Structures**

- **Complex XML Structures**: When dealing with complex or large XML files, it may be advantageous to break down the file into smaller, more manageable pieces. This approach can help prevent performance issues like slowdowns or crashes in InDesign.


**Strategies for Optimizing XML Workflows**

- **Optimizing Workflow**: For large projects, consider using features like Smart Text Reflow and threading text frames to efficiently manage and flow the XML content through the document. These features can significantly speed up the process of integrating XML into your InDesign projects.


**Dealing with XML and Non-XML Content**

- **Mixed Content**: InDesign allows the mixing of XML-tagged and non-XML-tagged content within the same text flow. This capability is essential for projects that require dynamic content alongside static or untagged content.


**Export Considerations**

- **Exporting XML and XHTML**: When exporting content, whether as XML or XHTML, consider how the structure of the document affects the output. The order and organization of the XML tags can impact the final product, especially when targeting web formats.


**Mapping Styles to Tags**

- **Caution with Mapping**: Be cautious when mapping styles to tags, as incorrect mappings can restructure your document in unintended ways. Always verify that the mapping aligns with your document’s structure and intended output.


**Editing and Refining XML Content**

- **Refining XML Content**: After importing and applying styles, you may need to refine the content by adjusting tags, reordering elements, or editing text directly in the Story Editor or through the Structure pane to ensure the XML aligns perfectly with your layout needs.


**Future Proofing Your Work**

- **Maintaining Flexibility**: As projects evolve, your XML structure might need to adapt. Keeping your InDesign documents and XML files well-organized and easy to update will save time and prevent issues as changes are needed.


By carefully managing XML content and understanding the tools and options available in InDesign, you can streamline your publishing workflow, ensuring that your documents are both flexible and accurate, reflecting the dynamic nature of XML-based projects.

**Understanding InDesign's XML Import Options**


When you encounter the XML Import Options dialog in InDesign, navigating the choices can initially seem daunting. Here’s a breakdown of the key options and how they apply to your workflow:


1. **Merge Content**: This option is crucial when you need to update existing content within an InDesign document. It replaces the content of the selected element or the entire document with the newly imported XML content, aligning it with the existing structure.


2. **Create Link**: Selecting this allows InDesign to maintain a dynamic link to the source XML file. This is beneficial for documents that require ongoing updates, as any changes made to the original XML file can be synchronized by refreshing the link within InDesign.


3. **Clone Repeating Text Elements**: This is useful when your XML structure contains repetitive elements that need to be duplicated within the document. InDesign will automatically replicate the formatting and structure for each instance of the repeating element.


4. **Show XML Import Options**: Enabling this will prompt the XML Import Options dialog every time XML is imported. This is useful for making adjustments specific to each import session, allowing for customized handling of the XML content.


5. **Import Into Selected Element**: When checked, this directs InDesign to import the XML content directly into a selected element or frame within the layout. This is particularly useful for targeted updates where only a portion of the document needs to be refreshed with new XML data.


### Workflow Tips for Importing XML into InDesign


- **Planning the Import**: Before importing, decide whether your project benefits more from linked or embedded XML content. Linking is preferable for documents that undergo frequent updates, while embedding works well for one-time imports.


- **Organizing Text Flows**: If you're not selecting a text frame during import, prepare to organize your text flows manually. Drag the XML root element or specific content elements from the Structure pane into your desired text frames to control the layout.


- **Using the Story Editor for Detailed Edits**: The Story Editor is an invaluable tool for making detailed edits to your XML content within InDesign. It allows you to see the tag markers and structure clearly, making it easier to navigate and modify deeply nested elements.


- **Rearranging Elements**: Use the Structure pane for major rearrangements or when working with large sections of the XML file. For precise movements or small adjustments, switch to the Story Editor view.


- **Refreshing the Layout**: After making edits in the Story Editor, frequently switch back to the Layout view to ensure that the visual appearance of the text aligns with the overall design and layout intentions. This helps prevent layout issues that might arise from edits made in the Story Editor.


### Handling Complex Documents


For complex documents or when integrating substantial amounts of XML content, consider breaking the process into more manageable parts. If dealing with very large or complex XML files, segmenting the file and using the Append function can facilitate smoother imports and better manage document performance.


### Final Thoughts on XML in InDesign


Navigating XML import and management in InDesign can initially appear complex, but understanding these tools and options simplifies the process. With practice, these features enable powerful, dynamic document creation tailored to sophisticated publishing needs, merging the precision of XML content management with the robust design capabilities of InDesign.

**Comprender las Opciones de Importación de XML en InDesign**


Al encontrarte con el cuadro de diálogo de Opciones de Importación de XML en InDesign, navegar por las opciones puede parecer desalentador inicialmente. Aquí tienes un desglose de las opciones clave y cómo se aplican a tu flujo de trabajo:


- **Fusionar Contenido**: Esta opción es crucial cuando necesitas actualizar el contenido existente dentro de un documento de InDesign. Reemplaza el contenido del elemento seleccionado o del documento entero con el contenido XML recién importado, alineándolo con la estructura existente.

- **Crear Enlace**: Seleccionar esto permite a InDesign mantener un enlace dinámico al archivo XML fuente. Esto es beneficioso para documentos que requieren actualizaciones continuas, ya que cualquier cambio realizado en el archivo XML original puede sincronizarse actualizando el enlace dentro de InDesign.

- **Clonar Elementos de Texto Repetitivos**: Esto es útil cuando tu estructura XML contiene elementos repetitivos que necesitan duplicarse dentro del documento. InDesign replicará automáticamente el formato y la estructura para cada instancia del elemento repetitivo.

- **Mostrar Opciones de Importación de XML**: Activar esto provocará que el cuadro de diálogo de Opciones de Importación de XML aparezca cada vez que se importe XML. Esto es útil para hacer ajustes específicos para cada sesión de importación, permitiendo un manejo personalizado del contenido XML.

- **Importar en Elemento Seleccionado**: Cuando está marcado, esto dirige a InDesign para importar el contenido XML directamente en un elemento o marco seleccionado dentro del diseño. Esto es particularmente útil para actualizaciones dirigidas donde solo una parte del documento necesita ser refrescada con datos XML nuevos.


**Consejos de Flujo de Trabajo para la Importación de XML en InDesign**


- **Planificación de la Importación**: Antes de importar, decide si tu proyecto se beneficia más de contenido XML vinculado o incrustado. Vincular es preferible para documentos que sufren actualizaciones frecuentes, mientras que incrustar funciona bien para importaciones únicas.

- **Organizar Flujos de Texto**: Si no seleccionas un marco de texto durante la importación, prepárate para organizar tus flujos de texto manualmente. Arrastra el elemento raíz del XML o elementos de contenido específicos desde el panel de Estructura a los marcos de texto deseados para controlar el diseño.

- **Usando el Editor de Historias para Ediciones Detalladas**: El Editor de Historias es una herramienta invaluable para realizar ediciones detalladas a tu contenido XML dentro de InDesign. Te permite ver claramente los marcadores de etiquetas y la estructura, facilitando la navegación y modificación de elementos profundamente anidados.

- **Reorganizando Elementos**: Usa el panel de Estructura para reorganizaciones importantes o cuando trabajes con grandes secciones del archivo XML. Para movimientos precisos o pequeños ajustes, cambia a la vista del Editor de Historias.

- **Refrescando el Diseño**: Después de hacer ediciones en el Editor de Historias, cambia frecuentemente de vuelta a la vista de Diseño para asegurarte de que la apariencia visual del texto se alinea con las intenciones generales de diseño y disposición. Esto ayuda a prevenir problemas de diseño que podrían surgir de las ediciones hechas en el Editor de Historias.


**Manejo de Documentos Complejos**


Para documentos complejos o al integrar cantidades sustanciales de contenido XML, considera dividir el proceso en partes más manejables. Si te enfrentas a archivos XML muy grandes o complejos, segmentar el archivo y usar la función de Añadir puede facilitar importaciones más fluidas y gestionar mejor el rendimiento del documento.


**Reflexiones Finales sobre XML en InDesign**


Navegar por la importación y gestión de XML en InDesign puede parecer inicialmente complejo, pero comprender estas herramientas y opciones simplifica el proceso. Con práctica, estas características permiten la creación de documentos dinámicos y potentes adaptados a necesidades de publicación sofisticadas, fusionando la precisión de la gestión de contenido XML con las robustas capacidades de diseño de InDesign.


Si tu XML:Elige esta opción de importaciónComentarios
Debería crear un archivo InDesign actualizado cuando el XML fuente cambieCrear enlaceSi usas esta opción, puedes actualizar el XML dentro de InDesign usando la paleta de Enlaces, igual que actualizarías una imagen u otro archivo vinculado. Adobe advierte que pueden ocurrir resultados inesperados si la estructura XML actualizada es diferente de la que originalmente se importó en InDesign. Caveat emptor (Que el comprador tenga cuidado).
Contiene bloques repetitivos de elementos que siempre quieres formatear de la misma maneraClonar elementos de texto repetidosEsta opción es mejor para el autoformato rápido de XML extraído de bases de datos, o otras estructuras XML repetitivas que necesitan un diseño consistente. Úsala con marcadores de posición que modelen la secuencia exacta en la que deseas organizar el contenido XML.
Contiene elementos que no son necesarios en tu documento InDesign actualSolo importar elementos que coincidan con la estructura existenteEn este caso, "elementos" parece referirse a elementos XML, pero "estructura existente" se refiere a las etiquetas que has configurado dentro de InDesign, no a la estructura del archivo XML entrante completo. Usa esta configuración para mantener la importación de XML libre de elementos extraneous como metadatos que no hayas mapeado a estilos de párrafo.
Si tu XML:Elige esta opción de importaciónComentarios
Debería crear un diseño de tabla en tu documento InDesign (si quieres usar esta capacidad sin que sea obvio, haz una tabla sin bordes visibles)Importar elementos de texto en tablas si las etiquetas coincidenSi has configurado una tabla en tu documento InDesign y has mapeado etiquetas a la estructura de la tabla, el XML importado fluirá hacia las celdas de la tabla. Esta característica es muy poderosa para formatear grandes tablas pero puede no funcionar como se espera si necesitas tablas anidadas. InDesign proporciona maneras de hacer encabezados y pies de página para tablas que se extienden a través de múltiples marcos de texto, que pueden usarse con la importación de XML. Consulta la discusión separada de tablas en este libro en la sección "El Caso Especial de las Tablas de InDesign (XML con Espacios de Nombres)" (página 49).
Debería fluir alrededor de elementos no etiquetados en el documento InDesign (etiquetas, imágenes, citas destacadas, etc.)No importar contenidos de elementos solo de espacios en blancoEsta, la opción más confusa, evita que el texto no etiquetado (no XML) en un flujo de texto sea sobrescrito por elementos XML entrantes. En términos de InDesign, un “elemento” solo de espacios en blanco no aparece en el panel estructurado pero es visible en la vista del Editor de Historias. Generalmente es una tabulación, salto de línea o espacio(s). Esta opción se comprende mejor mediante pruebas. Esta opción insertará etiquetas cuando se clonen bloques repetitivos creados con la técnica de marcadores de posición; preserva elementos no etiquetados en el punto donde aparecen en el flujo de texto.
Contiene estructuras opcionalesEliminar elementos, marcos y contenido que no coincidan con el XML importadoSi estás creando diseños de página con marcos de texto etiquetados que no siempre son necesarios en cada página de un diseño similar, esta opción eliminará dichos marcos de texto cuando se importe el XML y un marco de texto no sea necesario. Adobe proporciona un ejemplo de un marco de texto de Notas laterales; cuando no hay un XML de Notas correspondiente en una página, el marco de texto se elimina de la página cuando se importa el XML.


Usar "Clonar Elementos de Texto Repetitivos"

**Prueba rápida**: si has creado marcadores de posición para tus elementos XML, selecciona los marcadores, elige Fusionar, e importa el archivo XML completo sin marcar la opción "Clonar elementos de texto repetitivos". ¿Cuánto de tu archivo XML se importó?

Parece que InDesign espera que tengas una estructura de contenido repetitivo, identificable por un elemento "contenedor" que contiene otros elementos. Por ejemplo, el contenido de descripciones de cursos tiene un elemento `<CourseDescription>` que contiene el nombre, descripción y contenido del prerrequisito. Sin el elemento contenedor `<CourseDescription>`, InDesign no aplicará correctamente la opción "clonar" al XML entrante cuando selecciones la opción "Clonar elementos de texto repetitivos".

No es inusual tener que iterar en los procesos de desarrollo de XML hasta alcanzar la apariencia deseada para el XML importado. Prueba cada opción y documenta los resultados a medida que avanzas, luego haz que los mejores ajustes sean parte de tu procedimiento estándar.

Tabla: Estructura de Elementos Envueltos vs. No Envueltos en la Importación de XML

Estructura del ElementoResultado
Envuelto"Clonar elementos de texto repetitivos" funcionará correctamente si se establecieron marcadores de posición; cada estructura repetitiva será formateada idénticamente. <CourseDescription> <CourseDescription_Name>ACC 101&#9;Accounting Principles I&#9;4 Credits </CourseDescription_Name> <CourseDescription_Text>Basic principles of financial accounting for the business enterprise with emphasis on the valuation of business assets, measurement of net income, and double-entry techniques for recording transactions. Introduction to the cycle of accounting work, preparation of financial statements, and adjusting and closing procedures. Four class hours.</CourseDescription_Text> <CourseDescription_Footnote type="prereq">Prerequisite: MTH 098 or MTH 130 or equivalent. </CourseDescription_Footnote> </CourseDescription> <CourseDescription> <CourseDescription_Name>ACC 102 Accounting Principles II&#9;4 Credits </CourseDescription_Name> <CourseDescription_Text>A continuation of the basic principles of financial accounting including a study of partnerships and corporation accounts. The course deals with the development of accounting theory with emphasis on managerial techniques for interpretation and use of data in planning and controlling business activities. Four class hours.</CourseDescription_Text> <CourseDescription_Footnote type="prereq">Prerequisite: ACC 101 with a grade of C or higher, or ACC 110 and ACC 111 with an average grade of C or higher. </CourseDescription_Footnote> </CourseDescription>
No EnvueltoSin el elemento contenedor <CourseDescription>, "Clonar elementos de texto repetitivos" solo importará el primer bloque de estructura del XML. Los bloques subsiguientes no serán importados ni formateados. <CourseDescription_Name>ACC 101&#9;Accounting Principles I&#9;4 Credits </CourseDescription_Name> <CourseDescription_Text>Basic principles of financial accounting for the business enterprise with emphasis on the valuation of business assets, measurement of net income, and double-entry techniques for recording transactions. Introduction to the cycle of accounting work, preparation of financial statements, and adjusting and closing procedures. Four class hours.</CourseDescription_Text> <CourseDescription_Footnote type="prereq">Prerequisite: MTH 098 or MTH 130 or equivalent. </CourseDescription_Footnote>

Importando Solo Elementos Que Coinciden con la Estructura

A veces no quieres que parte del archivo XML aparezca en la versión impresa del contenido, como los elementos XML que describen el documento en sí, su creador, propósito, aprobaciones, etc., que comúnmente se refieren como "metadatos". Si creas marcadores de posición para todos los elementos que deseas, pero no creas marcadores de posición para los elementos XML no deseados, puedes usar esta opción para excluirlos de la importación.

Por ejemplo, en la siguiente sección del archivo XML, el elemento `<metadata>` no está en la estructura de marcadores de posición en el documento de InDesign.

<CourseDescriptions>

<metadata><creator>Hoskins</creator><createDate>03012007</createDate><note>used

for table layout (table tagged as &lt;CourseDescriptions&gt;)</note>

<note>placeholder text is named with element names for clarity; paragraph style

names may be different, so not using Map Tags to Styles with Map by Name

checkbox.</note></metadata>

<CourseDescription_Major>Accounting</CourseDescription_Major>

<CourseDescription>

<CourseDescription_Name>ACC 101&#9;Accounting Principles I&#9;4 Credits

</CourseDescription_Name>

<CourseDescription_Text>Basic principles of financial accounting for the

business enterprise with emphasis on the valuation of business assets,

measurement of net income, and double-entry techniques for recording

transactions. Introduction to the cycle of accounting work, preparation of

financial statements, and adjusting and closing procedures. Four class hours.

</CourseDescription_Text>

<CourseDescription_Footnote type="prereq">Prerequisite: MTH 098 or MTH 130 or

equivalent.</CourseDescription_Footnote>

</CourseDescription>

Debido a que las etiquetas de metadatos no coinciden con los elementos de marcadores de posición que se configuraron, pueden ser excluidas utilizando la opción "Importar solo elementos que coincidan con la estructura". Por lo tanto, el resultado en el XML importado debería ser solo este:

<CourseDescriptions> <CourseDescription_Major>Accounting</CourseDescription_Major> <CourseDescription> <CourseDescription_Name> ACC 101&#9;Accounting Principles I&#9;4 Credits </CourseDescription_Name> <CourseDescription_Text> Basic principles of financial accounting for the business enterprise with emphasis on the valuation of business assets, measurement of net income, and double-entry techniques for recording transactions. Introduction to the cycle of accounting work, preparation of financial statements, and adjusting and closing procedures. Four class hours. </CourseDescription_Text> <CourseDescription_Footnote type="prereq"> Prerequisite: MTH 098 or MTH 130 or equivalent. </CourseDescription_Footnote> </CourseDescription>

Si el archivo XML importado está vinculado, entonces el XML en el archivo original aún contendrá los elementos que no fueron importados. Simplemente no estarán en la estructura del documento de InDesign. Por lo tanto, no esperes verlos si exportas el XML desde InDesign más tarde. Si planeas validar XML, ten cuidado de no excluir elementos que sean requeridos por el DTD.

Evitar Sobrescribir Etiquetas de Texto en los Elementos de Marcadores de Posición

En InDesign, un elemento "solo de espacios en blanco" es aquel que contiene una tabulación, salto de línea o espacio(s), y si encuentras difícil de entender esto leyendo estas palabras, no estás solo. La opción "No importar contenidos de elementos solo de espacios en blanco" difícilmente podría ser más obtusa. En la Guía del Usuario de Adobe InDesign CS2, la descripción de esta opción dice: "Deja cualquier contenido existente en su lugar si el contenido XML correspondiente contiene solo espacios en blanco (como un carácter de retorno o tabulación). Utiliza esta opción si has incluido texto entre elementos que deseas preservar. Por ejemplo, al diseñar recetas generadas desde una base de datos, podrías agregar etiquetas, como 'Ingredientes' e 'Instrucciones'. Mientras el elemento padre que envuelve cada receta contenga solo espacios en blanco, InDesign deja la etiqueta en su lugar." Estoy seguro de que eso aclara cómo usar esta opción, pero por si acaso no lo hace, vamos a desglosarlo con un ejemplo. Aquí hay algún contenido de marcador de posición XML con etiquetas insertadas entre algunos de los elementos:

<CourseDescriptions> <CourseDescription> Major: <CourseDescription_Major>CourseDescriptions_Major</CourseDescription_Major> <CourseDescription_Name>CourseDescriptions_Name</CourseDescription_Name> <CourseDescription_Text>CourseDescriptions_Text</CourseDescription_Text> Note: <CourseDescription_Footnote>CourseDescriptions_Footnote </CourseDescription_Footnote> </CourseDescription> </CourseDescriptions>

Aquí está la estructura XML que vamos a importar:

<CourseDescriptions> <CourseDescription_Major>Accounting</CourseDescription_Major> <CourseDescription>

<CourseDescription_Name>

ACC 101&#9;Accounting Principles I&#9;4 Credits

</CourseDescription_Name>

<CourseDescription_Text>

Principios básicos de contabilidad financiera para la empresa con énfasis en la valoración de activos empresariales, medición del ingreso neto y técnicas de doble entrada para registrar transacciones. Introducción al ciclo de trabajo contable, preparación de estados financieros y procedimientos de ajuste y cierre. Cuatro horas de clase.

</CourseDescription_Text>

<CourseDescription_Footnote type="prereq">

Prerequisite: MTH 098 or MTH 130 or equivalent.

</CourseDescription_Footnote>

</CourseDescription>

</CourseDescriptions>

Si utilizamos la opción "No importar contenidos de elementos solo de espacios en blanco" cuando importamos contenido XML en un documento de plantilla de InDesign con nuestro texto de marcador de posición, el resultado de la importación serán entradas etiquetadas en el XML final, como en el siguiente ejemplo:

<CourseDescriptions>

Major:

<CourseDescription_Major>Accounting</CourseDescription_Major>

<CourseDescription>

<CourseDescription_Name>

ACC 101&#9;Accounting Principles I&#9;4 Credits

</CourseDescription_Name>

<CourseDescription_Text>

Basic principles of financial accounting for the business enterprise

with emphasis on the valuation of business assets, measurement of net

income, and double-entry techniques for recording transactions.

Introduction to the cycle of accounting work, preparation of financial ,

statements and adjusting and closing procedures. Four class hours.

</CourseDescription_Text>

Note:

<CourseDescription_Footnote type="prereq">

Prerequisite: MTH 098 or MTH 130 or equivalent.

</CourseDescription_Footnote>

</CourseDescription>

</CourseDescriptions>

Esta opción resulta realmente útil cuando se combina con otra opción de importación de XML, "Clonar elementos de texto repetitivos". Cuando estas opciones se utilizan juntas en un documento de InDesign que contiene elementos de marcador de posición, los elementos XML entrantes que coinciden con las etiquetas de los marcadores entran en el marco de texto, junto con las etiquetas que creaste entre los elementos XML. Así, en el diseño de InDesign, obtienes las etiquetas, como "Major:" y "Nota:", dentro de cada bloque repetitivo, sin tener que escribirlas una y otra vez.

Para que las funciones de marcadores de posición y clonación funcionen correctamente, crea un archivo de plantilla (.indt) con el contenido del marcador de posición. Luego usa esa plantilla para crear un nuevo archivo de InDesign e importa el XML utilizando "Clonar elementos de texto repetitivos".

Eliminación de Estructura, Texto y Componentes de Diseño No Coincidentes

La opción de importación de XML "Eliminar elementos, marcos y contenido que no coincidan con el XML importado" proporciona una manera de "limpiar" tus diseños durante la importación. Es muy útil para eliminar objetos de diseño no utilizados de tus páginas. Lo usarías más probablemente cuando trabajes con múltiples páginas que tengan los mismos diseños, como en este ejemplo, que tiene dos columnas del flujo de texto principal (áreas en gris claro), y marcos de texto en el borde exterior de la página que están etiquetados con un tipo de elemento XML como un encabezado para la página (áreas verdes). Cuando el XML se importa utilizando "Eliminar elementos, marcos y contenido que no coincidan con el XML importado", los encabezados se colocan en los marcos de texto etiquetados como encabezados, y no aparecen en el flujo de texto principal donde ocurren en el orden del documento de los elementos XML. Si los elementos fluyen a través del flujo de texto principal de una página entera sin un elemento de encabezado que coincida con el marco de texto etiquetado en el borde exterior de la página, el marco de texto del encabezado desaparece del diseño.

La distribución de la página a la izquierda en la Figura 3-17 tiene dos marcos de texto etiquetados para encabezados en las columnas exteriores. Cuando los elementos de encabezado en el XML entrante coinciden con la etiqueta del marco de texto, se utilizarán los marcos de texto. El primer encabezado se coloca en el cuadro de texto en la página izquierda, mientras que el segundo elemento de encabezado se coloca en la página derecha. (La ubicación original del encabezado dentro del documento XML y la ubicación final después de la importación están indicadas por flechas de línea punteada.)

La distribución de la página a la derecha en la Figura 3-17 tiene solo un elemento de encabezado coincidente, por lo que el marco de texto etiquetado que no es necesario fue eliminado de la página izquierda de la distribución cuando se utilizó "Eliminar elementos, marcos y contenido que no coincidan con el XML importado".

Esta opción es muy útil para algunos tipos de diseños, pero debes tener en cuenta que una vez que los marcos de texto innecesarios se eliminan del diseño, volver a importar el archivo XML o actualizar su enlace no creará nuevos marcos de texto en las páginas donde se han eliminado.

Regla general: Ten cuidado con cualquier opción que elimine objetos de tu diseño de manera programática. Asegúrate de guardar una copia de tu archivo InDesign antes de importar XML utilizando la opción "Eliminar elementos, marcos y contenido que no coincidan con el XML importado".

Figura 3-17. Limpieza de diseños durante la importación

Importación de Imágenes

InDesign puede importar información de imágenes XML que colocará una imagen en el diseño:

  • - **Si la imagen no va a ser en línea**, InDesign espera un marcador de posición para la imagen (un marco gráfico) que esté etiquetado como un elemento con un atributo requerido llamado `href`. El marco gráfico etiquetado te permite colocar la imagen en una ubicación que no está en el flujo de texto principal.
  • - **El valor del atributo `href`** es la ruta al archivo local, como `file:///C:/adobetut/pictures/ID_XML_Tutorial/Links/01_f.psd`, donde reside el archivo de imagen vinculado. (Nota el uso de `file:///` en la ruta).
  • - **En el archivo XML**, estos serán estructuras de elementos simples en la forma `<Image href="file:///path/imagefilename1.psd"/>`, `<Image href="file:///path/imagefilename2.tif"/>`, `<Image href="file:///path/imagefilename3.ai"/>`, y así sucesivamente, y múltiples imágenes pueden ser agrupadas dentro de un contenedor como un elemento `<PictureGroup>`.
  • - **Las leyendas no se crean dentro del marco gráfico** sino que se crean en marcos de texto separados.

Los únicos desafíos que veo son que necesitas conocer la ruta y el nombre de archivo de cada una de las imágenes que deseas importar; por lo tanto, en esencia, necesitas tener un concepto de diseño bastante completo antes de importar el XML.

Las imágenes se importan en su tamaño real, pero puedes reducirlas para que se ajusten a tu marco gráfico (consulta los archivos de ayuda para obtener información sobre cómo reducir para ajustar).

Consulta también el Capítulo 4 para los pasos de etiquetado si no deseas hacer el breve tutorial de Adobe mencionado anteriormente. A pesar de lo que dice en la documentación de InDesign, no pareció necesario crear un elemento `<Image>` para importar un gráfico en línea. Creo que la mención de etiquetar un gráfico con una etiqueta `<Image>` es para obtener el atributo `href` automático cuando estás creando XML para exportar desde InDesign.

Puedes crear los atributos `href` requeridos desde estructuras XML con nombres diferentes usando la opción Aplicar XSLT en el diálogo de Opciones de Importación de XML. Tendrías que escribir una plantilla XSL para transformar el elemento XML fuente en la estructura que InDesign requiere. Consulta el Capítulo 10 para obtener información.

Importaciones de Imágenes en Línea

El XML que usas para importar una imagen en línea tiene una estructura muy simple:

`<BannerImage href="file:///images/slogan_m.gif"/>`

(En este caso, el archivo GIF estaba en una carpeta /images debajo de la carpeta donde residía mi documento de InDesign).

Una imagen que está colocada en línea en el flujo XML no puede ser arrastrada a un marco gráfico separado después de que el XML se haya colocado en el diseño. Para hacer que la imagen flote en lugar de estar en línea, crea un marco gráfico, copia y pega la imagen en él, mueve el marco gráfico donde lo desees y luego elimina el elemento de imagen en línea original.

Si se utilizó el enfoque de marcador de posición para hacer una plantilla de InDesign que incluyera un elemento de imagen como parte del contenido del marcador de posición, los elementos de imagen deberían saltar a la ubicación asignada en el marcador de posición cuando se importe el XML. (Así es como se agregan fotos a conjuntos de tarjetas de visita en los ejemplos de marcadores de posición de Adobe).




Comentarios

Entradas populares de este blog

Efecto Agua con Adobe Photoshop

Efecto código binario en Adobe Photoshop

Tutorial: Introducción a la Terminología y Sintaxis Básica de JavaScript en Adobe Acrobat